2010-11-09 63 views
1

我是Mercurial的新手。我想知道是否有辦法將.hg文件夾移動到除工作目錄之外的其他位置,並且仍然監視更改?.hg文件夾是否需要駐留在工作目錄中?

例如,

I have the .hg in /foo/.hg/* 
Can I move it to /bar/.hg/* and still monitor the contents of foo? 

編輯: 我偏執的工作目錄。我有Dropbox備份我的Mercurial存儲庫。但.hg文件夾對我的Dropbox來說太大了

+1

你爲什麼要這樣做?即使您想使用的方法不起作用,也可能有辦法實現您的目標。 – Omnifarious 2010-11-09 02:08:50

回答

5

不,你不能。如果你能解釋爲什麼你想這樣做,我可以幫你找出一個不同的解決方案。

此外,您還可以在FOO子目錄,它們並非每個人都必須有自己的.hg目錄。只有Mercurial管理的樹的頂級目錄需要.hg目錄。

如果您的疑慮是備份,解決方案很簡單。將您的存儲庫克隆到您從未做過任何事情的目錄並定期推送到克隆。 Mercurial的系統使用加密哈希來保證事情不會因爲推送無聲成功並破壞備份存儲庫而被破壞。

如果你想要一個「異地」的備份,使用託管服務像bitbucket,甚至只是一個倉庫克隆到一個USB記憶棒。

我幾乎所有的知識庫都必須有5或10份副本放在不同的地方。我使用pushpull來保持它們的同步,如果我失去了它,很可能我沒有失去它的任何變化。我經常不用擔心工作目錄。

+0

Ill粘貼編輯。我對工作目錄偏執。我有Dropbox備份我的Mercurial存儲庫。但是.hg文件夾對於我的Dropbox來說太大了 – unj2 2010-11-09 05:20:51

+0

@kunjaan - 啊,我現在明白了,我已經用建議的解決方案編輯了我的答案。 – Omnifarious 2010-11-09 08:09:51

4

你應該不,顯然不是把你的資料庫,任何形式的,在任何一種同步系統,無論是微軟的Live同步(這是要離開的BTW),微軟的Live Mesh,DropBox的,或什麼的。

基本上你在問問題。各種同步工具無法保證您在其設置同步之前無法更改其中一個文件,並且如果您在DropBox同步之前設法在多臺計算機上更改文件,則會發生同步衝突,可能會讓你的整個存儲庫變得超出修復希望。

如果像你說的,你是偏執文件,Dropbox的應該是最後的「解決方案」,你會想挑選。幾乎肯定會在某個時候出錯。

相反,得到一個帳戶與託管提供商,像bitbucket,並把你的倉庫主人那裏,然後就拉下來給你使用的機器。 Bitbucket支持私人存儲庫,這些存儲庫不向公衆開放,並且應該不會比將存儲庫放入Dropbox帳戶更安全。

這將避免通過任何的同步工具越來越難同尺寸,你不必擔心存儲庫腐敗。

所以千萬不要這麼做!

至於移動.hg目錄,除非您使用的開發環境不會讓這些文件獨立,否則應該不需要移動它。

+1

你對此絕對正確。關於唯一可接受的同步方法是你必須激活自己,甚至是可疑的,特別是因爲推拉更有效地做同樣的事情。 – Omnifarious 2010-11-09 08:11:00

+1

是的,我將通過任何同步服務同步存儲庫的唯一方法是首先用zip,7z或其他方法將其存檔,然後將其同步。這會減少同步服務到傳輸介質,而不是同步介質。 – 2010-11-09 14:18:07

+0

感謝您的回覆。但是如果我確實想要移動.hg目錄呢?我會怎麼做? – unj2 2010-11-09 15:20:33

0

你的實際問題的答案是否定的,但有一個解決你的問題。我猜測真正的問題是,你害怕失去未完成的工作。雖然其他海報是正確的,你應該正確地推動並推送到遠程存儲庫(如果你不想分支,使用書籤),你也可以備份髒工作副本狀態,通過使用技巧在dropbox上無限制的工作在下面的鏈接:

http://www.dropboxwiki.com/tips-and-tricks/exclude-folders-from-syncing

此鏈接介紹瞭如何從Dropbox的同步,同時保留的本地內容排除某些文件夾。

您可以將此解決方案應用於您的克隆存儲庫中的.hg文件夾,以便將其忽略。如果這樣做,我還會在Dropbox中創建一個專用於您工作的每臺計算機的子文件夾來克隆您的回購站,並且出於顯而易見的原因,不要在多臺計算機上使用同一個文件夾。

這當然只是最後的避難所保護系統,它只會備份你的工作副本的瞬時狀態,而不是任何不必要的提交等。因此,它永遠不會比你節省半天的時間隨時工作。

相關問題