SVN版本回退

SVN提交过程如下,提交了5次错误的代码,1570是正确的,把版本回退到1570;

1575 错误提交5

1574 错误提交4

1573 错误提交3

1572 错误提交2

1571 错误提交1

1570 正确提交的版本

回退步骤

1. 更新到最新版本

svn update

2. 查看1570到1575之间的所有修改

svn diff -r 1570:1575

3. 撤销1571到1575的所有更改(回滚到1570)

svn merge -r HEAD:1570 .

4. 检查合并结果

svn status

5. 提交撤销操作

svn commit -m "回退到版本1570,撤销1571-1575的错误提交"

SVN提交过程如下,提交了5次(1571~1575)错误的代码,1570之前的版本是正确的,1576之后的版本是正确的,该怎么回退这5次错误的提交;

1578 正确提交3

1577 正确提交2

1576 正确提交1

1575 错误提交5

1574 错误提交4

1573 错误提交3

1572 错误提交2

1571 错误提交1

1570 正确提交的版本

1569 正确提交的版本

回退步骤

查看当前的 SVN 日志

svn log --limit 20

一次性撤销这 5 个错误的版本

svn merge -r1575:1570 .

注意:-r1575:1570表示从 1575 反向合并到 1570(不包括 1570),也就是撤销 1571~1575 的更改。

或者

svn merge -c -1575,-1574,-1573,-1572,-1571 .

如果这些错误提交和后续的正确提交修改了相同文件,可能会产生冲突,需要手动解决。

检查冲突:

svn status

解决冲突后,标记为已解决:

svn resolve --accept working 冲突文件路径

提交撤销更改

svn commit -m "Revert changes from r1571 to r1575, restore to r1570 state"

撤销提交后,运行测试确保代码回到正确状态,并与 r1570 的版本进行比较:

svn diff -r1570:HEAD

注意事项

这种方法不会删除历史记录,只是在最新版本上添加一个"反向修改"的提交,历史记录中仍然保留 r1571~r1575,但内容被撤销。

如果后续正确提交(r1576~r1578)依赖于错误提交的内容,可能需要手动调整代码逻辑。

如果你希望彻底删除历史记录(不推荐,会破坏版本连续性),可以使用 svnadmin dump和 filter工具,但这需要仓库管理员权限,并且会影响所有用户。

相关推荐
鶴哥只手遮天4 小时前
Apache Subversion 1.15 源码深度剖析-第 3 章 文件系统层(FS 抽象与 FSFS 后端)
svn·开源
鶴哥只手遮天4 小时前
Apache Subversion 1.15 源码深度剖析-第 6 章 工作副本:WC-NG 与 pristineless
svn·开源
解道Jdon2 天前
FigCraft把Figma用Rust从零重写了一遍
ide·windows·git·svn·eclipse·github·visual studio
Peter(阿斯拉)9 天前
[macOS Tahoe 26]_[使用SmartSVN访问库路径报错的问题]
macos·svn·tahoe·smartsvn·macos26
inferno11 天前
SVN学习笔记(二)
笔记·学习·svn
inferno13 天前
SVN服务端下载、安装与配置(Windows版)
svn
mhmh12313 天前
SVN 版本控制从入门到实战:安装、配置与日常使用指南
svn
inferno13 天前
SVN学习笔记(一)
笔记·学习·svn
解道Jdon1 个月前
JDK 27发布:紧凑对象头、G1默认、量子安全TLS
ide·windows·git·svn·eclipse·github·visual studio
User_芊芊君子1 个月前
RapidSVN 鸿蒙 PC 适配全记录:用 ArkUI 重建工作台,打通本地 SVN 操作闭环
华为·svn·harmonyos