git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* format-patch signoff argument no longer works
       [not found] <93c3eada0605310332p19241861g466e1516a2aaf0df@mail.gmail.com>
@ 2006-05-31 11:11 ` Geoff Russell
  2006-05-31 11:28   ` Matthias Kestenholz
  0 siblings, 1 reply; 15+ messages in thread
From: Geoff Russell @ 2006-05-31 11:11 UTC (permalink / raw)
  To: git

Hi,

The --signoff argument no longer works in git-format-patch.  Was this
intentional?
It still appears in the documentation for the command.

It appears to have got lost when the shell script got converted to C.

Cheers,
Geoff Russell

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: format-patch signoff argument no longer works
  2006-05-31 11:11 ` format-patch signoff argument no longer works Geoff Russell
@ 2006-05-31 11:28   ` Matthias Kestenholz
  2006-05-31 13:58     ` Seth Falcon
  2006-05-31 14:14     ` [PATCH] Update documentation for git-format-patch Dennis Stosberg
  0 siblings, 2 replies; 15+ messages in thread
From: Matthias Kestenholz @ 2006-05-31 11:28 UTC (permalink / raw)
  To: geoff; +Cc: git

* Geoff Russell (geoffrey.russell@gmail.com) wrote:
> The --signoff argument no longer works in git-format-patch.  Was this
> intentional?
> It still appears in the documentation for the command.
> 
> It appears to have got lost when the shell script got converted to C.
> 

Yes, this was intentional. You should sign off your changes while
committing (git commit -s|--signoff)

Thanks,
Matthias

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: format-patch signoff argument no longer works
  2006-05-31 11:28   ` Matthias Kestenholz
@ 2006-05-31 13:58     ` Seth Falcon
  2006-05-31 14:09       ` Johannes Schindelin
  2006-05-31 19:02       ` Junio C Hamano
  2006-05-31 14:14     ` [PATCH] Update documentation for git-format-patch Dennis Stosberg
  1 sibling, 2 replies; 15+ messages in thread
From: Seth Falcon @ 2006-05-31 13:58 UTC (permalink / raw)
  To: git

Matthias Kestenholz <lists@spinlock.ch> writes:

> * Geoff Russell (geoffrey.russell@gmail.com) wrote:
>> It appears to have got lost when the shell script got converted to C.
>> 
> Yes, this was intentional. You should sign off your changes while
> committing (git commit -s|--signoff)

When should one commit _without_ signoff?  

The obvious answer is: when one doesn't approve of the changes in the
commit... But in my usual workflow, commit means
works-for-me-I-think-it-is-good. :-)


Also, here's a trivial patch to the git-format-patch doc.  I recently
had the same confusion trying to get git-format-patch to add signoff
for me...

Remove reference to signoff option (-s) in git-format-patch

Signed-off-by: Seth Falcon <sethfalcon@gmail.com>
---
 Documentation/git-format-patch.txt |    6 +-----
 1 files changed, 1 insertions(+), 5 deletions(-)

diff --git a/Documentation/git-format-patch.txt b/Documentation/git-format-patch.txt
index 7cc7faf..d13f463 100644
--- a/Documentation/git-format-patch.txt
+++ b/Documentation/git-format-patch.txt
@@ -9,7 +9,7 @@ git-format-patch - Prepare patches for e
 SYNOPSIS
 --------
 [verse]
-'git-format-patch' [-n | -k] [-o <dir> | --stdout] [--attach] [-s] [-c]
+'git-format-patch' [-n | -k] [-o <dir> | --stdout] [--attach] [-c]
                 [--diff-options] <his> [<mine>]
 
 DESCRIPTION
@@ -44,10 +44,6 @@ OPTIONS
        Do not strip/add '[PATCH]' from the first line of the
        commit log message.
 
--s|--signoff::
-       Add `Signed-off-by:` line to the commit message, using
-       the committer identity of yourself.
-
 -c|--check::
         Display suspicious lines in the patch.  The definition
         of 'suspicious lines' is currently the lines that has
-- 
1.3.3.gb931

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* Re: format-patch signoff argument no longer works
  2006-05-31 13:58     ` Seth Falcon
