虽然git还没用熟练,P4也得会用啊~
//
n Perforce, a codeline is a set of related files for example, all the source code required to build your software product. Copying an edit from one file set to the other is called merging or copying. Copying a set of files to create a new codeline (or equivalent) is called making a branch or branching. Branching is performed using the Merge/Integrate feature. You can perform simple branches using a file mapping.
To ensure that complex branching is done in a controlled manner (for example, to prevent typographical errors when entering target directories or to make sure that complicated branches are performed correctly), you can create a branch mapping, which specifies the relationship between two codelines. When you branch, you can use the branch mapping instead of a file mapping. Branch mappings are displayed in the right pane on the Branch Mapping tab.
Note. Perforce Streams provide an alternative approach to managing codelines. For more information, see About Streams.
Work with branch mapping
To create a branch mapping, choose File>New>Branch Mapping... and enter the required information. To prevent the mapping from being changed by other users, check locked. To confine integration to closely related files, choose direct; to enable integration between distantly related files, choose indirect.
Use the View field to reflect the relationship between source and target codelines. For example, to create release 2 of Jam from the code in your main codeline, you might use the following view:
//depot/jam_proj/... //depot/jam_r2.0/...
To view a branch mapping, go to View>Branch Mappings or click the View branch mappings button in the toolbar. Use the Filter pane at the top of the Branch Mappings tab to search for mappings by owner and branch mapping name (or part of the name). Double-click a branch mapping to view it.
To change a branch mapping, double-click it in the Branch Mappings tab to open the Branch Mapping dialog. Click Edit to enter your changes.
To delete a branch mapping, click the mapping you want to delete, then select Edit>Delete Branch branchname.
To integrate using a branch mapping:
- Right click the files you want to integrate and choose Merge/Integrate... The Merge/Integrate dialog is displayed.
- Select User branch mapping as your Merge method.
- Browse for the branch mapping you want to use. Select the branch mapping and click OK.
- In the Target field, specify where you want the source files integrated. The target must be a path that contains some or all of the paths identified in the branch mapping. In other words, the target can be a subset of the path specified by the branch mapping.
- Specify other options as desired:
- Do not copy target files to workspace: by default, newly branched files are copied to the workspace. To prevent the files from being copied, check this option.
- Enable baseless merges: to perform the integration even if a target file does not share a common ancestor with a source file, check this box.
- Disregard previous integration history: force the integration on all revisions of source and target files, even if some revisions have been integrated in the past. Best used with a revision range.
- Propagate source filetypes to target files: assign the source file's filetype to the target file. If this is not selected, the target file retain its filetype.
- Reverse mappings in branch view: swap source and target mappings when performing this integration.
- Enable integrations around deleted revisions: allow an integration that opens the target file for delete when the source file has been deleted, and allow an integration that branches a new target file that was previously deleted.
- Do not get latest revision of selected files: don't automatically get the latest revision of target files before integrating. Use the current workspace revision instead.
- Pending Changelist: to perform the integration using a changelist other than the default changelist, choose the desired changelist from this drop-down list.
- To preview the results of the operation, click Preview.
- To integrate the files using the selected branch mapping, click Merge.
//
遇到一个需求,别人提交的code shelve 到A branch pending,然后我在B branch抓到本地的code想要用他的这个shelve有点类似GIT上的cherry pick
P4 unshelve -s <CL> -c<CL> -b branch1_to_branch2
http://stackoverflow.com/questions/20948905/how-to-unshelve-a-shelved-changelist-to-another-branch-prior-to-perforce-2013