2011-10-22 54 views
3

我目前使用Dropbox作爲我的源代碼和資源的「備份」解決方案 - 它很好,很棒,已經多次保存了我的培根。用Mercurial包裝Dropbox進行版本控制 - 瘋狂的想法?

我發現自己現在需要一個合適的版本控制系統 - 我真的不想在我的Dropbox文件夾中放置一個存儲庫。首先,它會很快填充我的Dropbox補貼 - 另一方面,我並不想讓Dropbox和版本控制軟件在文件上「戰鬥」。

所以我認爲做這樣的事情(我使用水銀,但我敢肯定,同樣的理論也適用於其他VC的東西)

MYDOCS Folder <-- this is where the repo will go 
    .hg (for Mercurial in this case) 
    DROPBOX Folder 
     WORK FOLDER 
      PROJECT1 
      PROJECT2 
      PROJECT3 
      ... 

這樣的,我的工作一切都被覆蓋通過Dropbox - 但我的版本控制在Dropbox之外。

顯然不是我的DROPBOX文件夾中的每個文件都受版本控制 - 而且我的所有工作(不理想)都只有1個存儲庫,但任何人都可以通過此方法看到其他任何障礙?

注意:MYDOCS是單獨備份的(不太常見),因此這裏沒有文件丟失的風險。

p.s.

我在週末花了一點時間來實現這個(使用Mercurial/TortoiseHG),它似乎工作得很好。

有一些障礙 - 你必須設置積極的忽略過濾器(最後我只是使用「*」並手動添加代碼),否則TortoiseHG心臟病發作每次尋找時都會盯着1000個文件更改/添加新文件。

這意味着它不會在現有的項目發現新的文件,也這是一個輕微的疼痛,在最脖子 - 這將是巨大的,如果水銀竟然出現了一個包括這樣的時候過濾器...

pps我有一個聰明的想法,讓這個BIT更容易。

我在Dropbox外部創建了一個名爲「Repo」的新文件夾,並在其中爲我的Dropbox中的目錄創建了Directory Junction(鏈接爲您的* nix類型),其中包含我的所有源代碼(我的Eclipse Workspace目錄 - 基本上)。

然後我把我的回購進入「回購」文件夾 - 這樣它不監督我的整個Dropbox的,只是它的一部分,我希望它 - 它仍然不是「內部」我的Dropbox;)

+0

絕對不會將Mercurial回購放入Dropbox。不僅僅是因爲它的大小,而且Mercurial在某些基本的約束條件下運行,比如版本庫目錄不僅僅在它下面改變,或者文件沒有​​被鎖定,而且這些對Dropbox來說完全沒有效。 –

回答

4

正如你指出的那樣,這種方法的主要缺點是你綁定到一個單一的存儲庫。像Mercurial這樣的分佈式版本控制系統的一大優勢是,存儲庫創建和使用孤立的小項目很便宜。

爲什麼不只是使用bitbucket.org來滿足您的版本控制需求?您可以根據需要創建儘可能多的專用存儲庫,並根據需要使用盡可能多的磁盤。這裏唯一的缺點是,你僅限於有多少用戶可以共享它們,但考慮到上面概述的方法,這似乎不成問題。

+0

我已經使用BitBucket - 我不想要做的就是爲每個項目創建一個新的回購站(這與我在Eclipse上工作時幾乎是我唯一的選擇)。 任何其他解決方案 - 創建單獨的回購或subrepos - 將把.hg放入DROPBOX文件夾,我絕對不想這樣做! – shrewdlogarithm

+0

每個項目的回購 - 看起來很正常,那有什麼問題?爲什麼你想要沒有版本控制的項目? –

+0

因爲Eclipse項目決不代表單個Application/Deliverable/Piece-of-Work。我有DOZENS的圖書館項目 - 我需要單獨的項目免費和付費版本相同(免費版的情況下禁用位)代碼等等 – shrewdlogarithm

0

在Dropbox中保存.hg目錄時,您不會遇到存儲庫損壞問題,但您可能會最終提交更少,這也是一個無賴。

+0

在這種情況下,我真的使用版本控制作爲一種輕鬆查看更改/訪問某個特定版本的工作的方式時間點(基本上是釋放)。我工作獨奏atm,所以我不需要爲他人使用工作... – shrewdlogarithm

+0

我犯了我的工作使用。永久的,不可磨滅的歷史即使在獨奏作品中也是一種資產。科學家保存他們的日誌(和筆)是有原因的。 –

0

Mercurial將根目錄硬編碼爲與工作目錄位於同一級別,所以我認爲您不能更改此目錄。

什麼,但是你可以做的是符號鏈接.hg目錄到另一個目錄:

cd WORK_FOLDER 
ln -s ../MYDOCS_Folder/.hg .hg 
hg up null # to reset the dirstate 
hg up 

水銀將遵循符號鏈接並正常運行,但可能Dropbox的(如果它表現三立)不會。當你這樣做的時候,一定不要在WORK FOLDER裏做任何操作,因爲那樣會搞砸的。

說實話,我不會推薦這種工作流程,但它似乎很脆弱。

+0

使用符號鏈接來移動.hg文件夾的想法似乎很可怕! – shrewdlogarithm

+0

在Dropbox上運行Mercurial並試圖以這種方式拆開它的整個概念有點嚇人,如果你問我。 :)但考慮到你正在嘗試做什麼,我認爲這個答案描述了唯一可行的方法。 Mercurial的符號鏈接對'.hg'不會成爲問題。 –