@ 2006-05-31 14:09       ` Johannes Schindelin
  2006-05-31 19:02       ` Junio C Hamano
  1 sibling, 0 replies; 15+ messages in thread
From: Johannes Schindelin @ 2006-05-31 14:09 UTC (permalink / raw)
  To: Seth Falcon; +Cc: git

Hi,

On Wed, 31 May 2006, Seth Falcon wrote:

> Matthias Kestenholz <lists@spinlock.ch> writes:
> 
> > * Geoff Russell (geoffrey.russell@gmail.com) wrote:
> >> It appears to have got lost when the shell script got converted to C.
> >> 
> > Yes, this was intentional. You should sign off your changes while
> > committing (git commit -s|--signoff)
> 
> When should one commit _without_ signoff?  
> 
> The obvious answer is: when one doesn't approve of the changes in the
> commit... But in my usual workflow, commit means
> works-for-me-I-think-it-is-good. :-)

Well, there are often times when I commit something to a throw-away 
branch, where I do not want to sign it off.

That was my original incentive to add this option BTW: I usually clean up 
a patch series in a cycle of tests and fixes, and only want to sign off on 
the final version.

If people need this option, I'll implement it, so speak up!

Ciao,
Dscho

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [PATCH] Update documentation for git-format-patch
  2006-05-31 11:28   ` Matthias Kestenholz
  2006-05-31 13:58     ` Seth Falcon
