diff options
author | Junio C Hamano <gitster@pobox.com> | 2016-12-27 00:11:43 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2016-12-27 00:11:43 -0800 |
commit | d7dcd52a42fc3d93c503da626fb669b3eee46ddc (patch) | |
tree | c9867e67b59abaa2cf450fa8ee3ab48a8ab835d3 | |
parent | 5a5d3f1f1255559080f754fb202887f1566d8db3 (diff) | |
parent | 9943e5b9799336460ecbbeb86e544cc4a1ad1254 (diff) | |
download | git-d7dcd52a42fc3d93c503da626fb669b3eee46ddc.tar.gz |
Merge branch 'gv/p4-multi-path-commit-fix'
"git p4" that tracks multile p4 paths imported a single changelist
that touches files in these multiple paths as one commit, followed
by many empty commits. This has been fixed.
* gv/p4-multi-path-commit-fix:
git-p4: fix multi-path changelist empty commits
-rwxr-xr-x | git-p4.py | 4 | ||||
-rwxr-xr-x | t/t9800-git-p4-basic.sh | 22 |
2 files changed, 23 insertions, 3 deletions
@@ -839,7 +839,7 @@ def p4ChangesForPaths(depotPaths, changeRange, requestedBlockSize): die("cannot use --changes-block-size with non-numeric revisions") block_size = None - changes = [] + changes = set() # Retrieve changes a block at a time, to prevent running # into a MaxResults/MaxScanRows error from the server. @@ -858,7 +858,7 @@ def p4ChangesForPaths(depotPaths, changeRange, requestedBlockSize): # Insert changes in chronological order for line in reversed(p4_read_pipe_lines(cmd)): - changes.append(int(line.split(" ")[1])) + changes.add(int(line.split(" ")[1])) if not block_size: break diff --git a/t/t9800-git-p4-basic.sh b/t/t9800-git-p4-basic.sh index 093e9bd586..4849edc4ef 100755 --- a/t/t9800-git-p4-basic.sh +++ b/t/t9800-git-p4-basic.sh @@ -131,6 +131,26 @@ test_expect_success 'clone two dirs, @all, conflicting files' ' ) ' +test_expect_success 'clone two dirs, each edited by submit, single git commit' ' + ( + cd "$cli" && + echo sub1/f4 >sub1/f4 && + p4 add sub1/f4 && + echo sub2/f4 >sub2/f4 && + p4 add sub2/f4 && + p4 submit -d "sub1/f4 and sub2/f4" + ) && + git p4 clone --dest="$git" //depot/sub1@all //depot/sub2@all && + test_when_finished cleanup_git && + ( + cd "$git" && + git ls-files >lines && + test_line_count = 4 lines && + git log --oneline p4/master >lines && + test_line_count = 5 lines + ) +' + revision_ranges="2000/01/01,#head \ 1,2080/01/01 \ 2000/01/01,2080/01/01 \ @@ -147,7 +167,7 @@ test_expect_success 'clone using non-numeric revision ranges' ' ( cd "$git" && git ls-files >lines && - test_line_count = 6 lines + test_line_count = 8 lines ) done ' |