<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>
<channel>
	<title>Comments on: 3 Reasons to Switch to Git from Subversion</title>
	<atom:link href="http://markmcb.com/2008/10/18/3-reasons-to-switch-to-git-from-subversion/feed/" rel="self" type="application/rss+xml" />
	<link>http://markmcb.com/2008/10/18/3-reasons-to-switch-to-git-from-subversion/</link>
	<description>a username with its own domain</description>
	<pubDate>Sat, 31 Jul 2010 01:50:01 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.2</generator>
		<item>
		<title>By: Gabriel Lima</title>
		<link>http://markmcb.com/2008/10/18/3-reasons-to-switch-to-git-from-subversion/#comment-235</link>
		<dc:creator>Gabriel Lima</dc:creator>
		<pubDate>Wed, 09 Jun 2010 06:21:53 +0000</pubDate>
		<guid isPermaLink="false">http://markmcb.com/?p=178#comment-235</guid>
		<description>So nice post! I agree. IMHO, Git is better than SVN. If you could talk about the merge function that git has, and that is SO MUCH BETTER than SVN, than you'd found another reason to change from SVN to GIT. Really nice post, and congratulations to have patience to find examples that we really live on the work days.</description>
		<content:encoded><![CDATA[<p>So nice post! I agree. IMHO, Git is better than SVN. If you could talk about the merge function that git has, and that is SO MUCH BETTER than SVN, than you&#8217;d found another reason to change from SVN to GIT. Really nice post, and congratulations to have patience to find examples that we really live on the work days.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mick</title>
		<link>http://markmcb.com/2008/10/18/3-reasons-to-switch-to-git-from-subversion/#comment-226</link>
		<dc:creator>Mick</dc:creator>
		<pubDate>Wed, 03 Mar 2010 16:22:04 +0000</pubDate>
		<guid isPermaLink="false">http://markmcb.com/?p=178#comment-226</guid>
		<description>Thanks for the article, I have been using SVN for the last 5 years and I simply love it. Based on above comments, it seems Git offers some good DVCS based features which probably will be included in SVN too by v2.0.

I would like to know, How does Git handles authentication? Is windows domain based authentication supported?

I have one doubt for Git i.e. if every dev. copies the whole repository locally, how come Git is faster then SVN? What about disk usage for large projects?

Personally I think, It would be hard for Windows based shop to make a switch to Git as of today due to lack of integration with 3rd party tools like Trac, GUI clients like Tortoise SVN, Subclipse etc (But anyways like you said that's beyond the scope of your article).</description>
		<content:encoded><![CDATA[<p>Thanks for the article, I have been using SVN for the last 5 years and I simply love it. Based on above comments, it seems Git offers some good DVCS based features which probably will be included in SVN too by v2.0.</p>
<p>I would like to know, How does Git handles authentication? Is windows domain based authentication supported?</p>
<p>I have one doubt for Git i.e. if every dev. copies the whole repository locally, how come Git is faster then SVN? What about disk usage for large projects?</p>
<p>Personally I think, It would be hard for Windows based shop to make a switch to Git as of today due to lack of integration with 3rd party tools like Trac, GUI clients like Tortoise SVN, Subclipse etc (But anyways like you said that&#8217;s beyond the scope of your article).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Alpheus</title>
		<link>http://markmcb.com/2008/10/18/3-reasons-to-switch-to-git-from-subversion/#comment-216</link>
		<dc:creator>Alpheus</dc:creator>
		<pubDate>Wed, 14 Oct 2009 22:44:51 +0000</pubDate>
		<guid isPermaLink="false">http://markmcb.com/?p=178#comment-216</guid>
		<description>I've been working as a sole developer for a backend website for about a year now.  Technically, I'm *not* looking for a VCS for that system anymore, because my employer decided to go with SVN, and also because we're moving to an open-source replacement for the backend.  But, from what I've been reading of the comments, I have a few observations to make:

First, for personal projects (and I have several), having a Version Control System would be better than periodically re-naming working files as something like "myproject-III.py", which is my current practice.

Second, even as a sole developer for a backend website, there were times in which I was in the middle of some sort of substantial change, and my employer would say "There's a bug somewhere here.  Could you fix it?"  Well, yes and no:  I'm sure it will be easy to fix (and it often was), but now I'll have to update the "Live" version with that bugfix...except that "Testing" is in the middle of this big change, and is not at all ready to deploy...furthermore, I have to make sure that the change I just made is applied to both "Testing" and "Live".  I tried to add a third version for this, called "Debugging", but that introduced even more complexities!

Third, it would seem that having a centralized VCS would be overkill for this, and for my personal use.  The reason my employer is using SVN is because he has a couple of developers on the main website as well.

Overall, I will likely be using Git for personal use!  And it would seem that I'm going to wish that my employer would use Git as well.</description>
		<content:encoded><![CDATA[<p>I&#8217;ve been working as a sole developer for a backend website for about a year now.  Technically, I&#8217;m *not* looking for a VCS for that system anymore, because my employer decided to go with SVN, and also because we&#8217;re moving to an open-source replacement for the backend.  But, from what I&#8217;ve been reading of the comments, I have a few observations to make:</p>
<p>First, for personal projects (and I have several), having a Version Control System would be better than periodically re-naming working files as something like &#8220;myproject-III.py&#8221;, which is my current practice.</p>
<p>Second, even as a sole developer for a backend website, there were times in which I was in the middle of some sort of substantial change, and my employer would say &#8220;There&#8217;s a bug somewhere here.  Could you fix it?&#8221;  Well, yes and no:  I&#8217;m sure it will be easy to fix (and it often was), but now I&#8217;ll have to update the &#8220;Live&#8221; version with that bugfix&#8230;except that &#8220;Testing&#8221; is in the middle of this big change, and is not at all ready to deploy&#8230;furthermore, I have to make sure that the change I just made is applied to both &#8220;Testing&#8221; and &#8220;Live&#8221;.  I tried to add a third version for this, called &#8220;Debugging&#8221;, but that introduced even more complexities!</p>
<p>Third, it would seem that having a centralized VCS would be overkill for this, and for my personal use.  The reason my employer is using SVN is because he has a couple of developers on the main website as well.</p>
<p>Overall, I will likely be using Git for personal use!  And it would seem that I&#8217;m going to wish that my employer would use Git as well.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tony</title>
		<link>http://markmcb.com/2008/10/18/3-reasons-to-switch-to-git-from-subversion/#comment-199</link>
		<dc:creator>Tony</dc:creator>
		<pubDate>Tue, 26 May 2009 17:59:25 +0000</pubDate>
		<guid isPermaLink="false">http://markmcb.com/?p=178#comment-199</guid>
		<description>for some reason (bad input filtering) it wouldnt let me post my whole comment so here is the rest of above.......

however, git hooks are my single most favorite thing about git; examples:

1) pre-commit hook on developer repos to check for syntax errors in *.php files. awesome.
2) commit-msg hook on developer repos to force conformance of commit messages to a defined spec. 
3) post-update hook  on developer repos to link updates/squashes to a custom ticketing system and close the ticket if we like. 
4) we use a series of hooks to let us sync/push changes to staging_master to ALL DISTRIBUTED WEBSERVERS INSTANTLY.  we also use a callback system so ensure that all servers get the update, then a time is pushed, and all servers update AT THE SAME SECOND.  before this we would "svn update" on each server manually; we use our SCM as a means to "launch" changes.
5) we do the same thing as #4 but with the production copy to make changes sitting on staging sync with production, once staging has been confirmed to be working as expected.
6) not a hook, but each developer gets a full working tree and never interferes with another developer.  they can go to dev_name.dev.example.com, to test their personal copy, stage.dev.example.com, to test the staged (master) development copy (merged work from various devs), stage.example.com, to see the staged production copy and so on.
7) we use a "hub" copy on each production server that acts as a buffer to the real, checked out copy that people see when they access the website (git says to never push/pull to a repo that has a working copy).  this is pretty cool see #8.
8) post-commit hook to guarantee that committed (key word COMMITTED) changes made to ANY live server get immediately pushed to the master copy on the dev server, AND instantly (relatively) reflected to ALL OTHER PRODUCTION SERVERS.  sounds a little dangerous, heh and maybe it is, but it keeps everything in sync and allows for last second, sh!t is down dirty little changes.  should never happen, and it hasnt yet, but still cool.