@ 2006-05-31 14:14     ` Dennis Stosberg
  2006-05-31 15:00       ` Johannes Schindelin
  2006-05-31 15:24       ` Jakub Narebski
  1 sibling, 2 replies; 15+ messages in thread
From: Dennis Stosberg @ 2006-05-31 14:14 UTC (permalink / raw)
  To: Matthias Kestenholz; +Cc: geoff, git

Signed-off-by: Dennis Stosberg <dennis@stosberg.net>
---
This updates the documentation for git-format-patch to reflect the
changes that the built-in version brought.

In addition to the functional changes, I reworded a few expressions
which sounded suspicious or unclear to me.  However, I'm not a
native English speaker, so corrections are welcome.

Is there any "patch" program at all that understands git's rename
patches?

Regards,
Dennis


 Documentation/git-format-patch.txt |   82 +++++++++++++++---------------------
 1 files changed, 35 insertions(+), 47 deletions(-)

diff --git a/Documentation/git-format-patch.txt b/Documentation/git-format-patch.txt
index 7cc7faf..64d3f1e 100644
--- a/Documentation/git-format-patch.txt
+++ b/Documentation/git-format-patch.txt
@@ -9,70 +9,58 @@ git-format-patch - Prepare patches for e
 SYNOPSIS
 --------
 [verse]
-'git-format-patch' [-n | -k] [-o <dir> | --stdout] [--attach] [-s] [-c]
-		 [--diff-options] <his> [<mine>]
+'git-format-patch' [-n | -k] [-o <dir> | --stdout] [--attach]
+	           [--diff-options] [--start-number <n>]
+		   <since>[..<until>]
 
 DESCRIPTION
 -----------
-Prepare each commit with its patch since <mine> head forked from
-<his> head, one file per patch formatted to resemble UNIX mailbox
-format, for e-mail submission or use with gitlink:git-am[1].
+
+Prepare each commit between <since> and <until> with its patch in
+one file per commit, formatted to resemble UNIX mailbox format.
+If ..<until> is not specified, the head of the current working
+tree is implied.
+
+The output of this command is convenient for e-mail submission or
+for use with gitlink:git-am[1].
 
 Each output file is numbered sequentially from 1, and uses the
-first line of the commit message (massaged for pathname safety)
-as the filename.
+first line of the commit message (checked for pathname safety) as
+the filename. The names of the output files are printed to standard
+output, unless the --stdout option is specified.
 
-When -o is specified, output files are created in <dir>; otherwise
-they are created in the current working directory.  This option
-is ignored if --stdout is specified.
+If -o is specified, output files are created in <dir>.  Otherwise
+they are created in the current working directory.
 
-When -n is specified, instead of "[PATCH] Subject", the first
-line is formatted as "[PATCH N/M] Subject", unless you have only
-one patch.
+If -n is specified, instead of "[PATCH] Subject", the first line
+is formatted as "[PATCH n/m] Subject".
 
 
 OPTIONS
 -------
 -o|--output-directory <dir>::
 	Use <dir> to store the resulting files, instead of the
-	current working directory.
+	current working directory. This option is ignored if
+	--stdout is specified.
 
 -n|--numbered::
 	Name output in '[PATCH n/m]' format.
 
+--start-number <n>::
+	Start numbering the patches with <n> instead of 1.
+
 -k|--keep-subject::
 	Do not strip/add '[PATCH]' from the first line of the
 	commit log message.
 
--s|--signoff::
-	Add `Signed-off-by:` line to the commit message, using
-	the committer identity of yourself.
-
--c|--check::
-        Display suspicious lines in the patch.  The definition
-        of 'suspicious lines' is currently the lines that has
-        trailing whitespaces, and the lines whose indentation
-        has a SP character immediately followed by a TAB
-        character.
-
 --stdout::
-	This flag generates the mbox formatted output to the
-	standard output, instead of saving them into a file per
-	patch and implies --mbox.
+	Print all commits to the standard output in mbox format,
+	instead of creating a file for each one.
 
 --attach::
 	Create attachments instead of inlining patches.
 
 
-CONFIGURATION
--------------
-You can specify extra mail header lines to be added to each
-message in the repository configuration as follows:
-
-[format]
-        headers = "Organization: git-foo\n"
-
-
 EXAMPLES
 --------
 
@@ -82,18 +70,18 @@ git-format-patch -k --stdout R1..R2 | gi
 	cherry-pick them.
 
 git-format-patch origin::
-	Extract commits the current branch accumulated since it
-	pulled from origin the last time in a patch form for
-	e-mail submission.
+	Extract all commits which are in the current branch but
+	not in the origin branch.  For each commit a separate file
+	is created in the current directory.
 
 git-format-patch -M -B origin::
-	The same as the previous one, except detect and handle
-	renames and complete rewrites intelligently to produce
-	renaming patch.  A renaming patch reduces the amount of
-	text output, and generally makes it easier to review
-	it.  Note that the "patch" program does not understand
-	renaming patch well, so use it only when you know the
-	recipient uses git to apply your patch.
+	The same as the previous one.  Additionally, it detects
+	and handles renames and complete rewrites intelligently to
+	produce a renaming patch.  A renaming patch reduces the
+	amount of text output, and generally makes it easier to
+	review it.  Note that the "patch" program does not
+	understand renaming patches, so use it only when you know
+	the recipient uses git to apply your patch.
 
 
 See Also
-- 
1.3.3+git20060531-dest1

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* Re: [PATCH] Update documentation for git-format-patch
  2006-05-31 14:14     ` [PATCH] Update documentation for git-format-patch Dennis Stosberg
@ 2006-05-31 15:00       ` Johannes Schindelin
  2006-05-31 15:24       ` Jakub Narebski
  1 sibling, 0 replies; 15+ messages in thread
From: Johannes Schindelin @ 2006-05-31 15:00 UTC (permalink / raw)
  To: Dennis Stosberg; +Cc: Matthias Kestenholz, geoff, git

Hi,

On Wed, 31 May 2006, Dennis Stosberg wrote:

> Is there any "patch" program at all that understands git's rename
> patches?

Why, yes: git-apply!

