svn删除后可以恢复文件吗?

问题描述:

我想弄清楚我们是否需要减少拥有svn管理员权限的开发人员数量。svn删除后可以恢复文件吗?

1 - 如果颠覆用户意外删除并提交文件或文件夹的删除,该文件如何恢复?

2 - 如果subversion用户拥有svn管理权限,那么在客户端上执行的svn delete会有不同的表现(更持久)吗?

目标:下红帽企业Linux(RHEL)5.2

+0

谢谢你所有的好答案。 我明白任何一个svn客户端只是做了一个新的修订,并且所有以前的修订仍然可以访问。我的错误是将svn服务器管理员权限(破坏力)与svn用户权限(非破坏性)混淆。确保服务器已备份。 :-) – 2010-08-31 13:38:15

是,被删除的数据可以恢复。只需确定哪个版本删除了信息,然后“反向合并”提交。例如:

svn merge -c -12345 working_copy_path 
svn commit working_copy_path 

-12345表示“反向合并修订版本12345”。

请注意,颠覆本身并没有任何“管理”用户的概念。用户对存储库中的任何给定路径具有读取和/或写入权限。另请注意,根据您访问存储库的方式,可能根本没有授权。

+0

马克, 谢谢你的简洁明了的答案和提供的例子。 我一直误解有关“行政”svn用户及其危险的概念。听起来主要的危险来自svn服务器的管理员,而不是svn用户。 我什么都不懂,可以从SVN客户端来完成(服务器管理员权限没有连接到他们的SVN用户权限)可以通过指向回到一个旧的版本未完成。 再次感谢, – 2010-08-31 13:33:36

+0

@Ed:你当然欢迎。 – Mark 2010-08-31 14:38:55

  • 1的svn命令行客户机 - 一切都可以使用SVN撤消。即使是一个RM(或删除)命令也可以撤消。
  • 2 - #1适用于每一个用户

只是检出修改该文件仍然存在:

svn checkout -r <revision> <path to repository> 

现在,您可以再次添加的文件。

+0

请参阅我对timdev的回答的评论。反向合并更改会保留相关文件的历史记录。 – Mark 2010-08-30 20:20:37

的“使用Subversion版本控制”一书从恢复删除的深入讨论可以在这里找到:

http://svnbook.red-bean.com/nightly/en/svn.branchmerge.basicmerging.html#svn.branchmerge.basicmerging.resurrect