2014-01-07 42 views

回答

1

可以背出Subversion的變化 - 即使它不是頭使用svn merge

比方說,你在修訂版100,但是意識到,在修訂94的變化有一些問題:

$ svn up # Make sure your working directory is up to date 
$ svn st # Make sure there are no pending changes. 
$ svn merge -c -94 . # Removes changes done in Revision #94. 

注負94. -c意味着變化。對於否定的版本號,這是一樣的,如果你說:

$ svn merge -r 94;93 . 

請注意,如果你不刪除最後一個變化,你可能有衝突(你做出修訂#96這一變化也改變在修訂#94中)。當您對svn merge執行任何操作時,始終建議您有一個乾淨的工作目錄。

您還可以使用--dry-run參數查看在實際進行反向合併之前將會更改哪些內容。這將幫助您捕捉可能發生的衝突,並確保被更改的文件是您認爲需要更改的文件。

2

有取決於它是多麼重要的修訂是從歷史上抹去了幾個基本的方法:

  • 通過svn merge反向的變化,提交他們,並在
  • 移動轉儲存儲庫並通過一些svn轉儲工具編輯出變更集。 svndumpfilter或SvnDumpTool可能工作。如果提交的數據是「在讀取前刻錄」類型 - 密碼,「絕密」文件等,可能需要更多努力,但可能值得。
  • 等待svn obliterate被執行。 Don't hold your breath