From: Yann Dirson <ydirson@altern.org>
To: Catalin Marinas <catalin.marinas@gmail.com>
Cc: git@vger.kernel.org
Subject: [PATCH] Fix deletion and move of a hidden patch (gna bug #9244).
Date: Mon, 04 Jun 2007 23:14:43 +0200 [thread overview]
Message-ID: <20070604211419.469.38927.stgit@gandelf.nowhere.earth> (raw)
We must unhide a patch before we delete it, or we get an exception
while trying to unhide a non-existent patch.
Similarly, when renaming a hidden patch, we must take care of hiding
an unhiding at the right moment.
Both problems introduced in commit
841c7b2a6b015e3ab3331713cf10caf7a4fd0b49 when first indroducing patch
hiding.
Signed-off-by: Yann Dirson <ydirson@altern.org>
---
stgit/stack.py | 13 +++++++++----
t/t1600-delete-one.sh | 13 +++++++++++--
2 files changed, 20 insertions(+), 6 deletions(-)
diff --git a/stgit/stack.py b/stgit/stack.py
index 7a06458..ed54671 100644
--- a/stgit/stack.py
+++ b/stgit/stack.py
@@ -894,6 +894,9 @@ class Series(StgitObject):
# save the commit id to a trash file
write_string(os.path.join(self.__trash_dir, name), patch.get_top())
+ if self.patch_hidden(name):
+ self.unhide_patch(name)
+
patch.delete()
unapplied = self.get_unapplied()
@@ -902,9 +905,6 @@ class Series(StgitObject):
f.writelines([line + '\n' for line in unapplied])
f.close()
- if self.patch_hidden(name):
- self.unhide_patch(name)
-
def forward_patches(self, names):
"""Try to fast-forward an array of patches.
@@ -1168,7 +1168,9 @@ class Series(StgitObject):
if self.patch_hidden(oldname):
self.unhide_patch(oldname)
- self.hide_patch(newname)
+ was_hidden=True
+ else:
+ was_hidden=False
if oldname in unapplied:
Patch(oldname, self.__patch_dir, self.__refs_dir).rename(newname)
@@ -1188,6 +1190,9 @@ class Series(StgitObject):
else:
raise StackException, 'Unknown patch "%s"' % oldname
+ if was_hidden:
+ self.hide_patch(newname)
+
def log_patch(self, patch, message):
"""Generate a log commit for a patch
"""
diff --git a/t/t1600-delete-one.sh b/t/t1600-delete-one.sh
index df03d79..d59d4ba 100755
--- a/t/t1600-delete-one.sh
+++ b/t/t1600-delete-one.sh
@@ -82,6 +82,15 @@ test_expect_success \
'
test_expect_success \
+ 'Hide the topmost patch and try to delete it' \
+ '
+ [ $(stg applied | wc -l) -eq 2 ] &&
+ stg hide bar &&
+ stg delete bar &&
+ [ $(stg applied | wc -l) -eq 1 ]
+ '
+
+test_expect_success \
'Create another branch, and put one patch in each branch' \
'
stg branch --create br &&
@@ -99,10 +108,10 @@ test_expect_success \
test_expect_success \
'Delete a patch in another branch' \
'
- [ $(stg applied | wc -l) -eq 3 ] &&
+ [ $(stg applied | wc -l) -eq 2 ] &&
[ $(stg applied -b br | wc -l) -eq 1 ] &&
stg delete -b br baz &&
- [ $(stg applied | wc -l) -eq 3 ] &&
+ [ $(stg applied | wc -l) -eq 2 ] &&
[ $(stg applied -b br | wc -l) -eq 0 ]
'
reply other threads:[~2007-06-04 21:14 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20070604211419.469.38927.stgit@gandelf.nowhere.earth \
--to=ydirson@altern.org \
--cc=catalin.marinas@gmail.com \
--cc=git@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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 NNTP newsgroup(s).