[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