* [PATCHv3 0/2] git-p4: unshelve uses HEAD^n, not HEAD~n
@ 2020-09-20 8:49 Luke Diamand
2020-09-20 8:49 ` [PATCHv3 1/2] git-p4: demonstrate `unshelve` bug Luke Diamand
0 siblings, 1 reply; 3+ messages in thread
From: Luke Diamand @ 2020-09-20 8:49 UTC (permalink / raw)
To: git; +Cc: Liu Xuhui (Jackson), Eric Sunshine, Luke Diamand
Updated commits incorporating comments from Eric Sunshine,
fixing indentation.
Luke Diamand (2):
git-p4: demonstrate `unshelve` bug
git-p4: fix `unshelve` bug finding parent commit
git-p4.py | 2 +-
t/t9832-unshelve.sh | 5 ++++-
2 files changed, 5 insertions(+), 2 deletions(-)
--
2.28.0.762.g324f61785e
^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCHv3 1/2] git-p4: demonstrate `unshelve` bug
2020-09-20 8:49 [PATCHv3 0/2] git-p4: unshelve uses HEAD^n, not HEAD~n Luke Diamand
@ 2020-09-20 8:49 ` Luke Diamand
2020-09-20 8:49 ` [PATCHv3 2/2] git-p4: fix `unshelve` bug finding parent commit Luke Diamand
0 siblings, 1 reply; 3+ messages in thread
From: Luke Diamand @ 2020-09-20 8:49 UTC (permalink / raw)
To: git; +Cc: Liu Xuhui (Jackson), Eric Sunshine, Luke Diamand
`git-p4 unshelve` uses HEAD^$n to find the parent commit, which
fails if there is an additional commit. Augment the tests to demonstrate
this problem.
Signed-off-by: Luke Diamand <luke@diamand.org>
---
t/t9832-unshelve.sh | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/t/t9832-unshelve.sh b/t/t9832-unshelve.sh
index e9276c48f4..c08234bea0 100755
--- a/t/t9832-unshelve.sh
+++ b/t/t9832-unshelve.sh
@@ -29,8 +29,11 @@ test_expect_success 'init depot' '
)
'
+# Create an initial clone, with a commit unrelated to the P4 change
+# on HEAD
test_expect_success 'initial clone' '
- git p4 clone --dest="$git" //depot/@all
+ git p4 clone --dest="$git" //depot/@all &&
+ test_commit -C "$git" "unrelated"
'
test_expect_success 'create shelved changelist' '
@@ -77,7 +80,7 @@ EOF
)
'
-test_expect_success 'update shelved changelist and re-unshelve' '
+test_expect_failure 'update shelved changelist and re-unshelve' '
test_when_finished cleanup_git &&
(
cd "$cli" &&
--
2.28.0.762.g324f61785e
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [PATCHv3 2/2] git-p4: fix `unshelve` bug finding parent commit
2020-09-20 8:49 ` [PATCHv3 1/2] git-p4: demonstrate `unshelve` bug Luke Diamand
@ 2020-09-20 8:49 ` Luke Diamand
0 siblings, 0 replies; 3+ messages in thread
From: Luke Diamand @ 2020-09-20 8:49 UTC (permalink / raw)
To: git; +Cc: Liu Xuhui (Jackson), Eric Sunshine, Luke Diamand
`unshelve` was using HEAD^$n to find the parent commit. This meant that
any intervening commits between HEAD and the last git-p4 commit would
cause the unshelve to fail.
e.g.
123ab Local git-only commit
234bc Another local git-only commit
345cd Perforce tip revision
Unshelve needs to find 345cd.
Use HEAD~$n instead.
Reported-by: Liu Xuhui (Jackson) <Xuhui.Liu@amd.com>
Signed-off-by: Luke Diamand <luke@diamand.org>
---
git-p4.py | 2 +-
t/t9832-unshelve.sh | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/git-p4.py b/git-p4.py
index ca79dc0900..4433ca53de 100755
--- a/git-p4.py
+++ b/git-p4.py
@@ -4237,7 +4237,7 @@ def findLastP4Revision(self, starting_point):
"""
for parent in (range(65535)):
- log = extractLogMessageFromGitCommit("{0}^{1}".format(starting_point, parent))
+ log = extractLogMessageFromGitCommit("{0}~{1}".format(starting_point, parent))
settings = extractSettingsGitLog(log)
if 'change' in settings:
return settings
diff --git a/t/t9832-unshelve.sh b/t/t9832-unshelve.sh
index c08234bea0..c2200a5b69 100755
--- a/t/t9832-unshelve.sh
+++ b/t/t9832-unshelve.sh
@@ -80,7 +80,7 @@ EOF
)
'
-test_expect_failure 'update shelved changelist and re-unshelve' '
+test_expect_success 'update shelved changelist and re-unshelve' '
test_when_finished cleanup_git &&
(
cd "$cli" &&
--
2.28.0.762.g324f61785e
^ permalink raw reply related [flat|nested] 3+ messages in thread
end of thread, other threads:[~2020-09-20 8:49 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-09-20 8:49 [PATCHv3 0/2] git-p4: unshelve uses HEAD^n, not HEAD~n Luke Diamand
2020-09-20 8:49 ` [PATCHv3 1/2] git-p4: demonstrate `unshelve` bug Luke Diamand
2020-09-20 8:49 ` [PATCHv3 2/2] git-p4: fix `unshelve` bug finding parent commit Luke Diamand
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).