<?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: Setting Up Version Control on your Home Directory</title>
	<atom:link href="http://pyverted.com/linux/setting-up-version-control-on-your-home-directory/2009/08/feed/" rel="self" type="application/rss+xml" />
	<link>http://pyverted.com/linux/setting-up-version-control-on-your-home-directory/2009/08/</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Thu, 27 Aug 2009 23:14:04 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: HomeBasedBusinessaholic</title>
		<link>http://pyverted.com/linux/setting-up-version-control-on-your-home-directory/2009/08/comment-page-1/#comment-3677</link>
		<dc:creator>HomeBasedBusinessaholic</dc:creator>
		<pubDate>Thu, 27 Aug 2009 22:35:31 +0000</pubDate>
		<guid isPermaLink="false">http://pyverted.com/?p=274#comment-3677</guid>
		<description>There are a lot of data from the site and I love it very much, it has become one of the things in my bookmark, thank you. Best Regards, Reader.</description>
		<content:encoded><![CDATA[<p>There are a lot of data from the site and I love it very much, it has become one of the things in my bookmark, thank you. Best Regards, Reader.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: MasterPi</title>
		<link>http://pyverted.com/linux/setting-up-version-control-on-your-home-directory/2009/08/comment-page-1/#comment-3648</link>
		<dc:creator>MasterPi</dc:creator>
		<pubDate>Wed, 26 Aug 2009 02:23:41 +0000</pubDate>
		<guid isPermaLink="false">http://pyverted.com/?p=274#comment-3648</guid>
		<description>Aside from the issue with &#039;git clean&#039;, there&#039;s also a problem if you are using this method to sync between your computers, as I used to do.  Git considers anything you put in .gitignore to be completely worthless to you, and so has no qualms about overwriting it without trying to merge if you pull from another repository that has had the file added.  (Example: you haven&#039;t tracked .bashrc on one computer but you decide you want to track it and add it on another computer, then you pull into the first computer and it doesn&#039;t attempt to do a merge at all, it simply overwrites your local copy).  The symlinking solution is much better; I now have a ~/Settings which contains files I want to track and an install script that puts symlinks where they belong.</description>
		<content:encoded><![CDATA[<p>Aside from the issue with &#8216;git clean&#8217;, there&#8217;s also a problem if you are using this method to sync between your computers, as I used to do.  Git considers anything you put in .gitignore to be completely worthless to you, and so has no qualms about overwriting it without trying to merge if you pull from another repository that has had the file added.  (Example: you haven&#8217;t tracked .bashrc on one computer but you decide you want to track it and add it on another computer, then you pull into the first computer and it doesn&#8217;t attempt to do a merge at all, it simply overwrites your local copy).  The symlinking solution is much better; I now have a ~/Settings which contains files I want to track and an install script that puts symlinks where they belong.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Peter Manis</title>
		<link>http://pyverted.com/linux/setting-up-version-control-on-your-home-directory/2009/08/comment-page-1/#comment-3549</link>
		<dc:creator>Peter Manis</dc:creator>
		<pubDate>Tue, 18 Aug 2009 21:13:42 +0000</pubDate>
		<guid isPermaLink="false">http://pyverted.com/?p=274#comment-3549</guid>
		<description>The benefit of not ignoring everything is that when you run git status or hg status files that have been added that you might not have been aware of will show up.  By ignoring everything by default you will miss things you might have wanted to track sooner.</description>
		<content:encoded><![CDATA[<p>The benefit of not ignoring everything is that when you run git status or hg status files that have been added that you might not have been aware of will show up.  By ignoring everything by default you will miss things you might have wanted to track sooner.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: throughnothing</title>
		<link>http://pyverted.com/linux/setting-up-version-control-on-your-home-directory/2009/08/comment-page-1/#comment-3546</link>
		<dc:creator>throughnothing</dc:creator>
		<pubDate>Tue, 18 Aug 2009 19:19:36 +0000</pubDate>
		<guid isPermaLink="false">http://pyverted.com/?p=274#comment-3546</guid>
		<description>I have been using git to track my home dir for a while, and its great.  One thing I would say that could make it a little bit easier rather than having a huge list of ignores, is to ignore everything, and then explicitly unignore things you want to track.  This also has the advantage that if you install new programs to test them out after setting this up and they write all kinds of ~/.* goodness to your home dir, git will automatically have them ignored unless u explicitly decide to track it/them.

So anyway, I start with something like this:

# Ignore Everything
/*
/.*
*.swp
*.swo
.svn
*~

Basically this ignores everything, and ensures that .swp files and the like get ignored always.  Then I will add the stuff that I want to track like this:

# Configs/Scripts
!/.gnupg
!/.mutt
!/.irssi
!/.bashrc
!/.profile
!/.config/

Thanks for the article.</description>
		<content:encoded><![CDATA[<p>I have been using git to track my home dir for a while, and its great.  One thing I would say that could make it a little bit easier rather than having a huge list of ignores, is to ignore everything, and then explicitly unignore things you want to track.  This also has the advantage that if you install new programs to test them out after setting this up and they write all kinds of ~/.* goodness to your home dir, git will automatically have them ignored unless u explicitly decide to track it/them.</p>
<p>So anyway, I start with something like this:</p>
<p># Ignore Everything<br />
/*<br />
/.*<br />
*.swp<br />
*.swo<br />
.svn<br />
*~</p>
<p>Basically this ignores everything, and ensures that .swp files and the like get ignored always.  Then I will add the stuff that I want to track like this:</p>
<p># Configs/Scripts<br />
!/.gnupg<br />
!/.mutt<br />
!/.irssi<br />
!/.bashrc<br />
!/.profile<br />
!/.config/</p>
<p>Thanks for the article.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: remin raphael (remin) 's status on Tuesday, 18-Aug-09 01:41:29 UTC - Identi.ca</title>
		<link>http://pyverted.com/linux/setting-up-version-control-on-your-home-directory/2009/08/comment-page-1/#comment-3534</link>
		<dc:creator>remin raphael (remin) 's status on Tuesday, 18-Aug-09 01:41:29 UTC - Identi.ca</dc:creator>
		<pubDate>Tue, 18 Aug 2009 01:41:42 +0000</pubDate>
		<guid isPermaLink="false">http://pyverted.com/?p=274#comment-3534</guid>
		<description>[...]  http://pyverted.com/linux/setting-up-version-control-on-your-home-directory/2009/08/  [...]</description>
		<content:encoded><![CDATA[<p>[...]  <a href="http://pyverted.com/linux/setting-up-version-control-on-your-home-directory/2009/08/" rel="nofollow">http://pyverted.com/linux/setting-up-version-control-on-your-home-directory/2009/08/</a>  [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Peter Manis</title>
		<link>http://pyverted.com/linux/setting-up-version-control-on-your-home-directory/2009/08/comment-page-1/#comment-3479</link>
		<dc:creator>Peter Manis</dc:creator>
		<pubDate>Thu, 13 Aug 2009 22:17:41 +0000</pubDate>
		<guid isPermaLink="false">http://pyverted.com/?p=274#comment-3479</guid>
		<description>Sure thing.

I won&#039;t get to it until the weekend, but I will make a new post on doing that so keep an eye out over the weekend or Monday.</description>
		<content:encoded><![CDATA[<p>Sure thing.</p>
<p>I won&#8217;t get to it until the weekend, but I will make a new post on doing that so keep an eye out over the weekend or Monday.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Vic</title>
		<link>http://pyverted.com/linux/setting-up-version-control-on-your-home-directory/2009/08/comment-page-1/#comment-3478</link>
		<dc:creator>Vic</dc:creator>
		<pubDate>Thu, 13 Aug 2009 21:43:01 +0000</pubDate>
		<guid isPermaLink="false">http://pyverted.com/?p=274#comment-3478</guid>
		<description>Peter,

Could you post a tutorial about setting it all up with BitBucket?  Initializing everything locally and merging with the repo on BitBucket, all of that?

Thanks!</description>
		<content:encoded><![CDATA[<p>Peter,</p>
<p>Could you post a tutorial about setting it all up with BitBucket?  Initializing everything locally and merging with the repo on BitBucket, all of that?</p>
<p>Thanks!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Peter Manis</title>
		<link>http://pyverted.com/linux/setting-up-version-control-on-your-home-directory/2009/08/comment-page-1/#comment-3477</link>
		<dc:creator>Peter Manis</dc:creator>
		<pubDate>Thu, 13 Aug 2009 20:01:07 +0000</pubDate>
		<guid isPermaLink="false">http://pyverted.com/?p=274#comment-3477</guid>
		<description>Something else I should mention about Bart&#039;s comment.  If you are using Mercurial you have to explicitly enable a plugin to do a purge (hg equiv to &#039;git clean&#039;).  I&#039;m sure there are use cases for purge, but I don&#039;t know that it needs to be enabled at a machine level.  Why not just enable it at a repository level if that repository would benefit from being able to flush files and directories.

In Mercurial you can also explicitly disable an extension.

&quot;To explicitly disable an extension that is enabled in an hgrc of  broader scope, prepend its path with &quot;!&quot;, as in &quot;hgext.foo =  !/ext/path&quot; or &quot;hgext.foo = !&quot; when path is not supplied.&quot;</description>
		<content:encoded><![CDATA[<p>Something else I should mention about Bart&#8217;s comment.  If you are using Mercurial you have to explicitly enable a plugin to do a purge (hg equiv to &#8216;git clean&#8217;).  I&#8217;m sure there are use cases for purge, but I don&#8217;t know that it needs to be enabled at a machine level.  Why not just enable it at a repository level if that repository would benefit from being able to flush files and directories.</p>
<p>In Mercurial you can also explicitly disable an extension.</p>
<p>&#8220;To explicitly disable an extension that is enabled in an hgrc of  broader scope, prepend its path with &#8220;!&#8221;, as in &#8220;hgext.foo =  !/ext/path&#8221; or &#8220;hgext.foo = !&#8221; when path is not supplied.&#8221;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Peter Manis</title>
		<link>http://pyverted.com/linux/setting-up-version-control-on-your-home-directory/2009/08/comment-page-1/#comment-3475</link>
		<dc:creator>Peter Manis</dc:creator>
		<pubDate>Thu, 13 Aug 2009 19:55:56 +0000</pubDate>
		<guid isPermaLink="false">http://pyverted.com/?p=274#comment-3475</guid>
		<description>That was actually my motivation for trying Mercurial.  I already had a remote git setup, but wanted something else.  Github did not offer a private repository with their free account and Bitbucket did.  So that let me kill two birds with one stone... really get to play with a remote Mercurial repository and have it hosted remotely.</description>
		<content:encoded><![CDATA[<p>That was actually my motivation for trying Mercurial.  I already had a remote git setup, but wanted something else.  Github did not offer a private repository with their free account and Bitbucket did.  So that let me kill two birds with one stone&#8230; really get to play with a remote Mercurial repository and have it hosted remotely.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Vic</title>
		<link>http://pyverted.com/linux/setting-up-version-control-on-your-home-directory/2009/08/comment-page-1/#comment-3474</link>
		<dc:creator>Vic</dc:creator>
		<pubDate>Thu, 13 Aug 2009 19:06:32 +0000</pubDate>
		<guid isPermaLink="false">http://pyverted.com/?p=274#comment-3474</guid>
		<description>What about hosting the repository remotely?  That seems most useful so that you can share files from your home directory among multiple workstations.  Thoughts on initializing the repository or cloning it into the current working directory?</description>
		<content:encoded><![CDATA[<p>What about hosting the repository remotely?  That seems most useful so that you can share files from your home directory among multiple workstations.  Thoughts on initializing the repository or cloning it into the current working directory?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Peter Manis</title>
		<link>http://pyverted.com/linux/setting-up-version-control-on-your-home-directory/2009/08/comment-page-1/#comment-3451</link>
		<dc:creator>Peter Manis</dc:creator>
		<pubDate>Wed, 12 Aug 2009 05:29:08 +0000</pubDate>
		<guid isPermaLink="false">http://pyverted.com/?p=274#comment-3451</guid>
		<description>Bart does have a good point, and if you are interested in doing this you should consider what he is saying.

A couple things to remember are that you need to be careful with the commands you use, mistakes happen, but like think of it like &#039;rm -rf&#039; I have not used that on a directory I did not want to delete.  Something else is that you should be keeping regular backups of your information anyway so the impact of doing a &#039;git clean&#039; on the wrong directory will not hurt you as much.</description>
		<content:encoded><![CDATA[<p>Bart does have a good point, and if you are interested in doing this you should consider what he is saying.</p>
<p>A couple things to remember are that you need to be careful with the commands you use, mistakes happen, but like think of it like &#8216;rm -rf&#8217; I have not used that on a directory I did not want to delete.  Something else is that you should be keeping regular backups of your information anyway so the impact of doing a &#8216;git clean&#8217; on the wrong directory will not hurt you as much.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: bartman</title>
		<link>http://pyverted.com/linux/setting-up-version-control-on-your-home-directory/2009/08/comment-page-1/#comment-3450</link>
		<dc:creator>bartman</dc:creator>
		<pubDate>Wed, 12 Aug 2009 01:08:04 +0000</pubDate>
		<guid isPermaLink="false">http://pyverted.com/?p=274#comment-3450</guid>
		<description>I&#039;d like to warn you and your readers that putting .git in $HOME is very dangerous.

Imagine what happens when you run a git command in ~/foo.  git will look in ~/foo for a .git directory, and if it&#039;s not found there it will look in ~/ and work it&#039;s way up to /.  If you accidentally run &#039;git clean&#039; in a directory that has no .git repository it will run git clean against your ~/ directory.  This can be very very bad as it will blow away all untracked files you own.

This actually happened to a friend who used a script that converted hg repos to git repos.  He used some script to convert a hg repository to git.  The script had a bug, and called &#039;git clean&#039; with the wrong options.  Because git could not find a .git it looks up until it found ~/.git and he ended up losing all his files except for those he tracked in .git.

What I do is to keep all my dot-files in ~/etc and have symlinks in ~/ to files in ~/etc.  I share this ~/etc directory between computers, and it works really well.

To add a file into the repository I&#039;d do...
  cd ~/etc
  mv ../.vimrc vimrc
  git add vimrc
  git commit -m&quot;added vimrc&quot;
  dot-files install

The script is here: http://github.com/bartman/dot-files

Good luck.

-Bart</description>
		<content:encoded><![CDATA[<p>I&#8217;d like to warn you and your readers that putting .git in $HOME is very dangerous.</p>
<p>Imagine what happens when you run a git command in ~/foo.  git will look in ~/foo for a .git directory, and if it&#8217;s not found there it will look in ~/ and work it&#8217;s way up to /.  If you accidentally run &#8216;git clean&#8217; in a directory that has no .git repository it will run git clean against your ~/ directory.  This can be very very bad as it will blow away all untracked files you own.</p>
<p>This actually happened to a friend who used a script that converted hg repos to git repos.  He used some script to convert a hg repository to git.  The script had a bug, and called &#8216;git clean&#8217; with the wrong options.  Because git could not find a .git it looks up until it found ~/.git and he ended up losing all his files except for those he tracked in .git.</p>
<p>What I do is to keep all my dot-files in ~/etc and have symlinks in ~/ to files in ~/etc.  I share this ~/etc directory between computers, and it works really well.</p>
<p>To add a file into the repository I&#8217;d do&#8230;<br />
  cd ~/etc<br />
  mv ../.vimrc vimrc<br />
  git add vimrc<br />
  git commit -m&#8221;added vimrc&#8221;<br />
  dot-files install</p>
<p>The script is here: <a href="http://github.com/bartman/dot-files" rel="nofollow">http://github.com/bartman/dot-files</a></p>
<p>Good luck.</p>
<p>-Bart</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: cantormath</title>
		<link>http://pyverted.com/linux/setting-up-version-control-on-your-home-directory/2009/08/comment-page-1/#comment-3287</link>
		<dc:creator>cantormath</dc:creator>
		<pubDate>Sat, 01 Aug 2009 11:31:03 +0000</pubDate>
		<guid isPermaLink="false">http://pyverted.com/?p=274#comment-3287</guid>
		<description>Nice howto...Looks good.</description>
		<content:encoded><![CDATA[<p>Nice howto&#8230;Looks good.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
