Re: [PATCH] git-p4: Fix depot path stripping
- From
Luke Diamand <luke@diamand.org>
- Date
- Feb 27, 2018, 08:10 UTC
- Message-ID
- <CAE5ih7-Uyk3fG3LXh2qnfEF1hV+n1wWexUcZ8SJ3=wKWgn4o6Q@mail.gmail.com>
- In-Reply-To
- <01020161d57a3c14-1177a79b-cc21-4d78-8bbd-b6650f7a6169-000000@eu-west-1.amazonses.com>
On 27 February 2018 at 04:16, Nuno Subtil <subtil@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
Show 46 quoted lines
>
> Signed-off-by: Nuno Subtil <subtil@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