# wherefore art thou, git-applymbox? - Adding non-self signoffs

2 messages from 2008-01-04 to 2008-01-04. Participants: Joel Becker, Junio C Hamano.
Thread: https://gitlist.dev/t/11460

## Joel Becker, 2008-01-04 01:50

Subject: wherefore art thou, git-applymbox? - Adding non-self signoffs
Message-ID: <20080104015028.GC3989@mail.oracle.com>
URL: https://gitlist.dev/e/20080104015028.GC3989%40mail.oracle.com

```
Junio, et al,
	When git-applymbox disappeared, I didn't pay much attention.  I
just learned git-am and went along.  Little did I know, there was a
trap laid.
	The ocfs2-tools.git repository is maintained by the entire ocfs2
team.  It's a "shared" style repo.  A proposed change is posted to
ocfs2-tools-devel, and when a teammate approves, they respond with a
signoff.  The author then adds the signoff to the patch and pushes to
the shared repo.
	We used to do this very easily with git-applymbox:
(from http://oss.oracle.com/osswiki/GitRepositories/ForMaintainers)

$ echo "Julie Hacker <julieh@my.site.com>" > /tmp/signoff
$ git branch to-push master
$ git checkout to-push
$ git format-patch -C -k --stdout master..workingbranch > /tmp/changes-to-push
$ git applymbox -k /tmp/changes-to-push /tmp/signoff
$ git push ssh://my.server.com/path/project.git to-push:master

	The <signoff> file argument to applymbox allowed us to add the
approvers signoff to an entire series in one go.  git-am does not have
this feature.  As far as I can tell, I have to edit each patch by hand
to add the new signoff.  Is there a better way?

Joel

-- 

Life's Little Instruction Book #356

	"Be there when people need you."

Joel Becker
Principal Software Developer
Oracle
E-mail: joel.becker@oracle.com
Phone: (650) 506-8127

```

## Junio C Hamano, 2008-01-04 03:32

Subject: Re: wherefore art thou, git-applymbox? - Adding non-self signoffs
Message-ID: <7vr6gymfjy.fsf@gitster.siamese.dyndns.org>
URL: https://gitlist.dev/e/7vr6gymfjy.fsf%40gitster.siamese.dyndns.org
In-Reply-To: <20080104015028.GC3989@mail.oracle.com>

```
Joel Becker <Joel.Becker@oracle.com> writes:

> We used to do this very easily with git-applymbox:
> (from http://oss.oracle.com/osswiki/GitRepositories/ForMaintainers)
>
> $ echo "Julie Hacker <julieh@my.site.com>" > /tmp/signoff
> $ git branch to-push master
> $ git checkout to-push
> $ git format-patch -C -k --stdout master..workingbranch > /tmp/changes-to-push
> $ git applymbox -k /tmp/changes-to-push /tmp/signoff
> $ git push ssh://my.server.com/path/project.git to-push:master
>
> 	The <signoff> file argument to applymbox allowed us to add the
> approvers signoff to an entire series in one go.  git-am does not have
> this feature.  As far as I can tell, I have to edit each patch by hand
> to add the new signoff.  Is there a better way?

Heh, applymbox's removal is an ancient news.  May 20 2007?

My reading of an old copy of git-applypatch seems to suggest
that the above example you quoted is probably wrong anyway;
shouldn't the first one be like this instead?

 $ echo "Signed-off-by: Julie Hacker <julieh@my.site.com>" >/tmp/signoff

It was actually a bug that applymbox allowed only a single
e-mail address to be added without doing any sanity checking of
the address with the author nor committer information.

If it were designed to allow adding sign-offs from other people,
the command would have allowed more than one lines in the file.
It did not.  It was not designed for that purpose.

It was designed to allow one's own sign-off; it should have
verified that it matched the committer identity.  It did not.
That was not strictly a bug for people who used the mechanism to
sign their own patches anyway, but not checking meant a misuse
like yours went unnoticed.  Not quite ideal.

I guess you can run filter-branch to munge the commit messages
after you run the

	git format-patch ... | git am

pipeline to build the to-push branch.

I do not mind a patch to enhance "git am", but not before 1.5.4.
Most likely the change would take a form of an extra parameter
that names a script (or command) that gets the commit log
message as its argument and edits it in any way it wants (in
your case you would add the S-o-b: lines in that script).

```
