2011-02-13 159 views
2

我有一個SVN項目,我正在處理這太雜亂,資源被命名爲可怕的,項目文件充滿了錯誤的信息和鏈接,幾乎不可能搜索和銷燬。最重要的是,檔案檔案需要認真重新安排才能做出理解。我這樣做是因爲我完全打算用一個名爲相同事物的新項目解決問題,並且只通過良好的整潔文件夾和目錄轉移「良好」代碼和資源。替換整個SVN目錄

所以我的問題是,我有一個項目「FOOBAR」,這是所有結束了。在我的桌面上,我有「FOOBAR_FIXED」,它不受版本控制,但是現在我想在我的'FOOBAR'SVN上使用。

我如何將'FOOBAR'全部替換爲'FOOBAR_FIXED'?無需手動刪除所有對象,提交,然後再次手動添加所有對象並重新發布?

+0

如果文件已被重命名等,並且新項目本身完成,那麼爲什麼(實質上)將兩個文件集合並在一起? – 2011-02-13 01:25:19

回答

0

如果這是一個無望的原因,只需啓動一個新的存儲庫,並保留舊的參考。

一箇中途措施可能是將trunk重命名爲trunk.bad並啓動一個新主幹。

2

您將其描述爲另一個項目,因此它可能應該是另一個項目。但是如果你想替換當前的一個,並且真的想在一次提交中完成它,而不是在svn之外進行重組,那麼你應該創建了一個新的樹幹分支,在那裏做了更改,然後複製/合併清理後的分支回到樹幹。但是現在你已經完成了這個,下面是我如何處理它。

  1. 導出樹幹。 (不結帳,導出,我們想要一個沒有svn跟蹤信息的版本。)

  2. 使用diff工具來區分導出的trunk和固定版本的trunk,並將差異導出到一個補丁。

  3. 結帳中繼線。並將補丁應用到檢出版本。

  4. 使用svn status找到完全刪除的文件,並使用svn rm記錄中添加的刪除和文件,並使用svn add添加它們。 (我相信Linux系統上的命令是svn status | grep "^!" | cut -f 2 | xargs svn rm來記錄刪除舊文件,雖然我可能有cut錯誤的參數。我將離開該版本添加新文件作爲練習,但它應該不同於一個字符,並將「svn rm」更改爲「svn add」)

希望這會起作用。你應該再次運行任何測試,以確保一切正確。

首先刪除幹線中的所有內容,然後檢查整個新版本,將會容易得多。