[英]Disconnected Version Control
我的團隊在斷開模式下工作。 即,他們開發應用程序,並在公司網絡內使用SVN來管理代碼的版本控制。
我坐在客戶辦公室,無法從客戶機器直接訪問我公司的網絡。 我維護自己的SVN,每天在此檢查從團隊收到的代碼滴,並更改代碼。
在這種操作模式下,我面臨兩個問題。
因此,我開始感覺到兩個斷開連接的SVN存儲庫不是適合我的情況的正確解決方案。
免費的替代品是首選。
我會將SVN服務器轉換為git這樣的真正DVCS。 即使沒有直接連接,也可以使用電子郵件提交的補丁來傳播它們之間的更改(這適用於二進制文件)。 參見man git-format-patches
和man git-am
。 如果您不打算閱讀補丁,也可以man git-bundle
。
如果不能轉換中央服務器,您仍然可以在SVN網絡上的某人使用git-svn
之前,先生成他發送給您的補丁,或者在應用您發送回給他的補丁之后使用git-svn
。 (殺死SVN當然是一個更好的長期解決方案。)
您應該查看git-svn。 基本思想是,您沒有本地svn工作副本,而是擁有本地git存儲庫。 您可以進行多個本地提交,然后在完成后將這些本地提交推送到遠程svn存儲庫中。 它使您可以與中央svn庫完全斷開連接,但仍可以在日常工作中使用版本控制。
看看@elevener提到的bzr-svn
,或者,對於git等效項,使用git-svn
編輯:
我的印象是,您有時可以訪問公司網絡,在其中可以推/拉更改。 如果那不是真的,那么我猜想手動修補是唯一的方法(因為您幾乎無法訪問該公司的SVN服務器。)
貴公司是否通過某種方式(SSH?VPN?)提供對內部網絡的訪問? 如果是這樣,也許您可以使用SSH隧道或VPN訪問SVN服務器。
如果您位於其他網絡中,並且無權訪問VCS,則只能進行手動修補。 即使在DVCS(git或mercurial)中,也必須位於同一網絡中才能從遠程存儲庫中進行推送或提取。 因此,據我所知,手動修補是您唯一的解決方案。
SVN專家有何評論?
我自己沒有使用過,但是AFAIK可以使用Bazaar。 這是一個分布式版本控制,可以使用SVN作為中央存儲庫。
參見bzr-svn 。
在sneakernet轉移步驟中查看git-bundle
。 它應該允許您打包一捆更改,以便在網絡之間通過VPN進行手動傳輸。
我自己一直在研究交換問題(請參閱我的各種SO問題),我認為可以使它們起作用,盡管您可能需要使用該公司的筆記本電腦;-)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.