all this lets us, the devs, work as a group but not affect/break/slow/confuse each others progress on whatever.  also, another cool thing is we track each others repos, so if one dev has problems/bugs/whatever, ANY of us can diff his branch against ours if we want, or checkout their branch(es) and help them solve the problem from our own machine, WITHOUT EVER TOUCHING MASTER.

we can develop, test, and launch without ever leaving the development machine.

as others have said, git's power is the fact that it's less of an SCM itself, and more a tool for letting YOU define what an SCM means to the workflow and structure of your company.</description>
		<content:encoded><![CDATA[<p>for some reason (bad input filtering) it wouldnt let me post my whole comment so here is the rest of above&#8230;&#8230;.</p>
<p>however, git hooks are my single most favorite thing about git; examples:</p>
<p>1) pre-commit hook on developer repos to check for syntax errors in *.php files. awesome.<br />
2) commit-msg hook on developer repos to force conformance of commit messages to a defined spec.<br />
3) post-update hook  on developer repos to link updates/squashes to a custom ticketing system and close the ticket if we like.<br />
4) we use a series of hooks to let us sync/push changes to staging_master to ALL DISTRIBUTED WEBSERVERS INSTANTLY.  we also use a callback system so ensure that all servers get the update, then a time is pushed, and all servers update AT THE SAME SECOND.  before this we would &#8220;svn update&#8221; on each server manually; we use our SCM as a means to &#8220;launch&#8221; changes.<br />
5) we do the same thing as #4 but with the production copy to make changes sitting on staging sync with production, once staging has been confirmed to be working as expected.<br />
6) not a hook, but each developer gets a full working tree and never interferes with another developer.  they can go to dev_name.dev.example.com, to test their personal copy, stage.dev.example.com, to test the staged (master) development copy (merged work from various devs), stage.example.com, to see the staged production copy and so on.<br />
7) we use a &#8220;hub&#8221; copy on each production server that acts as a buffer to the real, checked out copy that people see when they access the website (git says to never push/pull to a repo that has a working copy).  this is pretty cool see #8.<br />
 <img src='http://markmcb.com/wp-includes/images/smilies/icon_cool.gif' alt='8)' class='wp-smiley' /> post-commit hook to guarantee that committed (key word COMMITTED) changes made to ANY live server get immediately pushed to the master copy on the dev server, AND instantly (relatively) reflected to ALL OTHER PRODUCTION SERVERS.  sounds a little dangerous, heh and maybe it is, but it keeps everything in sync and allows for last second, sh!t is down dirty little changes.  should never happen, and it hasnt yet, but still cool.</p>
