public inbox for b.a.t.m.a.n@lists.open-mesh.org
 help / color / mirror / Atom feed
From: Sven Eckelmann <sven.eckelmann@gmx.de>
To: Marek Lindner <lindner_marek@yahoo.de>
Cc: b.a.t.m.a.n@lists.open-mesh.org
Subject: Re: [B.A.T.M.A.N.] [PATCH 00/26] staging:batman-adv
Date: Fri, 7 May 2010 12:48:16 +0200	[thread overview]
Message-ID: <201005071248.56290.sven.eckelmann@gmx.de> (raw)
In-Reply-To: <201005071114.30601.lindner_marek@yahoo.de>

[-- Attachment #1: Type: Text/Plain, Size: 6499 bytes --]

Marek Lindner wrote:
> On Friday 07 May 2010 05:44:06 Sven Eckelmann wrote:
> > Am I the only one who thinks that Marek takes credits for too many
> > patches? Yes, we all have to praise him for his work, but just noticed
> > those minor
> > 
> > glitches:
> >  * fix whitespace style issues
> >  
> >    - work from Luis de Bethencourt <luisbg@ubuntu.com>
> >  
> >  * Fix whitespace problems criticized by
> >  
> >    Reduce max characters on a line to 80
> >    - work from me... somewhat
> > 
> > Not that I really want credit for those patches (maybe I should have
> > submitted them under a different name.....), but that didn't happen in
> > the past and now more than one time in a row. What happened here?
> > git-am's fault?
> 
> It seems there are a couple of patches wrong but I don't know how this
> initial credit list gets created. I had the impression the first
> "Signed-off-by" is the owner of a patch ?

Ok, there seems to be a problem misunderstanding in what our "infrastructure" 
does. Let's see what svn does:
 * svn does not have a field to store the complex information
   "Full Name <email@address>" for committer and author
 * svn stores the username of the committer

So we get a commit in svn it must get somehow to our repository. We have a 
"translation and synchronisation" repository hidden in a private directory. We 
use git-svn there to fetch our data from svn and then push it to our public 
git repository into the master branch.

If you look at a specific commit using something like
`git cat-file -p v0.2-59-g23a0a47` then you will see the committer and author 
information which is part of the metadata of a git commit and not really part 
of the actual commit message. An example would be:

tree 359ee2bfbc9ad702b9f6ef1649833793090244fe
parent 0024f65f2c6cc1765bc7034cf82b9dc2b7626630
author Daniel Seither <post@tiwoc.de> 1266335052 +0000
committer Marek Lindner <lindner_marek@yahoo.de> 1266335052 +0000
....

author is obviously the author of a patch/change. This is something which 
should not be changed by the person who applies the patch. Thereof we have 
also the committer part which shows who has applied the patch. The committer 
information is changed in many situations. A common one would be that someone 
cherry picks a patch from master to maint. In other words: we have enough 
information to thank the person for their contribution and to blame the person 
who applied in on the wrong branch. :)

So where do we get that information svn only stores the committer username? 
git-svn uses different information to gather such data. The first one is the a 
translation table statically defined by us. We use it to translate the svn 
committer to a something like "Marek Lindner <lindner_marek@yahoo.de>" in the 
git committer field. We still have the problem that the author isn't stored 
inside the svn commit... normally.

We defined that all commits in trunk/batman-adv-kernelland must have a valid 
'Signed-off-by: ' line and must be submitted by an eligible committer (Simon 
or Marek). git-svn can now extract the first Signed-off-by-line to get the 
actual author information from a (special) svn commit..... Problem solved for 
svn to git translation.

So what does git-commit do here? Nothing real exciting. When a new commit is 
created (and not otherwise specified) then both author and committer fields 
get the same information fetched from ~/.gitconfig or an other configuration 
file. When we change a commit then only the committer field is updated.

So we have nothing like signed-off-by parsing in git-commit. There are some 
"tricks" described in the git-commit-tree manpage to supply such information 
directly - but that is nothing you really want to do for each patch.

