On 27 February 2018 at 04:16, Nuno Subtil <subtil@xxxxxxxxx> wrote: > When useClientSpec=true, stripping of P4 depot paths doesn't happen > correctly on sync. Modifies stripRepoPath to handle this case better. Can you give an example of how this shows up? I could quickly write a test case for this if I knew what was going on. Thanks Luke > > Signed-off-by: Nuno Subtil <subtil@xxxxxxxxx> > --- > git-p4.py | 12 +++++++++--- > 1 file changed, 9 insertions(+), 3 deletions(-) > > diff --git a/git-p4.py b/git-p4.py > index 7bb9cadc69738..3df95d0fd1d83 100755 > --- a/git-p4.py > +++ b/git-p4.py > @@ -2480,7 +2480,7 @@ def stripRepoPath(self, path, prefixes): > if path.startswith(b + "/"): > path = path[len(b)+1:] > > - elif self.keepRepoPath: > + if self.keepRepoPath: > # Preserve everything in relative path name except leading > # //depot/; just look at first prefix as they all should > # be in the same depot. > @@ -2490,6 +2490,12 @@ def stripRepoPath(self, path, prefixes): > > else: > for p in prefixes: > + if self.useClientSpec and not self.keepRepoPath: > + # when useClientSpec is false, the prefix will contain the depot name but the path will not > + # extract the depot name and add it to the path so the match below will do the right thing > + depot = re.sub("^(//[^/]+/).*", r'\1', p) > + path = depot + path > + > if p4PathStartsWith(path, p): > path = path[len(p):] > break > @@ -2526,8 +2532,8 @@ def splitFilesIntoBranches(self, commit): > # go in a p4 client > if self.useClientSpec: > relPath = self.clientSpecDirs.map_in_client(path) > - else: > - relPath = self.stripRepoPath(path, self.depotPaths) > + > + relPath = self.stripRepoPath(path, self.depotPaths) > > for branch in self.knownBranches.keys(): > # add a trailing slash so that a commit into qt/4.2foo > > -- > https://github.com/git/git/pull/463