我不小心将一个文件夹移动到了我的svn主干而不是分支。我可以将它移回来,但我担心会失去历史记录。那么怎样才能最好地撤销这个操作呢?
编辑:我应该明确一点,我在仓库上进行了移动操作,而不是在我的工作副本上,因此这是一个自动提交。
我不小心将一个文件夹移动到了我的svn主干而不是分支。我可以将它移回来,但我担心会失去历史记录。那么怎样才能最好地撤销这个操作呢?
编辑:我应该明确一点,我在仓库上进行了移动操作,而不是在我的工作副本上,因此这是一个自动提交。
如果您需要撤销错误的更改,请参阅关于撤消更改的子版本手册。
您可以使用svn合并在工作副本中“撤消”更改,然后将本地修改提交到存储库。您只需要指定一个反向差异即可(可以通过指定--revision 303:302或等效的--change -303来实现)。
svn merge -c -303 http://svn.example.com/repos/calc/trunk
如果你没有提交它:
svn revert PATH
在同一路径下误提交之前,最好先复制最新版本。
心不在焉的操作。
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
------------------------------------------------------------------------
svn mv -m 'fix absently minded move' \
http://svn.example.com/repos/calc/trunk@17581 \
http://svn.example.com/repos/calc/trunk
这将完全保留您的历史记录(包括偶然的移动)