假設我想在Subversion版本n和(n-1)之間還原一些更改。在顛覆中還原
我只是放回版本(n-1)中的文件 - 將它們從存儲庫中取出並作爲中繼中的最新版本檢入。
在這裏,他們似乎想從版本(n-1)中創建一個分支並將其與主幹合併。
這是更好還是「更正確」?
在這種情況下,它是一個目錄內的幾個文件。 這些文件沒有其他最近的更改。
假設我想在Subversion版本n和(n-1)之間還原一些更改。在顛覆中還原
我只是放回版本(n-1)中的文件 - 將它們從存儲庫中取出並作爲中繼中的最新版本檢入。
在這裏,他們似乎想從版本(n-1)中創建一個分支並將其與主幹合併。
這是更好還是「更正確」?
在這種情況下,它是一個目錄內的幾個文件。 這些文件沒有其他最近的更改。
要刪除特定版本之間的變化,比如1000和1010在過去的:
從一個查出來,最多工作副本類型的數據:
svn merge -r 1010:1000 .
這將刪除所有修訂版1000和1010之間的工作副本中的更改(不包括添加到1000本身的更改)。只要你沒有任何本地修改,並且在你確認它做了你想要的內容之前不要檢查結果,就可以安全地使用它。
你的具體情況,因爲你只是想刪除您可以使用「-c」,而不是更普遍-r一個版本:
svn merge -c 2000 .
這相當於1999年-r:2000中刪除1999年和2000年之間的變化。
如何幹淨地去除不好的承諾爲您和他人...
的「恢復」是不是你要找的人,因爲它不僅影響本地的變化。爲了恢復你必須使用「SVN合併」通過把一個使用否定語法已經提交的修訂版「 - 」(阿米努)在修訂前要remove.example:
current rev: 1337
bad rev: 1330
$sh> svn merge -c -1330 svn://your.svn.url:/your.svn.path .
$sh> svn ci -m "removed revision 1330"
所以你請使用rev「-1330」反向合併您的存儲庫,然後進行簽入,從而爲您和其他開發人員從1330中刪除更改。
將
使用svn merge
,它對你的情況非常有用。
svn merge -c n http://xxxx/xxx/xx
它並不直接回答我的問題(我猜它是他們在我公司做的),但它讓我覺得這是更好的方法。 我認爲這將工作在目錄三的一部分? – Olav
如果我想保留分支中的更改(將其移至分支),該怎麼辦? – Olav
您可以從任何修訂版本創建分支,包括修改版本中的分支。您也可以在分支上運行合併命令,以將指定的更改移入或移出分支。 –