Hi Vitor, On Mon, Jan 31, 2011 at 12:25 PM, Vitor Antunes <vitor.hda@xxxxxxxxx> wrote: >> No, the Perforce repo I work with is so non-standard that the only >> solution has been to import all the branches separately and graft the >> history together. This covers all my needs at the moment. > > Maybe I'm not seeing some obvious limitation, but I can't imagine a > branching structure that can't be imported into git. Could please you > give me an example? Here I was thinking of the fact that git-p4 (last time I checked the implementation ) uses the list of branch specs in Perforce for figuring out the parent of a branch. Our branch specs have changed over time (they are used for different integration purposes), so they are no longer usable for this purpose. I also discovered bugs in git-p4: in some cases, if the first submit to a new branch in Perforce is not identical to the branch it derives from, the import was not correct. One other issue with Perforce, CVS and many other systems is that they branch per file. Therefore Perforce can represent partial merges between two branches, which git cannot. Because of this, translating merges in Perforce to merges in git is not always possible or desirable: - if you integrate just one file from one branch to another in Perforce, and leave the rest unmerged, you probably want to represent it as a normal git commit (not a merge) - if you merge almost everything, but leave out a file for some reason, you may still want to represent it as a merge in git The git-p4raw tool has excellent handling of merges, see details in this file around line 4300: https://github.com/samv/git-p4raw/blob/master/git-p4raw It supports several algorithms for automatic merge detection, as well as manually changing it after the import is done. Cheers, Thomas -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html