Reduce the number of false "merges" by skipping "branch from" entries in the integrated output as well as by ignoring integrations of future (newer) changes.
authorSimon Hausmann <hausmann@kde.org>
Sat, 10 Mar 2007 20:23:49 +0000 (21:23 +0100)
committerSimon Hausmann <hausmann@kde.org>
Sat, 10 Mar 2007 20:23:49 +0000 (21:23 +0100)
Signed-off-by: Simon Hausmann <hausmann@kde.org>
contrib/fast-import/p4-fast-export.py
index d0832e8c3d618a4f8d73053adefd62af14b3dae1..a45068d362df70de0d3ebe45a6111ac7696dee31 100755 (executable)
@@ -415,6 +415,7 @@ def changeIsBranchMerge(sourceBranch, destinationBranch, change):
     for fileName in sourceFiles.keys():
         integrations = []
         deleted = False
     for fileName in sourceFiles.keys():
         integrations = []
         deleted = False
+        integrationCount = 0
         for integration in p4CmdList("integrated \"%s\"" % fileName):
             toFile = integration["fromFile"] # yes, it's true, it's fromFile
             if not toFile in destinationFiles:
         for integration in p4CmdList("integrated \"%s\"" % fileName):
             toFile = integration["fromFile"] # yes, it's true, it's fromFile
             if not toFile in destinationFiles:
@@ -424,10 +425,15 @@ def changeIsBranchMerge(sourceBranch, destinationBranch, change):
 #                print "file %s has been deleted in %s" % (fileName, toFile)
                 deleted = True
                 break
 #                print "file %s has been deleted in %s" % (fileName, toFile)
                 deleted = True
                 break
+            integrationCount += 1
+            if integration["how"] == "branch from":
+                continue
 
             if int(integration["change"]) == change:
                 integrations.append(integration)
                 continue
 
             if int(integration["change"]) == change:
                 integrations.append(integration)
                 continue
+            if int(integration["change"]) > change:
+                continue
 
             destRev = int(destFile["rev"])
 
 
             destRev = int(destFile["rev"])
 
@@ -453,7 +459,7 @@ def changeIsBranchMerge(sourceBranch, destinationBranch, change):
         if deleted:
             continue
 
         if deleted:
             continue
 
-        if len(integrations) == 0:
+        if len(integrations) == 0 and integrationCount > 1:
             print "file %s was not integrated from %s into %s" % (fileName, sourceBranch, destinationBranch)
             return False
 
             print "file %s was not integrated from %s into %s" % (fileName, sourceBranch, destinationBranch)
             return False