<?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"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Rearranging files in SVN? Use git-svn instead.</title>
	<atom:link href="http://kylecordes.com/2008/rearrange-file-svn-git/feed" rel="self" type="application/rss+xml" />
	<link>http://kylecordes.com/2008/rearrange-file-svn-git</link>
	<description>Software, Business, and Life</description>
	<lastBuildDate>Tue, 20 Dec 2011 16:22:18 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
	<item>
		<title>By: Antony Stubbs</title>
		<link>http://kylecordes.com/2008/rearrange-file-svn-git/comment-page-1#comment-26345</link>
		<dc:creator>Antony Stubbs</dc:creator>
		<pubDate>Thu, 09 Oct 2008 08:01:39 +0000</pubDate>
		<guid isPermaLink="false">http://kylecordes.com/2008/07/18/rearrange-file-svn-git/#comment-26345</guid>
		<description>Two things to add:
git-mv : http://www.kernel.org/pub/software/scm/git/docs/git-mv.html
Move or rename a file, a directory, or a symlink 

git-svn dcommit --rmdir : http://www.kernel.org/pub/software/scm/git/docs/git-svn.html
&quot;    Only used with the dcommit, set-tree and commit-diff commands.

    Remove directories from the SVN tree if there are no files left behind. SVN can version empty directories, and they are not removed by default if there are no files left in them. git cannot version empty directories. Enabling this flag will make the commit to SVN act like git.

    config key: svn.rmdir&quot;

;)

