svn - svn取消意外签入

  显示原文与译文双语对照的内容

你正在使用 subversion,并且在它准备好之前不小心签了一些代码。 例如,我经常检查一些代码,然后b ) 编辑一点,然后输入,输入以前的命令。

是否可以通过subversion从服务器中收回这样的意外签入?

时间: 原作者:

这可能对SUBVERSION版本不适用,但是我已经把它留在这里,供信息查询使用。

如果你误检了 commit,通常 normally你应该只恢复这个问题的其它答案。 但是,如果要知道如何实际撤消提交的效果并将存储库更改为以前的方式,请执行下列说明:

你通常不希望这样做,但是如果你真的需要从仓库中删除实际提交的版本,那么你可以在储存库中执行nasty的回滚,如下所示:

  • 在这些更改可能破坏存储库( and )的情况下,首先对它的进行备份( 并读取以下假设)
  • 将本地副本还原到以前的版本,这样它就不会被混淆( svn revert -r $((REV-1)) )
  • 在存储库中,删除 db/revs/$REVdb/revprops/$REV
  • 在存储库中,删除 db/current 和( 。用于 subversion 1.6或者更高版本) db/rep-cache.db,并运行 svnadmin recover.
  • ( 可能) 调整对 db/rep-cache.db的权限以防止写入只读数据库错误

这一切都假定:

  • 你正在使用 fsfs -based存储库
  • Subversion版本大于 1.5.0 ( 否则你必须手动编辑 db/current 并更改修订号而不是运行 svnadmin recover. )
  • 未提交其他后续修订
  • 你具有对存储库的文件系统的写访问权限
  • 你不害怕别人试图访问它,而你在上面做

当一个巨大的文件被提交到存储库时,我已经做到了,它不是任何理想的或者正常的练习。

...