我正在使用一款桌面軟件,它可以在衆多文件上執行一些相當複雜的工作,並且將它與從Dropbox打開的文件一起使用,在過去造成嚴重的數據丟失問題。 (因爲Dropbox在軟件運行時同步)文件(一些文本,一些二進制文件)非常重要,所以我想盡可能地保護它們免受破壞,並且我需要使用來自多臺計算機的文件並希望能力如果它們被破壞,可以回到歷史記錄中,所以使用git似乎是一個完美的選擇。但我對git本身並不陌生。如何在單個用戶環境中將Dropbox與git一起使用
注意:任何給定的用戶只能在他們自己的文件上工作,所以不存在多個用戶會推送到單個回購站的情況。每個用戶都會在自己的Dropbox實例中自己的文件中追蹤自己的文件。整個要點是讓每個用戶都擁有這種能力,因此他們的文件基本上都是通過git和Dropbox進行備份和版本控制的。
讀取位(尤其是the top two answers here和this great discussion和this article on bare vs non-bare repos)後,好像還有了很多贊成和反對的討論的幾種不同的方法,我想知道這接近下方將是最好的在這個特定的單用戶的情況?
基本上我看到的選項是使用Dropbox作爲單用戶git「服務器」,讓它擁有一個我每次在本地克隆的裸回購,或者沒有隱喻服務器,只需使用Dropbox作爲文件服務器與非裸git回購,我複製(全部)從/到每次。
選項1:Dropbox的裸回購,腳本其複製到本地工作目錄:c:\dropbox\master.git
是裸露的回購協議,和腳本做了git clone c:\dropbox\master.git c:\working
,運行在c:\working
對簽出的文件的軟件,然後再執行git add
和git commit
和git push origin master
並刪除c:\working
然後完成。
選項2:在Dropbox的非裸露的回購協議,腳本其複製到本地工作目錄:複製整個c:\dropbox\master
目錄c:\working
後運行鍼對c:\working
文件的軟件,然後做了git add
和git commit
,然後用c:\working
的內容覆蓋c:\dropbox\master
並刪除c:\working
並完成。
最終的PowerShell腳本還會在Dropbox服務執行任何操作前關閉Dropbox服務,並在Dropbox提交(選項1)或複製(選項2)回到主服務器後啓動備份。該部分實際上很簡單,並且可以保證Dropbox在本地回購正在進行時不會更改任何文件。由於它將是一個單用戶進程,因此我(或任何人)可以等待幾分鐘時間讓Dropbox在第一次啓動時完成同步。
選項1似乎更「git-ish」,但考慮到單用戶場景選項2可能更簡單一點(只有1個回購處理而不是2),但我不確定是否有任何「陷阱「我在這裏失蹤。
感謝您的任何提示/想法/等。
是的,但Dropbox中的git倉庫加倍工作文件夾嗎?如果這樣做不可行,因爲我們不能讓軟件訪問Dropbox中的文件。即使在軟件運行時禁用了Dropbox。一旦它被重新啓用,我們曾經經歷了來自3個系統的突然3路同步,最終導致應用程序崩潰。這本身並不是Dropbox的錯,應用程序只是非常脆弱,並沒有處理任何*篡改它的文件結構,但這是我必須處理的。 – Dave
也許問題是Dropbox。你爲什麼不使用一個普通的git倉庫,無論是自己託管還是從衆多流行的git託管服務之一託管? – mkasberg