From: Patrick C. McGinty Date: Mon, 20 Aug 2012 23:43:30 GMT Subject: [PATCH] git-p4: Strip branch name prefixes if --use-client-spec enabled Message-ID: <1345506210-17382-1-git-send-email-casey.mcginty@gmail.com> From: "Patrick C. McGinty" 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 --- 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