How to get --detect-branches to work with git-p4?

北战南征 提交于 2019-12-05 01:30:28
VonC

If you look at git-p4 code (also originally here), you see:

if self.detectBranches:
  branches = self.splitFilesIntoBranches(description)
  for branch in branches.keys():
    ## HACK  --hwn
    branchPrefix = self.depotPaths[0] + branch + "/"

with splitFilesIntoBranches exploring the p4 repo for branches.

So maybe git-p4 clone //depot/project@all --detect-branches would be fine (with the @all as in this SO answer, and the --detect-branches option after the repo path)?

That being said, if the script is not smart enough to manage that, may be a simpler solution is to run it 3 times, one per branch and import the result in one Git repo.

I just worked on a related bug with --detect-branches. The script does a few things:

  1. detect the branch names using p4 data
  2. create a map of the parent of each branch
  3. map the files to a specific branch
  4. remove the branch prefix before committing into git

You'll have to follow the code to make sure each step is being done correctly. Using pdb to do this works well enough.

Step 1 and 2 is done in P4Sync.getBranchMapping

Step 3 is done in P4Sync.splitFilesIntoBranches

For step 4. this is done with P4Sync.stripRepoPath. Set a break point there, and you can see if the branches have been detected and files are being renamed properly.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!