簡體   English   中英

斷開版本控制

[英]Disconnected Version Control

我的團隊在斷開模式下工作。 即,他們開發應用程序,並在公司網絡內使用SVN來管理代碼的版本控制。

我坐在客戶辦公室,無法從客戶機器直接訪問我公司的網絡。 我維護自己的SVN,每天在此檢查從團隊收到的代碼滴,並更改代碼。

在這種操作模式下,我面臨兩個問題。

  1. 如果我的團隊刪除/重命名了一些文件,而我只是將從我的團隊收到的新代碼粘貼到我的工作副本上,那么刪除的文件將保留在我的工作副本中。
  2. 為了避免這個問題,我要求他們向我發送補丁文件。 修補程序文件的成功率更高,但無法處理二進制文件。 因此,如果我的團隊將新的圖像/ xls模板等添加到代碼庫中,則不會通過補丁文件獲得它們。 2。

因此,我開始感覺到兩個斷開連接的SVN存儲庫不是適合我的情況的正確解決方案。

  • 你們以前有過這種情況嗎?
  • 你做了什么?
  • SVN中有什么可以幫助我實現這一目標的嗎?
  • 還是有另一個版本控制系統可以幫助我解決此問題?
  • 如果是,您能指出我在VCS中的相關命令嗎?

免費的替代品是首選。

我會將SVN服務器轉換為git這樣的真正DVCS。 即使沒有直接連接,也可以使用電子郵件提交的補丁來傳播它們之間的更改(這適用於二進制文件)。 參見man git-format-patchesman 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.

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