2012-05-01 24 views
3

所做的更改,但不知何故,我無法弄清楚:SVN提交這應該是簡單的是較舊版本

我更新到下一個到最後一個版本,比方說,修訂100(HEAD是101),如下所示:svn up -r 100。然後我進行了各種更改,現在我希望將修改後的文件作爲修訂版102進行檢入(如果需要,我可以回到101)。我怎麼做?如果我只是做一個svn commit我收到「過時」的錯誤。我不能做svn up要麼修復過時的問題,因爲我不希望在HEAD(101)中的任何更改返回...

+0

Subversion的設計並非如此。 –

+1

好的,但它必須是一個常見的用例......我做出的改變不能100%正常工作,但我確實希望將它們提交給將來參考,並返回到一個較舊的狀態,路徑。有任何想法嗎? – pholz

回答

3

將您更改的文件保存到臨時文件夾。重命名本地存儲庫進行備份。創建新的本地存儲庫。粘貼代碼變回到複製到臨時文件夾的文件中。承諾。

你可能想要做一個KDiff來確認所有更改在提交之前是否正確。

希望這有助於解決這個問題。

+0

由於一些奇怪的原因,'svn merge'不起作用,所以這個建議非常有用,謝謝。 PS:我想在粘貼之前在新的本地倉庫中刪除.svn文件夾更安全。 –

2

爲了撤銷之前的修改提交,你應該使用svn merge,不svn up

相反的svn up -r100,檢查了HEAD修訂和做svn merge -c -101 .

導致相同的內容在你的本地文件,但是現在Subversion在允許你提交之前不會再嘗試修改101的修改。請參閱the svn manual on undoing changes

+0

謝謝,我將在未來這樣做。 CMcClendon的答案適用於已經造成的破壞。 – pholz

相關問題