The way patches get applied are using git-am. This program use(s|d?) 
internally git-mailinfo to extract important information from the patch. Lets 
use
"[PATCH 21/26] staging:batman-adv: kfree_skb() in interface_tx() in error  
case" for further explanations. We would normally just save that as file or in 
a mbox. Now just use `git am FILENAME` and everything should be parsed and 
committed. If not than you can try `git am -3 FILENAME` to try a 3-way merge - 
if it still not work than maybe it is the best idea to inform the patch author 
that he should resubmit the patch.

So what information is now extract? Lets call git-mailinfo with patch21.mbox 
(the patch mentioned above saved as mbox file).

git mailinfo msg patch < patch21.mbox > info

We have 3 new files. "msg" is the commit message, "patch" is a patch which can 
be applied using a normal patch program or git-apply and "info" - which is the 
extracted info we are interested in.

Author: Simon Wunderlich
Email: siwu@hrz.tu-chemnitz.de
Subject: staging:batman-adv: kfree_skb() in interface_tx() in error case
Date: Thu, 6 May 2010 22:18:47 +0200

mailinfo has now the possibility to extract the From: line in the mail header 
- this is the usual way. But Andrew submitted the patch instead of Simon. 
Thereof there is a second way to extract that information - the first 'From: ' 
line in the mail body. git-format-patch added this line because Andrew was not 
the author of the patch and git-mailinfo will strip this line again from the 
commit message.

We can see that the Signed-off-by line is not used at all in git-am or git-
commit and that we must tools like git-am to get the correct author field in a 
commit when applying a patch. If you apply your patch with another tool than 
you must use git-commit differently (not explained here because I don't want 
to encourage people to it). So even if the Signed-off-by thing is more a 
social thing (read linux-2.6/Documentation/SubmittingPatches), it is still 
used in different scripts to find out who is responsible for a specific part 
of the kernel or similar things. We only use it here when getting patches from 
svn to translate them into git commits.

This "credit" list you saw here is more or less the thing you get when running 
git-shortlog. It just gathers the commits of all authors and shows a summary 
commit list for each author. "author" means here the author mentioned in the 
author field of the git commit. So it is not Andrews fault, but the committer 
has done something different than the above mentioned steps to get the commit 
applied in maint.

Best regards,
	Sven

