2010-03-16 68 views
5

我將第三方項目提交到我自己的svn倉庫中。現在,我得到了該項目的新版本,並希望將其替換到我的存儲庫中。將未版本控制的目錄結構合併到SVN倉庫中

該項目是相當大的(1.2GB),新版本有新的文件/目錄和刪除的文件/目錄。

平凡解是

svn rm project 
mv /path/to/new/project . 
svn add project 
svn ci 

不過,我失去了歷史的一切。此外,svn服務器將無法使用增量壓縮(是的,服務器空間確實很重要)。

另一種方法是隻覆蓋工作目錄中的所有文件,然後提交它。但是,刪除的文件仍保留在存儲庫中。 svn add --force *也「忘記」添加一些文件。

提交新版本的其他可能性有哪些?這是一個不尋常的用例,因此沒有內置的支持嗎? (帶烏龜SVN我倒是惹.svn文件夾左右,龜提供刪除丟失在提交對話框的文件/文件夾,但在命令行版本的拒絕承諾如果遇到文件/文件夾使用svn rm未刪除)

額外1:如何避免我的存儲庫中的更改被覆蓋? (目前只有少數,所以重新應用是目前可以接受的)

額外2:我替換爲目的地的複製所有符號鏈接(爲了擺脫special status changed錯誤的)。如何避免這種情況?

額外3:如何應對重命名的文件/目錄?由於我只是在沒有更改歷史的情況下獲得新版本,因此無法自動確定這些新版本。 svn mv提交之前?

回答

5

fs2svn工具,是svn2svn的一部分,可以幫助您查找所需的基礎知識。從this post開始。

+0

謝謝!然而,與此同時,我切換到允許這種更新的'git'('git -A') – Meinersbur 2010-11-03 19:30:24

+0

svn2svn專門用於windows(OP在UNIX上要求一個工具)。 – 2011-04-20 06:06:27