On Fri, 2 Jun 2006 23:20:05 +0200 fork0@xxxxxxxxxxx (Alex Riesen) wrote: > Well, I'm not quite sure it's at all possible... Perforce has a > strange ways for doing history: it is kept for each file (as in CVS), > but you can bundle changes in many files into one "change". > Perforce also has no branches (in the GIT's meaning of the term). > These by Perforce are just server-side directories, without any > relevance to the source whatsoever (just copies). Yes, each Perforce change records a new file revision level for each of the files involved in the changeset. > I'm rather looking for a ability to manage a single branch where > import "sync" events appear as a merge of changes to the files > involved in the sync. I just haven't figured out yet how to "break" a > Perforce change into changes to single files and import that broken up > commit into git as a merge. Ahh, so what you're really asking is for a way to maintain the perforce merge history within git. Whereas the current p4import script just shows a linear history without any merges. The problem is that Perforce doesn't merge at the commit level. It allows changes from other branches to be pulled one file at a time and from any rev level. Now, even if you break those changes into one git commit per file per revision level (yuck!), you still couldn't use them to record Perforce merges. Git would still merge the entire history of such commits from the other branch whenever you tried to merge just one. AFAICS, the best you could do would be to create cherry-picks, plucking just the commits from the other branch you want. However at that point you're not getting a git merge anyway and it doesn't seem to be any benefit beyond what the importer already does. Well, the importer _could_ make a comment in the commit message describing where each file change originated (ie. from which branch/rev). Would that help? Sean - : 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