在我正在进行的项目中犯了一系列错误。如何恢复已知的工作版本并在此基础上构建?说我在修订版15,但我想回到修订版10 - 并继续工作10。我正在使用Zend Studio。
我可以删除SVN中存在的修订吗?
答案 0 :(得分:50)
从命令行:
svn up -r [revision_number]
其中[revision_number]是您要恢复的修订版。
不,您无法删除SVN中已存在的修订版。
答案 1 :(得分:9)
三个选项:
反向合并:(最快,保留错误修订,添加新版本)
svn merge $(REPO)@$(GOODREV) $(WC)
SVN转储:(完全删除错误修订)
svnadmin dump $(REPO) -r 1:$(GOODREV) > dumpfile
svnadmin load $(NEWREPO) < dumpfile
# Now delete $(REPO), and use $(NEWREPO)
手工编辑:(删除不良版本,不安全,不得已而且)
您可能需要此功能的唯一原因是,由于某种原因,您具有对存储库的文件级访问权限,但没有shell访问权限。请注意,这仅在SVN 1.6和1.7上进行了测试。
$(GOODREV)
(如果留在HEAD
,我们完成后将无法使用。)db/current
中的号码更改为$(GOODREV)
。请务必不要更改LF
行结尾。db/revs/*/*
和db/revprops/*/*
中&gt;所有编号的文件(不是文件夹) $(GOODREV)
db/rep-cache.db
HEAD
,现在应该等于$(GOODREV)
。请注意,如果您使用的是TortoiseSVN,则还必须完成以下步骤:
%APPDATA%\TortoiseSVN\logcache\*
TSVNCache.exe
。 (通常有一个,但由于UAC安全性,可能在WinVista +上为2,这会阻止提升的应用程序与非提升TSVNCache.exe
进行交互。第一次打开{{1}时来自提升的应用程序的对话框,升高的Save As...
将会产生。)这将修复由TortoiseSVN的缓存与新的repo状态冲突导致的奇怪日志显示。
答案 2 :(得分:9)
您只需使用
更新修订版即可svn up -r 10
但正如Christoph所暗示的那样不允许你提交更改,因为SVN需要你在提交之前将工作副本更新为HEAD。你可以做的是
svn merge -r HEAD:10 yourFile
svn ci yourFile -m "Reverting back to rev 10"
答案 3 :(得分:0)
从TortoiseSVN办公地点获取文档。
我使用方法2并在我这边工作得很好。
https://tortoisesvn.net/docs/nightly/TortoiseSVN_en/tsvn-howto-rollback.html