2011-10-04 47 views
0

有沒有簡單的方法來用存檔轉儲替換svn倉庫?用存檔替換svn倉庫

我有一個foo.tar包含svn版本庫的未來版本。爲了將這個提交到svn倉庫,我所需要做的就是用foo.tar的內容覆蓋,然後svn刪除所有不在foo.tar中的文件,然後提交?

有沒有更好的方法來做到這一點?

+1

你在說'svn delete'和'commit'。這些條款表明你有一個svn * [工作副本](http://svnbook.red-bean.com/en/1.4/svn.basic.in-action.html#svn.basic.in-action.wc)*而不是* [資源庫](http://svnbook.red-bean.com/en/1.4/svn.basic.repository.html)*。你能澄清你的意思嗎? – phihag

+0

嗨,是的,我在工作副本上,而不是中央存儲庫。但是,我有權訪問中央存儲庫。 – grm

回答

1

使用資源管理器進行簡單刪除並不會真正刪除資源庫中的文件。用svn刪除所有文件可能是一個矯枉過正的問題。我將WC中的所有文件的日期設置爲null-date,然後從tar中複製所有文件,然後使用svn查找並刪除所有保留空日期的文件。

+0

謝謝,我認爲這是一個很好的方法。我也不確定svn如何處理「svn delete」,然後文件被覆蓋?理想情況下,它應該將其作爲修改來處理,但我不確定它是否足夠聰明,還是將它作爲刪除和添加處理? – grm

+0

我爲我的svn操作使用TortoiseSVN,所以我的猜測可能是錯誤的,但是...當使用svn刪除文件時,它不再存在於WC中。你在那裏看到的文件現在只是一些普通的文件。如果修改,未修改,刪除或其他任何內容都沒有區別。 – Dialecticus

0

不,不存在real更好的方法來做到這一點。

  • 結帳項目
  • 刪除所有文件在資源管理器(保持.svn目錄和內容)
  • 提取存檔此文件夾
  • 檢查每一個文件/文件夾中,並承諾

注意:
添加的項目將被標記爲已添加,如果您檢查它們。
刪除的項目將被標記爲刪除,如果您檢查它們(報告爲缺失)。

+0

嗨!除了「檢查每個文件/文件夾並提交」之外,我瞭解所有內容。 – grm

+0

一旦你打開提交面板,你檢查所有的文件/文件夾。所以你點擊複選框;)這將添加新的文件並刪除丟失的文件。 – TridenT

+0

好的,我認爲你一定要使用一些可視化工具。我從命令行使用svn工具,所以不知道這意味着什麼:)謝謝! – grm