2011-09-28 73 views
0

我有一個存儲庫被移動,路徑被重命名,然後日誌被截斷。所以我沒有老路。當我嘗試做svn切換https://new.repo/new/path svn抱怨「無法從內部替換目錄」。我如何避免這種情況?SVN:從不存在的路徑切換?

P.S.重新創建舊路不是一種選擇。從新位置

+0

截斷日誌意味着什麼? – Dialecticus

+0

這是否解決了這個問題:http://stackoverflow.com/q/115281/395718 – Dialecticus

回答

0

檢驗和複製舊的工作副本的內容在你的工作副本的新

+0

想到了。這是我想避免的保留選項。 atm與.svn/entries文件混淆。 – Daniel

2

如果它仍然是相同的回購,而這只是路徑回購所更改,那麼你應該傳遞--relocate選項爲svn switch。這有幫助嗎?

svn switch --relocate https://new.repo/new/path 

(警告:如果它是不一樣的回購,然後使用--relocate將打破東西)

+0

1.其不同的回購。 2.移居說:「SVN:重新定位只能改變URL中的版本庫部分」 – Daniel

+1

沒有辦法切換到完全不同的回購。你的意思是它曾經是相同的回購協議,但它在新版本中有所改變?如果是這樣,那麼你應該首先重新定位到//new.repo/old/path,然後切換到//new.repo/new/path。如果它是完全不同的回購,那麼你必須從頭開始檢查它。 – Dialecticus

0

問題得到解決。我創建了一個在所有.svn /條目中更改路徑的腳本。一切正常。

0

嗯,已經解決,但

svn --relocate https://old.repo/old/path https://new.repo/new/path 

應該做的伎倆很好

0

我有同樣的問題,並沒有能夠得到它與任一「開關」工作或「切換--relocate 」。正如原來的問題所述,我得到了錯誤「不能從內部替換目錄」與前者和後者「重定位只能更改URL的存儲庫部分」

因爲我在CentOS上,所以能夠通過從我的工作目錄的根目錄運行以下命令,使用sed手動更新.svn/entries文件中的網址:

find . -type f -name entries -exec sed "s/old\/path/new\/path/" -i {} \; 
+0

幾乎和我一樣:) – Daniel