我不得不將SVN保護的代碼恢復到早期版本,然後我進行了大量修改。我想將修改後的版本提交給SVN,但是當我嘗試提交時,SVN告訴我必須先更新。我不想這樣做。如何在恢復後強制在SVN中提交工作副本
是否可以指定我的本地版本(工作副本)是新的當前正確版本,而不需要從SVN進行更新?
我不得不將SVN保護的代碼恢復到早期版本,然後我進行了大量修改。我想將修改後的版本提交給SVN,但是當我嘗試提交時,SVN告訴我必須先更新。我不想這樣做。如何在恢復後強制在SVN中提交工作副本
是否可以指定我的本地版本(工作副本)是新的當前正確版本,而不需要從SVN進行更新?
答案似乎是svn up --accept mine-full
這將工作。您基本上將您的更改合併回當前的修訂版。 – 2013-03-04 22:49:37
我試過了。看起來「接受我的」確實告訴svn保留你的工作,但是如果某些目錄被重命名或刪除,它們會在這個命令後重新出現,所以你必須做一些手動清理。但它確實簡化了我的情況。 – Sebas 2016-09-12 15:11:46
1)將您的最終代碼庫備份到硬盤中的其他位置。
2)取更新
3)所有從SVN
4刪除)複製粘貼備份驅動器
5)所有的代碼庫提交
OR
你可以,如果有幫助進行清理,我不這樣認爲......
我做了這個(副本和清理),但svn似乎做正確的事情,並跟蹤日期。 – ochensati 2013-03-04 19:56:47
你不能承諾除了在變化的樹幹或分支機構。這是所有版本控制系統的嘗試。否則,人們會覆蓋他們想要保留的更改。
有兩件事情可以做:
讓我們再次假設,我檢查了11980修訂和最新修訂是12,0001:
$ svn co -r 11980 http://path/to/my/project workdir
$ cd workdir
...a bunch of changes
$ svn commit -m"My changes"
SVN Error: you need to update first...
$ svn copy -r11900 http://path/to/my/[email protected] http://path/to/branches/my_branch/project
現在,我有我的工作是作爲一個分支的基地。現在,我要切換到該分支:
$ svn switch http://path/to/branches/my_branch/project
我的工作目錄位於基於舊版本的新分支上。我的所有更改都未經切換。我現在可以承諾我的更改沒有任何問題。
$ svn commit -m"My changes"
$ It worked!
現在,如果我願意,我可以合併我變回原來的項目:
$ svn co http://path/to/my/project workdir2
$ cd workdir2
$ svn merge http://path/to/branches/my_branch/project
你必須正確地使用Subversion術語,因爲你不** **恢復(AFAICS)但更新到舊的(非頭)修訂您的WC – 2013-03-05 10:52:19