On 27 February 2018 at 04:16, Nuno Subtil <sub...@gmail.com> 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 <sub...@gmail.com>
> ---
>  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

Reply via email to