2015-12-10 17 views
0

這是所有真正關心版本控制的人士之一。使用cron作業複製來避免github + dropbox的危險?

所以有一堆人在那裏說:「如果你把一個GitHub的管理回購在收存箱文件夾,你的世界將結束。」 Dave Winer,例如,reports unspecified disastrous resultsThis SO answer表明,Dropbox的有腐敗的git回購潛力,因爲跨操作系統的編碼問題,various answers here報告或猜測很多問題的地方舉行,有上this SO有類似的警告,評論,每個人都回答here同意,也herehere

事情是這樣的。無論如何,我真的很想使用github和dropbox,原因很簡單:dropbox是我的第一級備份解決方案。 (當然,不是我唯一的備份解決方案,但是我的第一級解決方案。)如果我遭受硬盤驅動器崩潰,我相信我可以將所有我真正需要的東西放到保管箱中......一切,除了東西在git版本控制下,我推送給github。

所以,這讓我感到有周圍的其他人已經確定,大概不承擔回購任何腐敗風險的風險,一個非常簡單的方法。運行一個cron作業(在我的情況下,一個mac,但我認爲這將在linux下,一個香草bsd等工作),就像每晚或甚至每小時,只是複製一切在git下持有回購的文件夾到一個保管箱文件夾並清理以前的版本。

假設,這將不會對潛在的git回購任何危險,因爲我假設,無論當手表更改的文件是不是也看的文件,以在其他地方複製的黑暗魔法混帳不。但我沒有任何實際的證據來證明這一假設,因爲我的git-fu不在任何需要的地方。 (因此,我把它描述爲「黑暗魔法」。)

但是,親愛的讀者,你的git-fu比我更先進,並且可以告訴我:這種操作能否成功地保留任何Dropbox的功能到複製的文件干擾什麼git做的原始位置的文件?

+0

大概不會。問題歸結爲您的操作系統處理行結尾的不同方式,而不是Dropbox在更新文件時同步的事實。 –

回答

0

我不知道如果這是你在找什麼,但Git是非常高興地推到本地URL。

我建議的做法是在主存儲庫中設置一個遠程存儲器,該遠程存儲器指向存儲在Dropbox本地視圖中的輔助bare repository

這種方式,你有地方爲你的cron作業來推,你會得到所有以使用推送,而不是隻是一個普通的文件拷貝走了交易的好處:

git init --bare /my/dropbox/path/secondaryrepo 
cd /path/to/primaryrepo; git remote add dropbox /my/dropbox/path/secondaryrepo 

那麼你的Cron腳本可以運行:

git push dropbox master 

這些文件不會在輔助存儲庫中檢出,因此Dropbox無法直接與它們爭執。所有你需要的是包含對象和元數據的.git文件夾。我不能保證它不會做一些有趣的事情,但我認爲git對象本質上是一個僅附加文件系統。我可能是錯的! Git Internals可能是一個開始獲取更多信息的好地方。 :d