[PATCH 2/5] git-p4: match branches case insensitively if configured
- From
- Mazo, Andrey <amazo@checkvideo.com>
- Date
- Mar 4, 2019, 17:34 UTC
- Message-ID
- <e644a8ab4928349ed83ac9ab6ffdbcafc3a3a7b5.1551485349.git.amazo@checkvideo.com>
- In-Reply-To
- <cover.1551485349.git.amazo@checkvideo.com>
git-p4 knows how to handle case insensitivity in file paths if core.ignorecase is set. However, when determining a branch for a file, it still does a case-sensitive prefix match. This may result in some file changes to be lost on import.
For example, given the following commits 1. add //depot/main/file1 2. add //depot/DirA/file2 3. add //depot/dira/file3 4. add //depot/DirA/file4 and "branchList = main:DirA" branch mapping, commit 3 will be lost.
So, do branch search case insensitively if running with core.ignorecase set. Teach splitFilesIntoBranches() to use the p4PathStartsWith() function for path prefix matches instead of always case-sensitive match.
Signed-off-by: Andrey Mazo <amazo@checkvideo.com> --- git-p4.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/git-p4.py b/git-p4.py index c0a3068b6f..91c610f960 100755 --- a/git-p4.py +++ b/git-p4.py @@ -2721,11 +2721,11 @@ def splitFilesIntoBranches(self, commit): relPath = self.stripRepoPath(path, self.depotPaths) for branch in self.knownBranches.keys(): # add a trailing slash so that a commit into qt/4.2foo # doesn't end up in qt/4.2, e.g. - if relPath.startswith(branch + "/"): + if p4PathStartsWith(relPath, branch + "/"): if branch not in branches: branches[branch] = [] branches[branch].append(file) break
-- 2.19.2