Git/v.Subversion: Difference between revisions

adds link to Drupal project archive
No edit summary
 
(2 intermediate revisions by the same user not shown)
Line 7: Line 7:
== Advantages ==
== Advantages ==
What are the advantages of Git over SVN (especially in the area of merging)?
What are the advantages of Git over SVN (especially in the area of merging)?
Here is a short list.  A fuller [https://git.wiki.kernel.org/index.php/GitSvnComparison Git v. Subversion Comparison is at kernel.org]
# Git isn't (just) 'smarter' meaning the devs figured out better algorithms.  It's completely different.  It can be said that SVN is multi-user only because they took an approach that works for a single user, and added features to "multiply" it.  Sort of like the Windows operating system.  On Windows, you have to log out to have another user log in.  Git is multi-user the way that Linux is multi-user: it's built that way from the ground up.
# Git isn't (just) 'smarter' meaning the devs figured out better algorithms.  It's completely different.  It can be said that SVN is multi-user only because they took an approach that works for a single user, and added features to "multiply" it.  Sort of like the Windows operating system.  On Windows, you have to log out to have another user log in.  Git is multi-user the way that Linux is multi-user: it's built that way from the ground up.
# branch is virtual in svn v. first class object in git
# branch is virtual in svn v. first class object in git
Line 41: Line 42:
But the real migration is harder than that.
But the real migration is harder than that.
* user migration/mapping <code>svn log --xml | grep author | sort -u | perl -pe 's/.*>(.*?)<.*/$1 = /' > users.txt</code>
* user migration/mapping <code>svn log --xml | grep author | sort -u | perl -pe 's/.*>(.*?)<.*/$1 = /' > users.txt</code>
* <code>git svn clone --stdlayout --no-metadata --authors-file=users.txt file:///path-to/svn-repo tmp-git-repo
* <code>git svn clone --stdlayout --no-metadata --authors-file=users.txt file:///path-to/svn-repo tmp-git-repo</code>
* git checkout -b local_branch remote_branch
* <code>git checkout -b local_branch remote_branch</code>
* migrate tags
* migrate tags




== Overview of the trial project ==
== Overview of the trial project ==
One potential trial would be to setup GitLab Development Kit, either on bare metal, or using vagrant https://gitlab.com/gitlab-org/gitlab-development-kit


== Define the trial project along with milestones ==
== Define the trial project along with milestones ==