svn delete后能否恢复文件?

6

我正在思考是否需要减少具有svn管理员权限的开发人员数量。

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

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

目标:Red Hat Enterprise Linux (RHEL) 5.2下的svn命令行客户端。


感谢您提供的所有好答案。我明白svn客户端所做的任何事情都只是创建一个新版本,而所有先前的版本仍然可以访问。我的错误在于混淆了svn服务器管理员权限(破坏性能力)和svn用户权限(非破坏性)。只要确保服务器已备份即可。 :-) - Ed of the Mountain
4个回答

6

是的,已删除的数据可以恢复。只需确定哪个版本删除了信息,然后“反向合并”提交。类似于以下内容:

svn merge -c -12345 working_copy_path
svn commit working_copy_path

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

请注意,Subversion本身没有任何“管理”用户的概念。用户对存储库中任何给定路径是否具有读取和/或写入权限取决于其个人设置。此外,请注意,根据您访问存储库的方式,可能实际上根本没有授权。


马克,感谢您清晰简洁的回答和提供的示例。我之前对“管理”svn用户及其危险性的概念存在误解。听起来主要的危险来自svn服务器的管理员,而不是svn用户。我明白任何可以从svn客户端执行的操作(服务器管理员权限与他们的svn用户权限无关)都可以通过指向早期版本来撤消。再次感谢, - Ed of the Mountain

0
  • 1 - 使用SVN可以撤销所有操作,即使是rm(或delete)命令也可以撤销。
  • 2 - #1适用于所有用户。

0

只需检查文件仍然存在的修订版本:

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

现在你可以再次添加文件。


请查看我对timdev答案的评论。反向合并更改将保留相关文件的历史记录。 - Mark

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接