簡體   English   中英

git repo作為兩個SVN存儲庫之間的中間對象,用於同步

[英]git repo as intermediate between two SVN repos for syncing

我不太擅長GIT的思維方式-在我正在思考的場景中有點失落。

長話短說,我正在嘗試使用一個中間的本地Git存儲庫來同步不同機器/網絡上的兩個單獨的SVN存儲庫。 我不在乎提交到第二個回購協議的內容-我希望它只是第一個回購協議的鏡像。 基本上,我將不允許提交第二個回購協議,因此應該沒有沖突。 那我該怎么辦呢?

我成功克隆了現有的SVN存儲庫(git svn clone ..),但是如何將另一個鏡像存儲庫指定為要推送到的第二個遠程存儲庫?

人們正在談論直接修改.git / clone文件以添加第二個“遠程”文件-但是他們有點將其連接到新分支上-我不是很想這樣做。 我只想將我從主SVN存儲庫中獲取的更改推送到另一個SVN遠程服務器。

基本上,要從SVN存儲庫1進行git svn取回,而不要向SVN存儲庫1進行git svn dcommit,而是將其提交給SVN存儲庫2。

我了解應該啟用對第二個回購協議的某種跟蹤。 哦,天哪,似乎有可能,但我只是想不通。 幫忙,有人嗎? 謝謝。

在查看svnsync解決方案時讓我感到困惑的原因是,在兩個時間點上,兩個SVN存儲庫是隔離的。 我首先需要將VPN連接到第一個存儲庫,獲取更改,斷開連接,然后通過VPN2連接到第二個存儲庫並推送。 這就是為什么Git中間本地倉庫吸引我的原因。有這個 ,但我又覺得它很復雜。 有沒有更簡單的解決方案? Weeell ..我應該考慮將SVN回購或SVK回購視為更自然的解決方案嗎? 再次感謝。

由於我們沒有以下要求

  • 在兩個存儲庫中保持修訂號相同
  • 還要跟蹤DESTINATION存儲庫中的更改(DESTINATION對於其客戶端是只讀的)

AH建議的解決方案似乎是最簡單,最實用的解決方案。 鑒於

  • SOURCE_REPO例如是svn:// XXXX / some_repo
  • DESTINATION_REPO例如是file:/// C:/ some_other_repo

要轉儲現有存儲庫的內容(所有歷史記錄-大型存儲庫速度較慢):

svnrdump dump SOURCE_REPO > repo.dmp

要僅轉儲當前修訂版:

svnrdump dump -rHEAD SOURCE_REPO > repo.dmp

默認情況下,svnrdump轉儲將始終每個文件至少具有一個完整版本,因為它需要它知道如何繼續處理它將保存的其他增量差異(-增量選項會覆蓋該增量差異,但是在這里我們不需要它-除非我們保留已經轉儲的最新修訂的記錄,並且每次都進行增量轉儲-但我們絕對不需要就版本號而言將兩個歷史記錄保持一致)

要將轉儲文件導入另一個存儲庫(也可以使用http / svn嗎?)

svnrdump load DESTINATION_REPO < repo.dmp

請注意,在導出和導入時,版本號不會保持同步。 -導出時,它們不會保存到轉儲文件中,導入時,每個修訂都將保存為增量編號-因此,如果我們僅轉儲源存儲庫的HEAD修訂,而我們是第一次導入,則將其保存為修訂DESTINATION存儲庫中的1

暫無
暫無

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

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