changeset 50822:181936ad069a stable

gpg: fix an UnboundLocalError whenever using --force It looks like this has been broke for almost a decade, since 9c89ac99690e.
author Matt Harbison <matt_harbison@yahoo.com>
date Sun, 20 Aug 2023 16:32:18 -0400
parents 28c0fcff24e5
children b76a938cc9dd 0a4efb650b3e
files hgext/gpg.py tests/test-gpg.t
diffstat 2 files changed, 19 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/hgext/gpg.py	Thu Aug 10 19:00:19 2023 +0100
+++ b/hgext/gpg.py	Sun Aug 20 16:32:18 2023 -0400
@@ -339,8 +339,9 @@
         repo.vfs.append(b"localsigs", sigmessage)
         return
 
+    msigs = match.exact([b'.hgsigs'])
+
     if not opts[b"force"]:
-        msigs = match.exact([b'.hgsigs'])
         if any(repo.status(match=msigs, unknown=True, ignored=True)):
             raise error.Abort(
                 _(b"working copy of .hgsigs is changed "),
--- a/tests/test-gpg.t	Thu Aug 10 19:00:19 2023 +0100
+++ b/tests/test-gpg.t	Sun Aug 20 16:32:18 2023 -0400
@@ -54,4 +54,21 @@
   e63c23eaa88a is signed by:
    hgtest
 
+The signature is different each time, so avoid signing the previous signature so
+that the cset hashes are unchanging.
+  $ hg up -q '.^'
+
+  $ HGEDITOR=cat hg sign -f -e .
+  gpg: error retrieving key fingerprint from card: Invalid name (?)
+  signing 0:e63c23eaa88a
+  Added signature for changeset e63c23eaa88a
+  
+  
+  HG: Enter commit message.  Lines beginning with 'HG:' are removed.
+  HG: Leave message empty to abort commit.
+  HG: --
+  HG: user: test
+  HG: branch 'default'
+  HG: added .hgsigs
+
   $ cd ..