<p>all this lets us, the devs, work as a group but not affect/break/slow/confuse each others progress on whatever.  also, another cool thing is we track each others repos, so if one dev has problems/bugs/whatever, ANY of us can diff his branch against ours if we want, or checkout their branch(es) and help them solve the problem from our own machine, WITHOUT EVER TOUCHING MASTER.</p>
<p>we can develop, test, and launch without ever leaving the development machine.</p>
<p>as others have said, git&#8217;s power is the fact that it&#8217;s less of an SCM itself, and more a tool for letting YOU define what an SCM means to the workflow and structure of your company.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tony</title>
		<link>http://markmcb.com/2008/10/18/3-reasons-to-switch-to-git-from-subversion/#comment-198</link>
		<dc:creator>Tony</dc:creator>
		<pubDate>Tue, 26 May 2009 17:56:31 +0000</pubDate>
		<guid isPermaLink="false">http://markmcb.com/?p=178#comment-198</guid>
		<description>git rocks.

one thing that i did not see surface was ANY mention of git hooks.  this, along with branching, merging, and simple backups, are the killer features in git for us.  git can use any executable file as a hook, be Python/PHP/Ruby/C++/Bash/whatever.

my team of 5 develops for a small company whose primary income is a member driven website, and the primary language is PHP.  before, with svn, we were all continuously stepping on each other by editing various layers of the software stack.  we did not deal with branching/merging in svn as its too cumbersome, period, and we all work from a CLI/SSH interface to distributed webservers.  i remember several instances where layers below me or another dev were broken by a different developer, and i/he wasted 20+ minutes trying to figure out what was wrong with my code.  this is where local topic branching is key; as i can always be fairly certain that the code in trunk/master/head/whatever is clean and not stupidly broken from the changes others are making right now on their own feature x/y/z.</description>
		<content:encoded><![CDATA[<p>git rocks.</p>
<p>one thing that i did not see surface was ANY mention of git hooks.  this, along with branching, merging, and simple backups, are the killer features in git for us.  git can use any executable file as a hook, be Python/PHP/Ruby/C++/Bash/whatever.</p>
<p>my team of 5 develops for a small company whose primary income is a member driven website, and the primary language is PHP.  before, with svn, we were all continuously stepping on each other by editing various layers of the software stack.  we did not deal with branching/merging in svn as its too cumbersome, period, and we all work from a CLI/SSH interface to distributed webservers.  i remember several instances where layers below me or another dev were broken by a different developer, and i/he wasted 20+ minutes trying to figure out what was wrong with my code.  this is where local topic branching is key; as i can always be fairly certain that the code in trunk/master/head/whatever is clean and not stupidly broken from the changes others are making right now on their own feature x/y/z.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Robert Beal</title>
		<link>http://markmcb.com/2008/10/18/3-reasons-to-switch-to-git-from-subversion/#comment-186</link>
		<dc:creator>Robert Beal</dc:creator>
		<pubDate>Sun, 15 Mar 2009 14:12:30 +0000</pubDate>
		<guid isPermaLink="false">http://markmcb.com/?p=178#comment-186</guid>
		<description>Good article, it's certainly created quite a bit of debate.

We use Subversion at work, although have been toying with the idea of using Git. As mentioned though I think I prefer quick and small commits to the server where the data is more secure. We work in a very Agile setup, so if anything does get broken, it gets fixed straight away.

Also tools such as TortoiseSvn are much more mature than TortoiseGit. And VisualSVN, there is no VisualGit equivalent. 

However I do like Git. I use it at home now, and will continue to do so, and possibly one day will apply it at work. Switching source control system is a lot of pain though, and at the moment Git doesn't offer us any huges improvements.</description>
		<content:encoded><![CDATA[<p>Good article, it&#8217;s certainly created quite a bit of debate.</p>
<p>We use Subversion at work, although have been toying with the idea of using Git. As mentioned though I think I prefer quick and small commits to the server where the data is more secure. We work in a very Agile setup, so if anything does get broken, it gets fixed straight away.</p>
<p>Also tools such as TortoiseSvn are much more mature than TortoiseGit. And VisualSVN, there is no VisualGit equivalent. </p>
<p>However I do like Git. I use it at home now, and will continue to do so, and possibly one day will apply it at work. Switching source control system is a lot of pain though, and at the moment Git doesn&#8217;t offer us any huges improvements.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ytrog</title>
		<link>http://markmcb.com/2008/10/18/3-reasons-to-switch-to-git-from-subversion/#comment-174</link>
		<dc:creator>Ytrog</dc:creator>
		<pubDate>Mon, 26 Jan 2009 00:17:31 +0000</pubDate>
		<guid isPermaLink="false">http://markmcb.com/?p=178#comment-174</guid>
		<description>If people are looking for a git plugin that works well in Eclipse: http://git.or.cz/gitwiki/EclipsePlugin

It can't do all the things of git yet, but works well overall.</description>
		<content:encoded><![CDATA[<p>If people are looking for a git plugin that works well in Eclipse: <a href="http://git.or.cz/gitwiki/EclipsePlugin" rel="nofollow">http://git.or.cz/gitwiki/EclipsePlugin</a></p>
<p>It can&#8217;t do all the things of git yet, but works well overall.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Robert Jakubowicz</title>
		<link>http://markmcb.com/2008/10/18/3-reasons-to-switch-to-git-from-subversion/#comment-169</link>
		<dc:creator>Robert Jakubowicz</dc:creator>
		<pubDate>Thu, 08 Jan 2009 03:26:04 +0000</pubDate>
		<guid isPermaLink="false">http://markmcb.com/?p=178#comment-169</guid>
		<description>Some of you have mentioned that the merging in Git is easier than SVN. Why? What are the issues with merging in SVN that Git handles better?</description>
		<content:encoded><![CDATA[<p>Some of you have mentioned that the merging in Git is easier than SVN. Why? What are the issues with merging in SVN that Git handles better?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Six Resources To Study And Master Git Source Control</title>
		<link>http://markmcb.com/2008/10/18/3-reasons-to-switch-to-git-from-subversion/#comment-168</link>
		<dc:creator>Six Resources To Study And Master Git Source Control</dc:creator>
		<pubDate>Mon, 05 Jan 2009 03:11:25 +0000</pubDate>
		<guid isPermaLink="false">http://markmcb.com/?p=178#comment-168</guid>
		<description>[...] 3 Reasons To Switch To Git From Subversion  [...]</description>
		<content:encoded><![CDATA[<p>[...] 3 Reasons To Switch To Git From Subversion  [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Gregg Lind</title>
		<link>http://markmcb.com/2008/10/18/3-reasons-to-switch-to-git-from-subversion/#comment-166</link>
		<dc:creator>Gregg Lind</dc:creator>
		<pubDate>Fri, 19 Dec 2008 14:16:59 +0000</pubDate>
		<guid isPermaLink="false">http://markmcb.com/?p=178#comment-166</guid>
		<description>Our central repo is a subversion repo, and about 4 months ago, I switched over to git-svn to access it.  Like many here I was skeptical about the usefulness of git, but I have been pleasantly surprised.   Even for a simple subversion workflow (I don't do a ton of branching / merging, for example), git is *fast*.  I look through my history a lot more, make many, many more commits, and in general, use the versioning system more.  I like the two stage commit process.  As others have mentioned, Git's features are a superset of those of svn.   To me, the workflow, while having more steps, feels more *rational*.  Git stash is killer and git rebase --interactive is a joy to use.  

It is also nice that the checked out directories only have one .git directory, instead of a .svn directory in every subdir, making it very easy to copy Git-tracked trees.  Git is pretty transparent in its working.  

Caveats:  I use command line tools only, no GUI, no IDE, so YMMV.</description>
		<content:encoded><![CDATA[<p>Our central repo is a subversion repo, and about 4 months ago, I switched over to git-svn to access it.  Like many here I was skeptical about the usefulness of git, but I have been pleasantly surprised.   Even for a simple subversion workflow (I don&#8217;t do a ton of branching / merging, for example), git is *fast*.  I look through my history a lot more, make many, many more commits, and in general, use the versioning system more.  I like the two stage commit process.  As others have mentioned, Git&#8217;s features are a superset of those of svn.   To me, the workflow, while having more steps, feels more *rational*.  Git stash is killer and git rebase &#8211;interactive is a joy to use.  </p>
<p>It is also nice that the checked out directories only have one .git directory, instead of a .svn directory in every subdir, making it very easy to copy Git-tracked trees.  Git is pretty transparent in its working.  </p>
<p>Caveats:  I use command line tools only, no GUI, no IDE, so YMMV.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
