我正在进行的项目中出现了一系列错误。如何回滚到已知的可用版本并在此基础上继续工作?假设我当前在第15个版本,但我想回退到第10个版本 -- 并在第10个版本之后继续工作。我使用的是Zend Studio。
我能否删除SVN中存在的版本记录?
我正在进行的项目中出现了一系列错误。如何回滚到已知的可用版本并在此基础上继续工作?假设我当前在第15个版本,但我想回退到第10个版本 -- 并在第10个版本之后继续工作。我使用的是Zend Studio。
我能否删除SVN中存在的版本记录?
从命令行中:
svn up -r [revision_number]
在这里 [revision_number] 代表你想还原到的版本号。
同时,不能删除已经存在于 SVN 中的版本记录。
你可以直接使用更新到修订版
svn up -r 10
但是正如Christoph所建议的那样,这样做不能让您提交更改,因为SVN需要您将工作副本更新到HEAD才能提交。相反,您可以这样做:
svn merge -r HEAD:10 yourFile
svn ci yourFile -m "Reverting back to rev 10"
有三种选择:
反向合并:(最快,保留错误的修订版本,添加新的修订版本)
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/*/*
中所有大于 $(GOODREV)
的编号文件(而不是文件夹)。db/rep-cache.db
。HEAD
,现在应等于 $(GOODREV)
。请注意,如果您使用 TortoiseSVN,则还必须完成以下步骤:
%APPDATA%\TortoiseSVN\logcache\*
中的所有文件。TSVNCache.exe
。(通常只有一个,但由于 UAC 安全性而可能存在 2 个:TSVNCache.exe
,它防止提升的应用程序与非提升的 TSVNCache.exe
进行交互。第一次从提升的应用程序打开“另存为...”对话框时,将生成提升的 TSVNCache.exe
。)这将修复 TortoiseSVN 缓存与新存储库状态冲突导致的奇怪日志显示问题。
从TortoiseSVN官网获取文档。
我使用方法2,在我的端上运行良好。
https://tortoisesvn.net/docs/nightly/TortoiseSVN_en/tsvn-howto-rollback.html