We have some depot structure and a mainline stream (call MainlineStream
)
Root
- Folder1
- Folder2
- Folder3
- Folder4
A FeatureStream
inherits from MainlineStream
and wants to only operate on, say, Folder1
import MainlineStream ...
share Folder1
I want to have another stream MyFeatureStream
that wants all changes made in FeatureStream
but I also want to share
, say, Folder2
and propagate my Folder1
and Folder2
changes back to MainlineStream
when FeatureStream
is completely done and no more needed (gets "copied up" to MainlineStream
)
I don't want to ask owner of FeatureStream
to extend mapping view for me because I would probably need to extend it even more in development process
How do I achieve such a solution?
There are two strategies and which you pick depends on how you envision this happening:
propagate my Folder1 and Folder2 changes back to MainlineStream when FeatureStream is completely done
How do the Folder2
changes get propagated from MyFeatureStream
back to MainlineStream
?
FeatureStream
first, and then propagated up to MainlineStream
from there?MyFeatureStream
to MainlineStream
?If everything needs to get integrated into FeatureStream
before it goes to MainlineStream
, then FeatureStream
needs to include the share Folder2/...
path, since part of FeatureStream
's purpose is going to be to incorporating the MyFeatureStream
changes.
If the idea is that the Folder2
changes are going to bypass FeatureStream
and go straight to MainlineStream
, then I think it makes more sense for MyFeatureStream
to be a direct child of MainlineStream
, and to do a sibling merge to get the Folder1
changes. That should be as simple as doing:
p4 merge --from FeatureStream
within MyFeatureStream
, using the --from
flag to say that you want to merge changes from the specified stream rather than the parent (which would be MainlineStream
). Since FeatureStream
only ever makes changes to the Folder1
path it's not necessary to specify the path explicitly.
Obviously you will also want to periodically do:
p4 merge
to merge the changes from MainlineStream
into all of MyFeatureStream
's share
paths (so both Folder1
and Folder2
will potentially be updated).