Ciao,
Dscho

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH] Update documentation for git-format-patch
  2006-05-31 14:14     ` [PATCH] Update documentation for git-format-patch Dennis Stosberg
  2006-05-31 15:00       ` Johannes Schindelin
@ 2006-05-31 15:24       ` Jakub Narebski
  2006-05-31 17:24         ` Dennis Stosberg
  1 sibling, 1 reply; 15+ messages in thread
From: Jakub Narebski @ 2006-05-31 15:24 UTC (permalink / raw)
  To: git

Dennis Stosberg wrote:

> --c|--check::
> -        Display suspicious lines in the patch.  The definition
> -        of 'suspicious lines' is currently the lines that has
> -        trailing whitespaces, and the lines whose indentation
> -        has a SP character immediately followed by a TAB
> -        character.

So is this option also lost in built-in git-format-patch?

> -CONFIGURATION
> --------------
> -You can specify extra mail header lines to be added to each
> -message in the repository configuration as follows:
> -
> -[format]
> -        headers = "Organization: git-foo\n"

So is this configuration option also lost in built-in git-format-patch?


-- 
Jakub Narebski
Warsaw, Poland

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH] Update documentation for git-format-patch
  2006-05-31 15:24       ` Jakub Narebski
@ 2006-05-31 17:24         ` Dennis Stosberg
  0 siblings, 0 replies; 15+ messages in thread
From: Dennis Stosberg @ 2006-05-31 17:24 UTC (permalink / raw)
  To: git

Jakub Narebski wrote:

> Dennis Stosberg wrote:
> 
> > -        Display suspicious lines in the patch.  The definition
> > -        of 'suspicious lines' is currently the lines that has
> > -        trailing whitespaces, and the lines whose indentation
> > -        has a SP character immediately followed by a TAB
> > -        character.
> 
> So is this option also lost in built-in git-format-patch?

Johannes Schindelin made that one a diff option, so it can be used in
other ways, too.  I think it should be documented in diff-options.txt.

> > -CONFIGURATION
> > -You can specify extra mail header lines to be added to each
> > -message in the repository configuration as follows:
> > -
> > -[format]
> > -        headers = "Organization: git-foo\n"
> 
> So is this configuration option also lost in built-in git-format-patch?

Grep'ing the sources, I couldn't find any trace of it.

Regards,
Dennis

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: format-patch signoff argument no longer works
  2006-05-31 13:58     ` Seth Falcon
  2006-05-31 14:09       ` Johannes Schindelin
@ 2006-05-31 19:02       ` Junio C Hamano
  2006-05-31 19:19         ` J. Bruce Fields
                           ` (2 more replies)
  1 sibling, 3 replies; 15+ messages in thread
From: Junio C Hamano @ 2006-05-31 19:02 UTC (permalink / raw)
  To: git; +Cc: Seth Falcon

Seth Falcon <sethfalcon@gmail.com> writes:

> Matthias Kestenholz <lists@spinlock.ch> writes:
>
>> * Geoff Russell (geoffrey.russell@gmail.com) wrote:
>>> It appears to have got lost when the shell script got converted to C.
>>> 
>> Yes, this was intentional. You should sign off your changes while
>> committing (git commit -s|--signoff)

A bit on this later, but first to clear one thing up...

> When should one commit _without_ signoff?  
>
> The obvious answer is: when one doesn't approve of the changes in the
> commit... But in my usual workflow, commit means
> works-for-me-I-think-it-is-good. :-)

Please, calm down and read Documentation/SubmittingPatches,
item (6), to understand what sign-off means.  It does not have
anything to do with the result of the commit "working".  I do
not use -s when making commits during my day-job, for example.

We do not want to make sign-off the default.  It has to be a
concious act on the signer's part to add one.  Otherwise it
would not carry much weight.

About the droppage of "format-patch -s", I have come to think of
it as a mistake (yes, I can change my mind).  Consider:

 * You are the leader of a group of people who hack on a part of
   the kernel, internally in your company.  You and other
   developers make improvements and make commits, with "git
   commit -s".

 * As the in-company integrator, you maintain the canonical
   "company tree" by pulling from others in your group.

 * It's time to send good pieces to Linus and/or Andrew and as
   the group lead you are responsible for sending them out.  The
   commits would have Sign-off's by the original committers, but
   as the contact person (representative) of your group, your
   name is better recognizable in the outside community, and as
   the leader of your group, it is a good practice for _you_ to
   vouch for what your group did.

In that scenario, in addition to what "commit -s" gives us, it
is handy for the person who is sending the patches out via
e-mail to add his own sign-off.

Now, we could do that by re-adding "format-patch -s" option, or
alternatively we could add that to "send-email".  We might want
to do both ;-)

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: format-patch signoff argument no longer works
  2006-05-31 19:02       ` Junio C Hamano
