git-p4: unshelve into refs/remotes/p4-unshelved, not refs/remotes/p4/unshelved

The branch detection code looks for branches under refs/remotes/p4/...
and can end up getting confused if there are unshelved changes in
there as well. This happens in the function p4BranchesInGit().

Instead, put the unshelved changes into refs/remotes/p4-unshelved/<N>.

Signed-off-by: Luke Diamand <luke@diamand.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Luke Diamand 2018-10-15 12:14:07 +01:00 committed by Junio C Hamano
parent 0742b7c860
commit 088131273b
3 changed files with 8 additions and 7 deletions

View File

@ -174,7 +174,7 @@ $ git p4 submit --update-shelve 1234 --update-shelve 2345
Unshelve
~~~~~~~~
Unshelving will take a shelved P4 changelist, and produce the equivalent git commit
in the branch refs/remotes/p4/unshelved/<changelist>.
in the branch refs/remotes/p4-unshelved/<changelist>.
The git commit is created relative to the current origin revision (HEAD by default).
If the shelved changelist's parent revisions differ, git-p4 will refuse to unshelve;
@ -182,13 +182,13 @@ you need to be unshelving onto an equivalent tree.
The origin revision can be changed with the "--origin" option.
If the target branch in refs/remotes/p4/unshelved already exists, the old one will
If the target branch in refs/remotes/p4-unshelved already exists, the old one will
be renamed.
----
$ git p4 sync
$ git p4 unshelve 12345
$ git show refs/remotes/p4/unshelved/12345
$ git show p4-unshelved/12345
<submit more changes via p4 to the same files>
$ git p4 unshelve 12345
<refuses to unshelve until git is in sync with p4 again>

View File

@ -3956,7 +3956,8 @@ class P4Unshelve(Command):
]
self.verbose = False
self.noCommit = False
self.destbranch = "refs/remotes/p4/unshelved"
self.destbranch = "refs/remotes/p4-unshelved"
self.origin = "p4/master"
def renameBranch(self, branch_name):
""" Rename the existing branch to branch_name.N

View File

@ -54,8 +54,8 @@ EOF
cd "$git" &&
change=$(last_shelved_change) &&
git p4 unshelve $change &&
git show refs/remotes/p4/unshelved/$change | grep -q "Further description" &&
git cherry-pick refs/remotes/p4/unshelved/$change &&
git show refs/remotes/p4-unshelved/$change | grep -q "Further description" &&
git cherry-pick refs/remotes/p4-unshelved/$change &&
test_path_is_file file2 &&
test_cmp file1 "$cli"/file1 &&
test_cmp file2 "$cli"/file2 &&
@ -88,7 +88,7 @@ EOF
cd "$git" &&
change=$(last_shelved_change) &&
git p4 unshelve $change &&
git diff refs/remotes/p4/unshelved/$change.0 refs/remotes/p4/unshelved/$change | grep -q file3
git diff refs/remotes/p4-unshelved/$change.0 refs/remotes/p4-unshelved/$change | grep -q file3
)
'