TL;DR: Is there a way to tell p4 fetch to ignore certain trees in the history completely? I do not have access to certain trees and/or they are not relevant for my fetch. But as the changes are part of integrations spanning multiple trees fetch is not possible anymore.
I am currently trying to fetch the source code from our product from the central server to my personal one on my machine. Unfortunately there seems a restriction on fetching I am currently fighting with I hope somebody can help me getting this running.
Before going into details first some introductional information:
We use a classical branching strategy for our product that is based on "folders". Historically one of our products lives below the main tree of our product suite.
Trunk of "SubProduct"
Trunk of "OldProduct
Release 3.0 of "SubProduct"
Now to the restriction I am having issues with: We have some changelists that contains changes spanning both products. For instance when we update some version numbers there are some commits that bump the version file from "SubProduct" and "OldProduct" in one go. With this cross-folder changelist in place, a pull of "SubProduct" only seems impossible. Perforce requires you to widen your remote spec to include the whole "OurSuite" tree.
Typical error messages I encounter there are:
- Change 748318 performs a move/add on //depot/OurSuite/OurSuite/OurProduct/SomeFile.cpp#1, but the parameters of this fetch, push, or zip command include only part of the full action. Specify a wider view to include both the source and target of the change, or specify a narrower view to exclude both the source and target of the change.
- Change 750162 performs a move/delete on //depot/OurSuite/OurSuite3.0/OurProduct/SomeOtherFile.cpp#3, but the parameters of this fetch, push, or zip command include only part of the full action. Specify a wider view to include both the source and target of the change, or specify a narrower view to exclude both the source and target of the change.
Is there some way how I can tell perforce to ignore these errors and maybe only fetch the parts of the CLs that are contained in my remote spec? I do not care that maybe with 750162 a whole other subtree below "OldProduct" was also merged back from the 3.0 branch to the trunk. I only want to consume the SubProduct tree with related changes.
My next step would be to push SubProduct to another perforce server with GitFusion enabled, hence I want to retain the whole history for SubProduct. The cross-tree merge happened quite lately which means if I fetch only partly the history, on git we will only see the changes of the last few weeks.
Home my intention is clear.