@ 2006-05-31 19:19         ` J. Bruce Fields
  2006-05-31 19:43         ` Seth Falcon
  2006-05-31 22:14         ` [PATCH] format-patch --signoff Junio C Hamano
  2 siblings, 0 replies; 15+ messages in thread
From: J. Bruce Fields @ 2006-05-31 19:19 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git, Seth Falcon

On Wed, May 31, 2006 at 12:02:33PM -0700, Junio C Hamano wrote:
> Now, we could do that by re-adding "format-patch -s" option, or
> alternatively we could add that to "send-email".  We might want
> to do both ;-)

Personally, just to give myself the best change of catching problems
with the outgoing email, I'd prefer to have as much as possible be done
*before* send-email, so whatever I review is as close to what's sent out
as possible.

--b.

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: format-patch signoff argument no longer works
  2006-05-31 19:02       ` Junio C Hamano
  2006-05-31 19:19         ` J. Bruce Fields
@ 2006-05-31 19:43         ` Seth Falcon
  2006-05-31 22:14         ` [PATCH] format-patch --signoff Junio C Hamano
  2 siblings, 0 replies; 15+ messages in thread
From: Seth Falcon @ 2006-05-31 19:43 UTC (permalink / raw)
  To: git

Junio C Hamano <junkio@cox.net> writes:

> Seth Falcon <sethfalcon@gmail.com> writes:
>> When should one commit _without_ signoff?  
>
> Please, calm down and read Documentation/SubmittingPatches,
> item (6), to understand what sign-off means.  It does not have
> anything to do with the result of the commit "working".  I do
> not use -s when making commits during my day-job, for example.

Doh!  In glancing through the Documentation dir I missed the
SubmittingPatches file. [weak excuse: there are many doc files in that
dir and most are for the commands themselves.  I expected this to be
in howto/.]

Anyhow, much calmer now (apologies if I sounded un-calm, that wasn't
my intention).  The SubmittingPatches doc was _exactly_ what I was
looking for when I posted my original question [*].  My bad for not
finding it when it was staring me in the face.  Thanks for bearing
with me and pointing me to the fine manual :-)



[*] http://marc.theaimsgroup.com/?l=git&m=114884854119660&w=2

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [PATCH] format-patch --signoff
  2006-05-31 19:02       ` Junio C Hamano
  2006-05-31 19:19         ` J. Bruce Fields
  2006-05-31 19:43         ` Seth Falcon
@ 2006-05-31 22:14         ` Junio C Hamano
  2006-05-31 22:42           ` Johannes Schindelin
  2 siblings, 1 reply; 15+ messages in thread
From: Junio C Hamano @ 2006-05-31 22:14 UTC (permalink / raw)
  To: Geoff Russell, Marco Costalba, Johannes Schindelin; +Cc: git, Seth Falcon

This resurrects --signoff option to format-patch.

Signed-off-by: Junio C Hamano <junkio@cox.net>
---
 builtin-log.c |   18 ++++++++++++++++--
 log-tree.c    |   35 +++++++++++++++++++++++++++++++++++
 revision.h    |    1 +
 3 files changed, 52 insertions(+), 2 deletions(-)