@Kyle: care to qualify that statement that Git isn&#039;t good with Binary data?</description>
		<content:encoded><![CDATA[<p>Two things to add:<br />
git-mv : <a href="http://www.kernel.org/pub/software/scm/git/docs/git-mv.html" rel="nofollow">http://www.kernel.org/pub/software/scm/git/docs/git-mv.html</a><br />
Move or rename a file, a directory, or a symlink </p>
<p>git-svn dcommit &#8211;rmdir : <a href="http://www.kernel.org/pub/software/scm/git/docs/git-svn.html" rel="nofollow">http://www.kernel.org/pub/software/scm/git/docs/git-svn.html</a><br />
&#8221;    Only used with the dcommit, set-tree and commit-diff commands.</p>
<p>    Remove directories from the SVN tree if there are no files left behind. SVN can version empty directories, and they are not removed by default if there are no files left in them. git cannot version empty directories. Enabling this flag will make the commit to SVN act like git.</p>
<p>    config key: svn.rmdir&#8221;</p>
<p> <img src='http://kylecordes.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>@Kyle: care to qualify that statement that Git isn&#8217;t good with Binary data?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kyle Cordes</title>
		<link>http://kylecordes.com/2008/rearrange-file-svn-git/comment-page-1#comment-23349</link>
		<dc:creator>Kyle Cordes</dc:creator>
		<pubDate>Fri, 01 Aug 2008 02:45:41 +0000</pubDate>
		<guid isPermaLink="false">http://kylecordes.com/2008/07/18/rearrange-file-svn-git/#comment-23349</guid>
		<description>Great comment. I find git&#039;s ability to detect this specific type of rename (text files that haven&#039;t changes by much) *extremely* useful, because I work on a lot of projects that involve a lot of text files: source code. (&quot;Track what the user is actually doing&quot; is a non-goal of git - rather, it is a feature of git, that git tracks the content you ended up with, without regard to how you got there.)

On the other hand, tracking the kind of changes that Juliano describes (changes to image files while simultaneously renaming them) is not a need I have had (yet). git is a relatively poor choice for projects that consist of a lot of binary files; I am confident I would look elsewhere when working on such a project.

Fortunately, it&#039;s a big world, and there are a lot of great tools to choose from, including many source control tools that don&#039;t implicitly follow renamed content, that do allow/require explicit rename tracking, etc.</description>
		<content:encoded><![CDATA[<p>Great comment. I find git&#8217;s ability to detect this specific type of rename (text files that haven&#8217;t changes by much) *extremely* useful, because I work on a lot of projects that involve a lot of text files: source code. (&#8220;Track what the user is actually doing&#8221; is a non-goal of git &#8211; rather, it is a feature of git, that git tracks the content you ended up with, without regard to how you got there.)</p>
<p>On the other hand, tracking the kind of changes that Juliano describes (changes to image files while simultaneously renaming them) is not a need I have had (yet). git is a relatively poor choice for projects that consist of a lot of binary files; I am confident I would look elsewhere when working on such a project.</p>
<p>Fortunately, it&#8217;s a big world, and there are a lot of great tools to choose from, including many source control tools that don&#8217;t implicitly follow renamed content, that do allow/require explicit rename tracking, etc.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Juliano</title>
		<link>http://kylecordes.com/2008/rearrange-file-svn-git/comment-page-1#comment-23348</link>
		<dc:creator>Juliano</dc:creator>
		<pubDate>Fri, 01 Aug 2008 02:28:54 +0000</pubDate>
		<guid isPermaLink="false">http://kylecordes.com/2008/07/18/rearrange-file-svn-git/#comment-23348</guid>
		<description>There is a big problem here. There is absolutely no way to implicitly detect renames with 100% accuracy without reading the user mind, or at least watching their actions. The first one is quite impossible with today&#039;s technology, and the second one requires integration with the user environment (IDE, file manager or operating system).

There is an overstatement that git properly detects renames. That is because git was designed with the sole purpose of managing the Linux kernel tree (only text files), is used to manage mostly source-code projects (mostly text files) and pretty much ignored for everything else. Revision-control is way broader than this. What is, for example, two &quot;nearly-identical&quot; PNG images? Say, you open an image drafts/imagex.png, apply a brightness filter, save it, and move it to final/imagey.png. Git just breaks history in this situation, because the files are completely different (binarily speaking... for a human it is not), it didn&#039;t watch the user changing the image, and didn&#039;t read the user&#039;s mind.

The &quot;nearly-identical&quot; by itself is very subjective. How much is this? 80%? 90%? How was this value defined? What are the user&#039;s options when he trespasses this threshold and git is not going to figure the change?

Git actually doesn&#039;t &quot;just work&quot; unless you keep yourself under this nearly-identical threshold, that rarely holds for files other than text. Subversion, Mercurial, Bazaar, etc... on the other hand, properly records history across renames with 100% accuracy, since the user provides this information. There is no threshold, no ambiguity. Until the day that revision-control can actually record what the user is really doing, I&#039;ll prefer telling exactly what is happening to my files, so that this information is not lost forever. I hope that Subversion and Mercurial, my preferred DVCSes, never gain this &quot;ability&quot;.</description>
		<content:encoded><![CDATA[<p>There is a big problem here. There is absolutely no way to implicitly detect renames with 100% accuracy without reading the user mind, or at least watching their actions. The first one is quite impossible with today&#8217;s technology, and the second one requires integration with the user environment (IDE, file manager or operating system).</p>
<p>There is an overstatement that git properly detects renames. That is because git was designed with the sole purpose of managing the Linux kernel tree (only text files), is used to manage mostly source-code projects (mostly text files) and pretty much ignored for everything else. Revision-control is way broader than this. What is, for example, two &#8220;nearly-identical&#8221; PNG images? Say, you open an image drafts/imagex.png, apply a brightness filter, save it, and move it to final/imagey.png. Git just breaks history in this situation, because the files are completely different (binarily speaking&#8230; for a human it is not), it didn&#8217;t watch the user changing the image, and didn&#8217;t read the user&#8217;s mind.</p>
<p>The &#8220;nearly-identical&#8221; by itself is very subjective. How much is this? 80%? 90%? How was this value defined? What are the user&#8217;s options when he trespasses this threshold and git is not going to figure the change?</p>
<p>Git actually doesn&#8217;t &#8220;just work&#8221; unless you keep yourself under this nearly-identical threshold, that rarely holds for files other than text. Subversion, Mercurial, Bazaar, etc&#8230; on the other hand, properly records history across renames with 100% accuracy, since the user provides this information. There is no threshold, no ambiguity. Until the day that revision-control can actually record what the user is really doing, I&#8217;ll prefer telling exactly what is happening to my files, so that this information is not lost forever. I hope that Subversion and Mercurial, my preferred DVCSes, never gain this &#8220;ability&#8221;.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

