SVN Users and Git Authors
Both Subversion and Git keep authors in commits, but those authors entities differ in those two systems.
In SVN, the author is being stored as an unversioned revision property, namely svn:author
. Every time a Subversion user makes a commit, SVN creates a new revision and sets this revision svn:author
property to be equal to that exact user's name, e.g. johndoe in this case:
------------------------------------------------------------------------
r163 | johndoe | 2017-06-07 20:22:15 +0500 (Wed, 07 Jun 2017) | 1 line
Changed paths:
A /project
A /project/branches
A /project/tags
A /project/trunk
initial layout for the project
------------------------------------------------------------------------
Git, in turn, also stores author's name along with every commit, but this name differs from that in SVN: whereas SVN stores actual username, Git stores a name that's set by user.name
Git directive, e.g., by global setting:
$ git config --global user.name "John Doe"
and in addition to the user.name
Git relies upon user.email
that can be set as:
$ git config --global user.email johndoe@example.com
Actually, both user.name
and user.email
are parts of Git user identity, i.e. a Git user is being mentioned as
Git User <gituser@domain.com>
everywhere; e.g. the user John Doe we've set above will be referred as:
John Doe <johndoe@example.com>
and this exact line will appear as author name when the user makes some commit in Git. Still, it worth to mention for completeness sake that Git stores not only author but also a committer name along with every commit and they may differ in some cases:
$ git cat-file commit HEAD
tree 905df23db37b33320483fc6676bfc684078ed248
parent 4a0cf06baa9aefaa20a13820265ef401d7b1c2b6
author John Doe <johndoe@example.com> 1496849115 +0000
committer Jane Doe <janedoe@example.com> 1496849115 +0000
Pro Git book describes the difference between those names as follows: the author is the person who originally wrote the work, whereas the committer is the person who last applied the work. So, if you send in a patch to a project and one of the core members applies the patch, both of you get credit – you as the author, and the core member as the committer.
Most often though, author and committer names are the same since most of the programmers commit their work by themselves. Also, SubGit works with Git author name, so committer name doesn't mean much for the SVN-to-Git translation process.