Fetching and pushing integration history
When you merge from one stream to another, you must have both streams mapped in the remote spec in order to push or fetch integration history.
Consider the following example:
-
You clone from a shared server to create a personal server and the following remote spec, called
origin
:# A Helix Remote Specification. RemoteID: origin Address: p4demo:1666 Owner: jschaffer Options: unlocked nocompress Update: 2015/06/29 13:14:26 Access: 2015/06/29 13:14:57 Description: Created by Joe_Coder. LastFetch: default LastPush: 12305 DepotMap: //talkhouse/main/... //depot/Talkhouse/main-dev/... //talkhouse/release1.0/... //depot/Talkhouse/rel1.0/...
- In the personal server, branch a development stream (
dev
), make changes to some files in that stream and submit them. - Merge changes from the
dev
stream to themain
stream. - Run
p4 push
.
You will observe that although the files were pushed to the shared server, the integration history was not.
To ensure that integration files are pushed or fetched, both the merge source and the merge target must be included in the remote spec.
-
Modify the remote spec to add a line under
DepotMap
for development stream//talkhouse/dev/...
:DepotMap: //talkhouse/main/... //depot/Talkhouse/main-dev/... //talkhouse/dev/... //depot/Talkhouse/jschaffer-dev/... //talkhouse/release1.0/... //depot/Talkhouse/rel1.0/...
- Run
p4 push
. - Observe that both files and integration history were pushed to the shared server.