[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

  reply	other threads:[~2010-05-07 10:48 UTC|newest]

Thread overview: 49+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-05-06 20:18 [B.A.T.M.A.N.] [PATCH 00/26] staging:batman-adv Andrew Lunn
2010-05-06 20:18 ` [B.A.T.M.A.N.] [PATCH 01/26] staging:batman-adv: only modify hna-table on active module Andrew Lunn
2010-05-06 20:18 ` [B.A.T.M.A.N.] [PATCH 02/26] staging:batman-adv: Clone shared bat packets before modifying them Andrew Lunn
2010-05-06 20:18 ` [B.A.T.M.A.N.] [PATCH 03/26] staging:batman-adv: fix aggregation timing bug Andrew Lunn
2010-05-06 20:18 ` [B.A.T.M.A.N.] [PATCH 04/26] staging:batman-adv: Fix aggregation direct-link bug Andrew Lunn
2010-05-06 20:18 ` [B.A.T.M.A.N.] [PATCH 05/26] staging:batman-adv: Update copyright years Andrew Lunn
2010-05-06 20:18 ` [B.A.T.M.A.N.] [PATCH 06/26] staging:batman-adv: remove the beta from main.h for release Andrew Lunn
2010-05-06 20:18 ` [B.A.T.M.A.N.] [PATCH 07/26] staging:batman-adv: Remove dead max addr and obsolete VIS_FORMAT strings Andrew Lunn
2010-05-06 20:18 ` [B.A.T.M.A.N.] [PATCH 08/26] staging:batman-adv: Add 0.2.1 changes to the CHANGELOG Andrew Lunn
2010-05-06 20:18 ` [B.A.T.M.A.N.] [PATCH 09/26] staging:batman-adv: Update README about vis raw output Andrew Lunn
2010-05-06 20:18 ` [B.A.T.M.A.N.] [PATCH 10/26] staging:batman-adv: Changing version to 0.2.2-beta Andrew Lunn
2010-05-06 20:18 ` [B.A.T.M.A.N.] [PATCH 11/26] staging:batman-adv: cleanup: change test for end of array Andrew Lunn
2010-05-06 20:18 ` [B.A.T.M.A.N.] [PATCH 12/26] staging:batman-adv: fix whitespace style issues Andrew Lunn
2010-05-06 20:18 ` [B.A.T.M.A.N.] [PATCH 13/26] staging:batman-adv: convert multiple /proc files to use sysfs Andrew Lunn
2010-05-06 20:41   ` Greg KH
2010-05-12 17:19     ` Marek Lindner
2010-05-12 17:38       ` Greg KH
2010-05-12 18:55         ` Sven Eckelmann
2010-05-12 19:17           ` Greg KH
2010-05-12 23:51             ` Marek Lindner
2010-05-14 16:10               ` Greg KH
2010-05-13 11:45           ` Andrew Lunn
2010-05-16 13:18             ` Simon Wunderlich
2010-05-12 23:25         ` Marek Lindner
2010-05-12 19:43       ` Andrew Lunn
2010-05-12 19:47         ` Sven Eckelmann
2010-05-06 20:18 ` [B.A.T.M.A.N.] [PATCH 14/26] staging:batman-adv: convert more files from /proc to /sys Andrew Lunn
2010-05-06 20:18 ` [B.A.T.M.A.N.] [PATCH 15/26] staging:batman-adv: move originator interval setting " Andrew Lunn
2010-05-06 20:18 ` [B.A.T.M.A.N.] [PATCH 16/26] staging:batman-adv: remove redundant pointer to originator interface Andrew Lunn
2010-05-06 20:18 ` [B.A.T.M.A.N.] [PATCH 17/26] staging:batman-adv: move /proc interface handling to /sys Andrew Lunn
2010-05-06 20:18 ` [B.A.T.M.A.N.] [PATCH 18/26] staging:batman-adv: fix whitespace style issues Andrew Lunn
2010-05-06 20:18 ` [B.A.T.M.A.N.] [PATCH 19/26] staging:batman-adv: Reorganize sequence number handling Andrew Lunn
2010-05-06 20:18 ` [B.A.T.M.A.N.] [PATCH 20/26] staging:batman-adv: Limit queue lengths for batman and broadcast packets Andrew Lunn
2010-05-06 20:18 ` [B.A.T.M.A.N.] [PATCH 21/26] staging:batman-adv: kfree_skb() in interface_tx() in error case Andrew Lunn
2010-05-06 20:18 ` [B.A.T.M.A.N.] [PATCH 22/26] staging:batman-adv: Update pointer to ethhdr after skb_copy Andrew Lunn
2010-05-06 20:18 ` [B.A.T.M.A.N.] [PATCH 23/26] staging:batman-adv: Update TODO file to reflect current state Andrew Lunn
2010-05-06 20:18 ` [B.A.T.M.A.N.] [PATCH 24/26] staging:batman-adv: Fix whitespace problems criticized by checkpatch.pl Andrew Lunn
2010-05-06 20:18 ` [B.A.T.M.A.N.] [PATCH 25/26] staging:batman-adv: Reduce max characters on a line to 80 Andrew Lunn
2010-05-06 20:18 ` [B.A.T.M.A.N.] [PATCH 26/26] staging:batman-adv: updating README Andrew Lunn
2010-05-06 21:44 ` [B.A.T.M.A.N.] [PATCH 00/26] staging:batman-adv Sven Eckelmann
2010-05-07  3:14   ` Marek Lindner
2010-05-07 10:48     ` Sven Eckelmann [this message]
2010-05-07  5:25   ` Andrew Lunn
  -- strict thread matches above, loose matches on Subject: below --
2010-05-22 14:16 [B.A.T.M.A.N.] [PATCH 00/26] Staging: batman-adv Sven Eckelmann
2010-05-22 14:35 ` Greg KH
2010-05-22 15:08   ` Sven Eckelmann
2010-05-22 15:27     ` Greg KH
2010-05-22 15:32       ` Sven Eckelmann
2010-05-24 18:43         ` Greg KH

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=201005071248.56290.sven.eckelmann@gmx.de \
    --to=sven.eckelmann@gmx.de \
    --cc=b.a.t.m.a.n@lists.open-mesh.org \
    --cc=lindner_marek@yahoo.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox