我心不在焉地在我的svn主干中找到一个文件夹而不是分支它。我可以把它还给我,但我担心我会失去历史。如何最好地撤消?
编辑:我应该清楚我在存储库上进行了移动,而不是我的工作副本,所以这是一个自动提交。
答案 0 :(得分:4)
请参阅有关Undoing Changes的subversion手册,以便撤消您的错误更改。
您可以使用svn merge来“撤消” 改变你的工作副本,然后 提交本地修改 库。你需要做的就是 指定反向差异。 (您可以 通过指定--revision来完成此操作 303:302,或通过等效 - 改变 -303。)
svn merge -c -303 http://svn.example.com/repos/calc/trunk
答案 1 :(得分:3)
答案 2 :(得分:1)
如果您没有提交:
svn revert PATH
答案 3 :(得分:0)
最好在错误提交之前将最新版本复制到同一路径。
心不在焉的举动
svn mv -m 'move it!' \
http://svn.example.com/repos/calc/trunk \
http://svn.example.com/repos/calc/foo
在移动前检查日志中的最新版本
svn log http://svn.example.com/repos/calc/trunk
...
------------------------------------------------------------------------
r17610 | john.doe | 2017-08-01 11:02:43 -0300 (tue, 01 aug 2017) | 1 line
move it!
------------------------------------------------------------------------
r17581 | john.doe | 2017-07-31 17:42:57 -0300 (mon, 31 jul 2017) | 1 line
fix bug
------------------------------------------------------------------------
将最后一个好的版本17581复制到HEAD
svn mv -m 'fix absently minded move' \
http://svn.example.com/repos/calc/trunk@17581 \
http://svn.example.com/repos/calc/trunk
这将完全保留您的历史(包括心不在焉的行动)