Subject: Re: How to omit/alter the sigend-off line in a patch set?

From: Jakub Narebski <[email-masked]>
Date: Mon, 16 Jun 2008 04:26:52 -0700 (PDT)

"Ian Brown" <[email-masked]> writes:

> I am creating a patch set in this way:
>
> I make a change in one file, than commit it. (git commit file1)
> Then I make a change in a second file, than commit it. (git commit
> file1) and so on.

So you don't add Signed-off-by to yout commit.  If you plan on sharing
your work not only by sending patches, but by publishing your
repository somwehere, it would be better to signoff your commit, so
S-o-b is in "history", not only in mailing list archive...

This can be done by using '-s' option to git-commit, i.e.
  $ git commit -s file1
or by adding signoff to your commit template, if you use it.

By the way, usually one uses either
  $ git add file1; git commit
or
  $ git commit -a
(optionally with signoff).

> Then I create a patch set thus:
> 
> git-format-patch -M -s -n -o patchdir origin

Adding '-s | --signoff' option is what creates Signed-off-by line.

> And a number of patch files are created, according to the number of
> commits I had made.
> 
> 
> Now, in each created patch file there is a line saying:
> Signed-off-by: root <root@hostName.(none)>
> 
> 
> Which is caused as I am doing this patches as root, and the machine
> name is hostName (and the domain name is none).

WHY do you work as ROOT?

> Now, is there a way to cause git-format-patch to omit this
> Signed-off-by: root <root@hostName.(none)> line ?

Simply do not add '-s' option to git-format-patch, and if signoff line
was not present in commit, it wouldn't be present in patch.

> Or, altetnatively, is there a way to cause the git-format-patch to
> generate a different signed off by line (like signed off by
> [email-masked])?

You can configure git, either in repository config (.git/config),
or in your user config (~/.gitconfig) by adding the following

-- cut starts here --
[user]
	name  = Ian Brown
	email = [email-masked]
-- cut ends here --

You can use git-config to set those config variables, but I think
editing simple ini-like text file is simpler.  But if you prefer,
there is scriptable solution:

  $ git config --global user.name "Ian Brown"
  $ git config --global user.email [email-masked]

> I had tried using the --signoff option for git-format-patch, in
> these two ways, but got an error:
> 
> git-format-patch --signoff=[email-masked] -M -n -o patchdir origin
> fatal: unrecognized argument: --signoff=[email-masked]

According to git-format-patch(1) manpage the --signoff option does not
accept any parameters.  It always uses committer identity of yourself.

> I also tried to use the -a flag for commit
>   $ git-commit -a [email-masked]
> but again it did not help either.

Please, please read the documentation.  git-commit -a has _nothing_ to
do with signoff...

-- 
Jakub Narebski
Poland
ShadeHawk on #git