SVN:在保留本地更改的同时还原提交

时间:2011-11-01 16:09:27

标签: svn local revert

所以我有一个本地构建文件。

它根本不应该在SVN中,但它确实如此。 (谢谢,以前的维护者!)但是对本地副本进行了更改,这只适用于在它上面的框架上构建。

我搞砸了并提交了一个提交此本地构建文件的提交。现在SVN repo副本有这些局部变化;这很糟糕。

如何返回现状,其中本地更改位于本地副本中,而不是SVN仓库,后续{{1} }不会覆盖本地更改吗?

4 个答案:

答案 0 :(得分:2)

  1. 使用本地更改来备份文件。
  2. 在文件上显示日志,并在不需要的更改之前将此文件还原到修订版(使用具有给定修订号的更新)
  3. 提交文件
  4. 更新整个工作副本
  5. 恢复在步骤1完成的备份
  6. 您可以使用更改列表或锁定文件以避免再次犯同样的错误。

答案 1 :(得分:0)

  1. 如果更改的文件已版本化(除了将设置添加到ignore-list之外),则无法存储在WC“仅本地”更改中
  2. 您可以通过反向合并撤消任何先前的提交

答案 2 :(得分:0)

对我来说这个有用:

> svn st
M       0027
> svn info 0027 | grep URL
URL: svn://localhost/xxx/trunk/0027
> svn rm -m "remove accidently checked in file" svn://localhost/xxx/trunk/0027
Revision ...
> svn update
   C 0027
At revision 42.
Summary of conflicts:
  Tree conflicts: 1
> svn revert 0027
Reverted '0027'
> svn status
?       0027

所以文件0027仍然存在,它有旧内容但不再存在于回购中。

答案 3 :(得分:0)

如果您的文件不应该版本化,您可以取消版本:

svn rm --keep-local filename

这将保留任何本地文件,但SVN将停止跟踪它。