Fix common path "calculation" from logs of multiple branches.
authorSimon Hausmann <shausman@rhea.troll.no>
Thu, 7 Jun 2007 07:37:13 +0000 (09:37 +0200)
committerSimon Hausmann <shausman@rhea.troll.no>
Thu, 7 Jun 2007 07:37:13 +0000 (09:37 +0200)
Need to use min instead of max for prev/cur to avoid out-of-bounds
string access. Also treat "i" as index of the last match instead of
a length because in case of a complete match of the two strings
i was off by one.

git-p4

diff --git a/git-p4 b/git-p4
index e576f2d..ba34f0a 100755 (executable)
--- a/git-p4
+++ b/git-p4
@@ -1059,11 +1059,12 @@ class P4Sync(Command):
                     else:
                         paths = []
                         for (prev, cur) in zip(self.previousDepotPaths, depotPaths):
-                            for i in range(0, max(len(cur), len(prev))):
+                            for i in range(0, min(len(cur), len(prev))):
                                 if cur[i] <> prev[i]:
+                                    i = i - 1
                                     break
 
-                            paths.append (cur[:i])
+                            paths.append (cur[:i + 1])
 
                         self.previousDepotPaths = paths