summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Diamand <luke@diamand.org>2019-01-18 09:36:56 (GMT)
committerJunio C Hamano <gitster@pobox.com>2019-01-18 17:43:40 (GMT)
commit7a10946ab9dd4692fc99d219f0cd4bc3d5e16d63 (patch)
treeda5b63668c0eaea135389eb8dbc5aca90eb5520f
parent7a10bb3a4cc6fb5165d880cfb0be3a2eff438c95 (diff)
downloadgit-7a10946ab9dd4692fc99d219f0cd4bc3d5e16d63.zip
git-7a10946ab9dd4692fc99d219f0cd4bc3d5e16d63.tar.gz
git-7a10946ab9dd4692fc99d219f0cd4bc3d5e16d63.tar.bz2
git-p4: handle update of moved/copied files when updating a shelve
Perforce requires a complete list of files being operated on. If git is updating an existing shelved changelist, then any files which are moved or copied were not being added to this list. Signed-off-by: Luke Diamand <luke@diamand.org> Acked-by: Andrey Mazo <amazo@checkvideo.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rwxr-xr-xgit-p4.py2
-rwxr-xr-xt/t9807-git-p4-submit.sh2
2 files changed, 3 insertions, 1 deletions
diff --git a/git-p4.py b/git-p4.py
index 1998c3e..b1c262e 100755
--- a/git-p4.py
+++ b/git-p4.py
@@ -1859,6 +1859,7 @@ class P4Submit(Command, P4UserMap):
filesToAdd.remove(path)
elif modifier == "C":
src, dest = diff['src'], diff['dst']
+ all_files.append(dest)
p4_integrate(src, dest)
pureRenameCopy.add(dest)
if diff['src_sha1'] != diff['dst_sha1']:
@@ -1875,6 +1876,7 @@ class P4Submit(Command, P4UserMap):
editedFiles.add(dest)
elif modifier == "R":
src, dest = diff['src'], diff['dst']
+ all_files.append(dest)
if self.p4HasMoveCommand:
p4_edit(src) # src must be open before move
p4_move(src, dest) # opens for (move/delete, move/add)
diff --git a/t/t9807-git-p4-submit.sh b/t/t9807-git-p4-submit.sh
index f94854d..850d979 100755
--- a/t/t9807-git-p4-submit.sh
+++ b/t/t9807-git-p4-submit.sh
@@ -546,7 +546,7 @@ test_expect_success 'submit --update-shelve' '
)
'
-test_expect_failure 'update a shelve involving moved and copied files' '
+test_expect_success 'update a shelve involving moved and copied files' '
test_when_finished cleanup_git &&
(
cd "$cli" &&