簡體   English   中英

通過文件服務器鏡像存儲庫

[英]Mirroring repository via fileserver

是否可以通過將更改發布到“啞”文件服務器並在另一端重新組裝它來鏡像存儲庫(在您選擇的SVN,Git,Hg等中)?

流程圖

可能的擔憂包括

  • 處理移動/重命名/刪除的文件
  • 二進制文件
  • 空目錄

例如,我理解svn diff > r1.patch意味着你丟失了二進制文件,因為SVN並沒有設計包含它們。

注意:這不是在文件服務器上放置存儲庫(除非有辦法在不上傳整個存儲庫文件的情況下執行此操作),因為我們正在嘗試最小化帶寬。 此外,存儲差異而不是存儲庫意味着可以進行加密。

是的,這是可能的

顛覆

  • 從修訂版N( svn diff -c N --git PATH > PATCH.N )制作git-patch;
  • 存儲補丁;
  • 在另一側應用補丁( svn patch PATCH.N <WCPATH> );

水銀

變換交換 (對於合並也不好)

  • 導出變更集N作為補丁( hg export -g -r N -o %b-%r.patch )(- hg export -g -r N -o %b-%r.patch with filename,用於一個目錄中的hg export -g -r N -o %b-%r.patch存儲的情況);
  • 存儲補丁;
  • 在另一側應用補丁( hg import --exact -s 100 FILENAME.patch )。

范圍集交換

  • 捆綁范圍N:M( hg bundle --base parent(N) --rev N::M NM.hg );
  • 存儲補丁;
  • 在另一側應用補丁( hg unbundle -u NM.hg )。

出口

  • 導出范圍集N:M作為補丁( hg export -o %b-%r.patch -r N::M )(文件名為“repobasebame-revno.patch”的補丁集);
  • 存儲補丁;
  • 因此在另一側應用補丁(從最少到最多)。

對於gitbundle命令。 它創建了給定修訂版的二進制存檔。 您可以將每個歷史記錄放入捆綁包中,每次提交或一堆,復制到文件服務器,然后還原到存儲庫。

git bundle create file.name revisions..list - 用於創建bundle的命令。

git bundle unbundle file.name - 恢復修訂的命令。

定義,你應該按時間順序為你的捆綁命名,不要混淆它們。

它適用於git ,據我記得, hg也有bundle命令。 這是繪制它時的方法。

另一種方法可能是在您的Dropbox文件夾中init新的中間存儲庫,然后從主存儲庫推送您的提交,讓Dropbox將其與鏡像同步。 但是,在這種情況下,只有在Dropbox同步完成后才能進入鏡像存儲庫。 否則數據可能不一致,因為git使用大量小文件來保存存儲庫內容。 通過打包存儲庫內容可以避免這種行為。 但是,如果你在安全方面做什么,捆綁方法將最適合你...

編輯 :重新調整svn我最近得到了另一條線索。 如果對於githg你可以使用標准備份方法來實現你需要的,為什么你可以嘗試svn的標准備份方法,如本問答所述?

svnadmin dump repositorypath -r LO_REV:HI_REV > backupname.svn備份修訂版。

svnadmin load repositorypath < backupname.svn以恢復數據。

有沒有理由你不只是像github那樣使用存儲庫托管? 這將使帶寬最小化,因為git只會推動差異。

git在發送所需的差異方面做得非常好,所以根本不需要這樣做。 mercurial(hg)也是如此,如果bzr沒有,我會非常驚訝。 顯然,像svn或cvs這樣的集中式VCS沒有。 只有在存在其他限制的情況下,您的運送到文件服務器才有意義(如果有,我們需要了解它們才能真正提供幫助)。

您也可以使用rsync(1)來復制存儲庫,但是在這種情況下,您不能指望VCS確保沒有人看到半更新的東西,如果你這樣做的話要非常小心。 一般情況下(除了bzr)你可以,例如,備份和恢復其他地方的存儲庫,它應該工作正常。

在任何情況下, 永遠不要盲目相信隱藏在有缺失位的彩色方塊背后的人會告訴你...檢查自己,閱讀文檔,尋找推薦的做法,並進行一些實驗。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM