Subject: Re: git-svn: commit author x commit committer issue

From: Richard MUSIL <[email-masked]>
Date: Thu, 16 Aug 2007 14:13:19 +0200

Eric Wong wrote:
> Richard MUSIL <[email-masked]> wrote:
>> Normally, when patch is applied, git distinguishes commit author and
>> commit committer (relying on info from patch).
>> However, after the patches are committed to svn repository using:
>> git-svn dcommit
>> author and committer data are set to same values (or at least time and
>> date, I cannot verify it for names).
>> I wonder if there is any reason for this behavior, because I would
>> definitely like to keep original commit info (which came from patch) in
>> my git repository.
> 
> I try to keep commits made to SVN using git-svn as much like commits
> made using other SVN clients as much as possible.
> 
> Two people using git-svn (in its recommended fashion and maintaining
> linear history) can have identical SHA1s in their repository even if
> those two repositories had never seen each other before.  Consistency
> is good.

Ok, if I understand well, you are saying, that if someone commits with
distinguished author/committer and someone does not, they end up with
different SHA1s because those parts affect the calculation. I agree this
could be a breaking point.

> I also want to avoid creating extra junk on the SVN repository which I
> don't personally consider very important.  SVK does stuff like that with
> merges, and only SVK understands the metadata it uses.  I prefer
> transparency.

I made some suggestions in this thread about using revision
(unversioned) property of SVN fot git "metadata". AFAIK using rev. props
is completely transparent to other SVN clients (in this case those not
being git-svn), so they could easily ignore them.

It could be optional on git config property for commit and autodetected
for clone/pull.

The scenario I could easily imagine (though it is not something I am
currently using) is having dev teams using git internally (because its
much easier for tracking local development) and having SVN repo as a
"central hub". In such environment, there will be probably one person in
each team (dev. lead) collecting commits from others and once things are
set, he will commit all changes to svn. In that particular case, he does
not have to worry about different sha1s, because they use only one SVN
(as it was meant to be used). But he could be sad about losing all
authors info about the people commits. And my personal believe is, this
is how git-svn may enter svn world on big projects.

But you are right, it is up to you to decide. It was just an idea ;-).

Richard