2011-02-04 8 views
10

しばらくの間私はソース管理下にあるコードを持っていましたが、私のもののようなものを.vimフォルダにリポジトリの中に入れるのはすばらしかったと決めました。 (私は明らかに私のリポジトリ内のすべてのものを保存するつもりはない、さまざまな設定ファイル、私のsrcディレクトリ、そしておそらく他のいくつかのもの)ソース管理(hg)の下にホームディレクトリを置く

私はrepo fineを設定してから他のコンピュータからアクセスすることができますが、他のコンピュータにはコピーできません。クローンを作成しようとすると、ホームディレクトリが空でないために失敗します。私がここでしたいことをする方法はありますか?既に存在している他のディレクトリに

答えて

8

を:

~$ hg clone ssh://myserver/hg/dotfiles mydotfiles 
~$ mv mydotfiles/.hg . 
~$ rm -rf mydotfiles 

、それはそれだ、今あなたのホームフォルダは、バージョン管理下にあり、もちろん、あなたのドットファイルがコンピュータ間で同一でない場合、あなたはそれについて何かする必要があります。

私はいくつかのファイルではなく、私のホームフォルダの下のすべてのバージョンにしたいので、私は~/.hgignore

# This .hgignore is for the dotfiles repository only, 
# the rest of my HG repositories use the file 
# .hgignore_global as referenced by [ui]'s ignore setting. 

syntax:glob 
* 

に私はhg statusを行うときに、私は、ファイルの海を得ることはありません。この方法は、この単純なルールを持っており、変更されたバージョン管理下にあるファイルのみが表示されます。

syntax: glob 
*.pyc 
*~ 
.*.swp 
.svn* 
*.svn* 
*.fasl 

syntax: regexp 
^\.pc/ 
+2

別のオプションは、クローンではなく「hg init」と「hg pull」です。 –

+0

Ry4an、あなたは正しいです。それはもっと適切かもしれません。ファイルでいっぱいのフォルダを作成し、それを 'rm -rf'する必要はありません。ありがとう! –

0

、あなたでしhg init、あなたが望むものhg addhg commitこと、中央リポジトリからhg pull、そして得られたマージを扱います。

+2

持っている:

しかし、私は別のhgリポジトリ内での作業時にバージョン管理外のファイルを見たいと思っているので、私は私の~/.hgrcファイル

[ui] ignore=/home/gajon/.hgignore_global 

そして~/.hgignore_globalでこれを持っているが、共通の一時ファイルのためのいくつかのフィルタが含まれていますあなたはこれを試した?あなたがプルを強制した場合にのみ機能します。個人的には、私は '.hgディレクトリをコピーする'がよりクリーンな回答だと思う。 – Mikezx6r

1

proj1proj2とします。 proj1は、proj2にクローンしたいが、proj2には既にファイルがあります。

このお試しください:私のコンピュータ間でバージョン管理下のファイルは、私がした何をしたか、同じであるため

hg clone proj1 proj3 
mv proj3/.hg proj2 
rmdir proj3 
cd proj2 
hg update -C -r tip 
+0

最後のコマンドの '-r tip'オプションを省略することができます - updateは* tip *リビジョンをデフォルトとして取ります。 –

関連する問題