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:

  1. 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/...
  2. In the personal server, branch a development stream (dev), make changes to some files in that stream and submit them.
  3. Merge changes from the dev stream to the main stream.
  4. 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.

  1. 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/...
  2. Run p4 push.
  3. Observe that both files and integration history were pushed to the shared server.