[PATCH] git-p4: Strip branch name prefixes if --use-client-spec enabled
From: Patrick C. McGinty <hidden>
Date: 2016-06-15 22:54:32
From: "Patrick C. McGinty" <redacted> This removes the branch names from being included in the file system path when using the both --use-client-spec and --detect-branches options. Used alone, the --detect-branches option did the right thing, removing the branch names from the relative git path. By adding the --use-client-spec option, the old logic would incorrectly bypass this step. Signed-off-by: Patrick C. McGinty <redacted> --- git-p4.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/git-p4.py b/git-p4.py
index e67d37d..9489845 100755
--- a/git-p4.py
+++ b/git-p4.py@@ -1819,7 +1819,15 @@ class P4Sync(Command, P4UserMap): def stripRepoPath(self, path, prefixes): if self.useClientSpec: - return self.clientSpecDirs.map_in_client(path) + # map path to user defined client location + path = self.clientSpecDirs.map_in_client(path) + # Remove prefixes (e.g. branch names) from path. Apply the + # clientSpecDirs map to the prefix paths to match the + # modified path value. + for p in map(self.clientSpecDirs.map_in_client, prefixes): + if p and p4PathStartsWith( path, p): + path = path[len(p):] + return path if self.keepRepoPath: prefixes = [re.sub("^(//[^/]+/).*", r'\1', prefixes[0])]
--
1.7.9.5