[LLVMdev] git-svn authorship

Robinson, Paul Paul_Robinson at playstation.sony.com
Sun Jan 18 16:42:07 PST 2015


I did some experimenting with this; I'm able to modify the log as recorded
in the git-svn clone, but not in the SVN repo that it was cloned from.

I'm not sure I see the value in a git-svn log that diverges from the SVN log.
--paulr

> -----Original Message-----
> From: llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-bounces at cs.uiuc.edu] On
> Behalf Of Mehdi Amini
> Sent: Friday, January 16, 2015 6:12 PM
> To: Ronan Keryell
> Cc: Erik de Castro Lopo (Google+); llvmdev at cs.uiuc.edu List
> Subject: Re: [LLVMdev] git-svn authorship
> 
> 
> > On Jan 16, 2015, at 5:35 PM, Ronan Keryell <ronan at keryell.fr> wrote:
> >
> >>>>>> On Fri, 16 Jan 2015 15:19:57 -0800, Greg Fitzgerald
> <garious at gmail.com> said:
> >
> >    Erik> I am surprised noone has mentioned the one of the biggest
> >    Erik> advantages of Git which is proper author attribution for
> >    Erik> non-core and drive-by patch contributors.
> >
> >    Greg> From what I can make of the git-svn docs, that LLVM committers
> >    Greg> be adding a "From: <email>" field to commit messages instead
> >    Greg> of "Patch by <name>".  If the original author is already in
> >    Greg> the git commit, you can generate the "From: <email>" field in
> >    Greg> the SVN commit message with:
> >
> >    Greg>     git svn --add-author-from --use-log-author dcommit
> >
> >
> >    Greg> From the git-svn docs:
> >
> >    Greg> --use-log-author
> >
> >    Greg> When retrieving svn commits into Git (as part of fetch,
> >    Greg> rebase, or dcommit operations), look for the first From: or
> >    Greg> Signed-off-by: line in the log message and use that as the
> >    Greg> author string.
> >
> >    Greg> --add-author-from
> >
> >    Greg> When committing to svn from Git (as part of commit-diff,
> >    Greg> set-tree or dcommit operations), if the existing log message
> >    Greg> doesn’t already have a From: or Signed-off-by: line, append a
> >    Greg> From:line based on the Git commit’s author string. If you use
> >    Greg> this, then --use-log-author will retrieve a valid author
> >    Greg> string for all commits.
> >
> >    Greg> https://www.kernel.org/pub/software/scm/git/docs/git-svn.html
> >
> > That is interesting. To be tested!
> >
> > But as I said in my previous message, I think that would require the
> > committer has some specific access right on the svn server to override
> > the name that is normally got from the authentication protocol. This is
> > to be double-checked.
> 
> When you do "git svn dcommit --add-author-from” the git commit is locally
> changed with the svn commiter as author of the git commit author, and the
> original author is added in the commit *description*. This is oblivious to
> svn.
> Later when you import this SVN history into git, the --use-log-author
> tells git to reconstruct the commit author not from the svn author but by
> looking into the svn commit description, searching for the “From:” line
> that was added.
> 
> So, no need to have any specific access right :)
> 
> For example, you can test it yourself now. I just committed r226360 this
> way, and locally before git svn commit I had:
> 
> commit 5a5c3976d8a856ba2294ad87c30ef91814092662
> Author: Fiona Glaser <fglaser at apple.com>
> Date:   Thu Jan 15 18:05:56 2015
> 
> and it was magically turned into:
> 
> commit 45a0cf6f6304320a48b783c5ffbca2a404e5532f
> Author: mehdi_amini <mehdi_amini at 91177308-0d34-0410-b5e6-96231b3b80d8>
> Date:   Fri Jan 16 17:35:56 2015
> 
> Locally you can create a git at the previous svn revision:
> 
> $ git svn clone  http://llvm.org/svn/llvm-project/llvm/trunk -r 226358
> $ cd trunk
> 
> And updating to get my commit:
> 
> $ git svn rebase --use-log-author
> $ git show HEAD
> commit b3723c0d5fbb93d42d410bf2bff395ce00dc8eb2
> Author: Fiona Glaser <fglaser at apple.com>
> Date:   Fri Jan 16 17:35:56 2015
> 
> 
> 
> 
> > But perhaps putting this kind of burden in the
> > git-svn syntax on the svn committers would motivate them to move to
> > git... :-)
> 
> 
> 
> git config svn.addAuthorFrom true
> git config svn.useLogAuthor true
> 
> Enjoy.
> 
> Mehdi
> 
> PS: now if it was used to sync the github repo it would be perfect, who’s
> in charge?
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev




More information about the llvm-dev mailing list