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>
This commit is contained in:
Luke Diamand 2019-01-18 09:36:56 +00:00 коммит произвёл Junio C Hamano
Родитель 7a10bb3a4c
Коммит 7a10946ab9
2 изменённых файлов: 3 добавлений и 1 удалений

Просмотреть файл

@ -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)

Просмотреть файл

@ -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" &&