diff --git a/builtin-log.c b/builtin-log.c
index db1912a..ac4822d 100644
--- a/builtin-log.c
+++ b/builtin-log.c
@@ -150,6 +150,7 @@ int cmd_format_patch(int argc, const cha
 	int numbered = 0;
 	int start_number = -1;
 	int keep_subject = 0;
+	char *add_signoff = NULL;
 
 	init_revisions(&rev);
 	rev.commit_format = CMIT_FMT_EMAIL;
@@ -179,11 +180,13 @@ int cmd_format_patch(int argc, const cha
 			if (i == argc)
 				die("Need a number for --start-number");
 			start_number = strtol(argv[i], NULL, 10);
-		} else if (!strcmp(argv[i], "-k") ||
+		}
+		else if (!strcmp(argv[i], "-k") ||
 				!strcmp(argv[i], "--keep-subject")) {
 			keep_subject = 1;
 			rev.total = -1;
-		} else if (!strcmp(argv[i], "-o")) {
+		}
+		else if (!strcmp(argv[i], "-o")) {
 			if (argc < 3)
 				die ("Which directory?");
 			if (mkdir(argv[i + 1], 0777) < 0 && errno != EEXIST)
@@ -192,6 +195,16 @@ int cmd_format_patch(int argc, const cha
 			output_directory = strdup(argv[i + 1]);
 			i++;
 		}
+		else if (!strcmp(argv[i], "--signoff") ||
+			 !strcmp(argv[i], "-s")) {
+			const char *committer = git_committer_info(1);
+			const char *endpos = strchr(committer, '>');
+			if (!endpos)
+				die("bogos committer info %s\n", committer);
+			add_signoff = xmalloc(endpos - committer + 2);
+			memcpy(add_signoff, committer, endpos - committer + 1);
+			add_signoff[endpos - committer + 1] = 0;
+		}
 		else if (!strcmp(argv[i], "--attach"))
 			rev.mime_boundary = git_version_string;
 		else if (!strncmp(argv[i], "--attach=", 9))
@@ -230,6 +243,7 @@ int cmd_format_patch(int argc, const cha
 	total = nr;
 	if (numbered)
 		rev.total = total + start_number - 1;
+	rev.add_signoff = add_signoff;
 	while (0 <= --nr) {
 		int shown;
 		commit = list[nr];
diff --git a/log-tree.c b/log-tree.c
index 58b0163..e86e16b 100644
--- a/log-tree.c
+++ b/log-tree.c
@@ -12,6 +12,37 @@ static void show_parents(struct commit *
 	}
 }
 
+static int append_signoff(char *buf, int buf_sz, int at, const char *signoff)
+{
+	int signoff_len = strlen(signoff);
+	static const char signed_off_by[] = "Signed-off-by: ";
+	char *cp = buf;
+
+	/* Do we have enough space to add it? */
+	if (buf_sz - at <= strlen(signed_off_by) + signoff_len + 2)
+		return at;
+
+	/* First see if we already have the sign-off by the signer */
+	while (1) {
+		cp = strstr(cp, signed_off_by);
+		if (!cp)
+			break;
+		cp += strlen(signed_off_by);
+		if ((cp + signoff_len < buf + at) &&
+		    !strncmp(cp, signoff, signoff_len) &&
+		    isspace(cp[signoff_len]))
+			return at; /* we already have him */
+	}
+
+	strcpy(buf + at, signed_off_by);
+	at += strlen(signed_off_by);
+	strcpy(buf + at, signoff);
+	at += signoff_len;
+	buf[at++] = '\n';
+	buf[at] = 0;
+	return at;
+}
+
 void show_log(struct rev_info *opt, struct log_info *log, const char *sep)
 {
 	static char this_header[16384];
@@ -111,6 +142,10 @@ void show_log(struct rev_info *opt, stru
 	 * And then the pretty-printed message itself
 	 */
 	len = pretty_print_commit(opt->commit_format, commit, ~0u, this_header, sizeof(this_header), abbrev, subject, after_subject);
+
+	if (opt->add_signoff)
+		len = append_signoff(this_header, sizeof(this_header), len,
+				     opt->add_signoff);
 	printf("%s%s%s", this_header, extra, sep);
 }
 
diff --git a/revision.h b/revision.h
index bdbdd23..75796bc 100644
--- a/revision.h
+++ b/revision.h
@@ -60,6 +60,7 @@ struct rev_info {
 	struct log_info *loginfo;
 	int		nr, total;
 	const char	*mime_boundary;
+	const char	*add_signoff;
 
 	/* special limits */
 	int max_count;
-- 
1.3.3.g1361-dirty

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* Re: [PATCH] format-patch --signoff
  2006-05-31 22:14         ` [PATCH] format-patch --signoff Junio C Hamano
@ 2006-05-31 22:42           ` Johannes Schindelin
  2006-05-31 23:16             ` Junio C Hamano
  0 siblings, 1 reply; 15+ messages in thread
From: Johannes Schindelin @ 2006-05-31 22:42 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: Geoff Russell, Marco Costalba, git, Seth Falcon

Hi,

On Wed, 31 May 2006, Junio C Hamano wrote:

> This resurrects --signoff option to format-patch.

Sorry; I was in cinema, so I missed all the action.


> +			const char *committer = git_committer_info(1);
> +			const char *endpos = strchr(committer, '>');
> +			if (!endpos)
> +				die("bogos committer info %s\n", committer);
> +			add_signoff = xmalloc(endpos - committer + 2);
> +			memcpy(add_signoff, committer, endpos - committer + 1);
> +			add_signoff[endpos - committer + 1] = 0;
> +		}

I don't know, but it may be a good idea to make this more general: Why not 
build the sign-off line here, so that you could also add more than one 
sign-off lines ('--signoff="The great committer <ter@mit.com>"'), and 
maybe even Acked-by's?

> +	/* First see if we already have the sign-off by the signer */
> +	while (1) {
> +		cp = strstr(cp, signed_off_by);
> +		if (!cp)
> +			break;
> +		cp += strlen(signed_off_by);
> +		if ((cp + signoff_len < buf + at) &&
> +		    !strncmp(cp, signoff, signoff_len) &&
> +		    isspace(cp[signoff_len]))
> +			return at; /* we already have him */
> +	}

Okay, this would be a little harder with multiple sign-offs. But the check 
could be easier, i.e. if we say

	rev.add_signoff = xmalloc(enough_room);
	strcpy(rev.add_signoff, "\nSigned-off-by: ");
	strcat(rev.add_signoff, committer_ident);
	strcat(rev.add_signoff, "\n");

then a simple

	p = strstr(commit_buffer, rev.add_signoff);
	if (p)
		return (int)(p - commit_buffer);

would do the trick.

And shouldn't we error out if there is not enough room for a sign-off?

Sorry for all the nit-picking.

Ciao,
Dscho

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH] format-patch --signoff
  2006-05-31 22:42           ` Johannes Schindelin
@ 2006-05-31 23:16             ` Junio C Hamano
  2006-05-31 23:31               ` Johannes Schindelin
  0 siblings, 1 reply; 15+ messages in thread
From: Junio C Hamano @ 2006-05-31 23:16 UTC (permalink / raw)
  To: Johannes Schindelin; +Cc: Geoff Russell, Marco Costalba, git, Seth Falcon

Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:

> I don't know, but it may be a good idea to make this more general: Why not 
> build the sign-off line here, so that you could also add more than one 
> sign-off lines ('--signoff="The great committer <ter@mit.com>"'), and 
> maybe even Acked-by's?

Perhaps.

> Okay, this would be a little harder with multiple sign-offs. But the check 
> could be easier, i.e. if we say
>
> 	rev.add_signoff = xmalloc(enough_room);
> 	strcpy(rev.add_signoff, "\nSigned-off-by: ");
> 	strcat(rev.add_signoff, committer_ident);
> 	strcat(rev.add_signoff, "\n");
>
> then a simple
>
> 	p = strstr(commit_buffer, rev.add_signoff);
> 	if (p)
> 		return (int)(p - commit_buffer);
>
> would do the trick.

Do you mean, by "multiple sign-offs", something like this?

	for (so_list = rev.add_signoff; so_list; so_list = so_list->next) {
		if (strstr(commit_buffer, so_list->item))
                	continue;
                append_to_commit_buffer(so_list->item);
	}
	return tail - commit_buffer;

> And shouldn't we error out if there is not enough room for a sign-off?

I do not think we error out if the commit message is too long
either, so...

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH] format-patch --signoff
  2006-05-31 23:16             ` Junio C Hamano
@ 2006-05-31 23:31               ` Johannes Schindelin
  0 siblings, 0 replies; 15+ messages in thread
From: Johannes Schindelin @ 2006-05-31 23:31 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: Geoff Russell, Marco Costalba, git, Seth Falcon

Hi,

On Wed, 31 May 2006, Junio C Hamano wrote:

> Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
> 
> > I don't know, but it may be a good idea to make this more general: Why not 
> > build the sign-off line here, so that you could also add more than one 
> > sign-off lines ('--signoff="The great committer <ter@mit.com>"'), and 
> > maybe even Acked-by's?
> 
> Perhaps.
> 
> > Okay, this would be a little harder with multiple sign-offs. But the check 
> > could be easier, i.e. if we say
> >
> > 	rev.add_signoff = xmalloc(enough_room);
> > 	strcpy(rev.add_signoff, "\nSigned-off-by: ");
> > 	strcat(rev.add_signoff, committer_ident);
> > 	strcat(rev.add_signoff, "\n");
> >
> > then a simple
> >
> > 	p = strstr(commit_buffer, rev.add_signoff);
> > 	if (p)
> > 		return (int)(p - commit_buffer);
> >
> > would do the trick.
> 
> Do you mean, by "multiple sign-offs", something like this?
> 
> 	for (so_list = rev.add_signoff; so_list; so_list = so_list->next) {
> 		if (strstr(commit_buffer, so_list->item))
>                 	continue;
>                 append_to_commit_buffer(so_list->item);
> 	}
> 	return tail - commit_buffer;

Actually, I did not think of a linked list, but one buffer, but I like 
your solution better.

> > And shouldn't we error out if there is not enough room for a sign-off?
> 
> I do not think we error out if the commit message is too long
> either, so...

... so you could say that should be an error, too.

Ciao,
Dscho

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2006-05-31 23:32 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <93c3eada0605310332p19241861g466e1516a2aaf0df@mail.gmail.com>
2006-05-31 11:11 ` format-patch signoff argument no longer works Geoff Russell
2006-05-31 11:28   ` Matthias Kestenholz
2006-05-31 13:58     ` Seth Falcon
2006-05-31 14:09       ` Johannes Schindelin
2006-05-31 19:02       ` Junio C Hamano
2006-05-31 19:19         ` J. Bruce Fields
2006-05-31 19:43         ` Seth Falcon
2006-05-31 22:14         ` [PATCH] format-patch --signoff Junio C Hamano
2006-05-31 22:42           ` Johannes Schindelin
2006-05-31 23:16             ` Junio C Hamano
2006-05-31 23:31               ` Johannes Schindelin
2006-05-31 14:14     ` [PATCH] Update documentation for git-format-patch Dennis Stosberg
2006-05-31 15:00       ` Johannes Schindelin
2006-05-31 15:24       ` Jakub Narebski
2006-05-31 17:24         ` Dennis Stosberg

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).