[PATCH 1/8] cherry-pick, revert: add the --gpg-sign option

2013-11-03 Thread Nicolas Vigier
Signed-off-by: Nicolas Vigier bo...@mars-attacks.org
---
 Documentation/git-cherry-pick.txt | 7 ++-
 Documentation/git-revert.txt  | 6 +-
 builtin/revert.c  | 2 ++
 sequencer.c   | 7 +++
 sequencer.h   | 2 ++
 5 files changed, 22 insertions(+), 2 deletions(-)

diff --git a/Documentation/git-cherry-pick.txt 
b/Documentation/git-cherry-pick.txt
index c205d2363e42..f1e6b2fd6d15 100644
--- a/Documentation/git-cherry-pick.txt
+++ b/Documentation/git-cherry-pick.txt
@@ -8,7 +8,8 @@ git-cherry-pick - Apply the changes introduced by some existing 
commits
 SYNOPSIS
 
 [verse]
-'git cherry-pick' [--edit] [-n] [-m parent-number] [-s] [-x] [--ff] commit...
+'git cherry-pick' [--edit] [-n] [-m parent-number] [-s] [-x] [--ff]
+ [-S[keyid]] commit...
 'git cherry-pick' --continue
 'git cherry-pick' --quit
 'git cherry-pick' --abort
@@ -100,6 +101,10 @@ effect to your index in a row.
 --signoff::
Add Signed-off-by line at the end of the commit message.
 
+-S[keyid]::
+--gpg-sign[=keyid]::
+   GPG-sign commits.
+
 --ff::
If the current HEAD is the same as the parent of the
cherry-pick'ed commit, then a fast forward to this commit will
diff --git a/Documentation/git-revert.txt b/Documentation/git-revert.txt
index 2de67a54962b..9eb83f01a451 100644
--- a/Documentation/git-revert.txt
+++ b/Documentation/git-revert.txt
@@ -8,7 +8,7 @@ git-revert - Revert some existing commits
 SYNOPSIS
 
 [verse]
-'git revert' [--[no-]edit] [-n] [-m parent-number] [-s] commit...
+'git revert' [--[no-]edit] [-n] [-m parent-number] [-s] [-S[keyid]] 
commit...
 'git revert' --continue
 'git revert' --quit
 'git revert' --abort
@@ -80,6 +80,10 @@ more details.
 This is useful when reverting more than one commits'
 effect to your index in a row.
 
+-S[keyid]::
+--gpg-sign[=keyid]::
+   GPG-sign commits.
+
 -s::
 --signoff::
Add Signed-off-by line at the end of the commit message.
diff --git a/builtin/revert.c b/builtin/revert.c
index 87659c9fdb74..065d88dd05ea 100644
--- a/builtin/revert.c
+++ b/builtin/revert.c
@@ -89,6 +89,8 @@ static void parse_args(int argc, const char **argv, struct 
replay_opts *opts)
OPT_STRING(0, strategy, opts-strategy, N_(strategy), 
N_(merge strategy)),
OPT_CALLBACK('X', strategy-option, opts, N_(option),
N_(option for merge strategy), option_parse_x),
+   { OPTION_STRING, 'S', gpg-sign, opts-gpg_sign, N_(key id),
+ N_(GPG sign commit), PARSE_OPT_OPTARG, NULL, (intptr_t)  
},
OPT_END(),
OPT_END(),
OPT_END(),
diff --git a/sequencer.c b/sequencer.c
index 06e52b4c83ff..b10a90fe70f6 100644
--- a/sequencer.c
+++ b/sequencer.c
@@ -392,11 +392,18 @@ static int run_git_commit(const char *defmsg, struct 
replay_opts *opts,
 {
struct argv_array array;
int rc;
+   char *gpg_sign;
 
argv_array_init(array);
argv_array_push(array, commit);
argv_array_push(array, -n);
 
+   if (opts-gpg_sign) {
+   gpg_sign = xmalloc(3 + strlen(opts-gpg_sign));
+   sprintf(gpg_sign, -S%s, opts-gpg_sign);
+   argv_array_push(array, gpg_sign);
+   free(gpg_sign);
+   }
if (opts-signoff)
argv_array_push(array, -s);
if (!opts-edit) {
diff --git a/sequencer.h b/sequencer.h
index 1fc22dcabe13..db43e9cf86dc 100644
--- a/sequencer.h
+++ b/sequencer.h
@@ -37,6 +37,8 @@ struct replay_opts {
 
int mainline;
 
+   const char *gpg_sign;
+
/* Merge strategy */
const char *strategy;
const char **xopts;
-- 
1.8.4.2

--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 1/8] cherry-pick, revert: add the --gpg-sign option

2013-11-03 Thread brian m. carlson
On Sun, Nov 03, 2013 at 04:54:17PM +0100, Nicolas Vigier wrote:
 diff --git a/sequencer.h b/sequencer.h
 index 1fc22dcabe13..db43e9cf86dc 100644
 --- a/sequencer.h
 +++ b/sequencer.h
 @@ -37,6 +37,8 @@ struct replay_opts {
  
   int mainline;
  
 + const char *gpg_sign;
 +
   /* Merge strategy */
   const char *strategy;
   const char **xopts;

One thing you're missing here is the ability to save and retrieve the
options.  You might be cherry-picking or reverting multiple commits and
get interrupted (maybe one is already applied) and need to use
--continue.

So populate_options_cb and save_opts need to learn about this sequencer
option so that after --continue, commits continue to get signed.

-- 
brian m. carlson / brian with sandals: Houston, Texas, US
+1 832 623 2791 | http://www.crustytoothpaste.net/~bmc | My opinion only
OpenPGP: RSA v4 4096b: 88AC E9B2 9196 305B A994 7552 F1BA 225C 0223 B187


signature.asc
Description: Digital signature


Re: [PATCH 1/8] cherry-pick, revert: add the --gpg-sign option

2013-11-03 Thread Nicolas Vigier
On Sun, 03 Nov 2013, brian m. carlson wrote:

 On Sun, Nov 03, 2013 at 04:54:17PM +0100, Nicolas Vigier wrote:
  diff --git a/sequencer.h b/sequencer.h
  index 1fc22dcabe13..db43e9cf86dc 100644
  --- a/sequencer.h
  +++ b/sequencer.h
  @@ -37,6 +37,8 @@ struct replay_opts {
   
  int mainline;
   
  +   const char *gpg_sign;
  +
  /* Merge strategy */
  const char *strategy;
  const char **xopts;
 
 One thing you're missing here is the ability to save and retrieve the
 options.  You might be cherry-picking or reverting multiple commits and
 get interrupted (maybe one is already applied) and need to use
 --continue.
 
 So populate_options_cb and save_opts need to learn about this sequencer
 option so that after --continue, commits continue to get signed.

Ah indeed, I didn't think about that. I will look at it. Thanks.



pgpoGIMujtmkG.pgp
Description: PGP signature