Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
svn删除后是否可以恢复文件?_Svn - Fatal编程技术网

svn删除后是否可以恢复文件?

svn删除后是否可以恢复文件?,svn,Svn,我试图弄清楚我们是否需要减少拥有svn管理权限的开发人员的数量 1-如果subversion用户意外删除并提交对文件或文件夹的删除,如何恢复该文件 2-如果subversion用户具有svn管理权限,则在客户端上执行的svn delete是否表现不同(更持久) 目标:Red Hat Enterprise Linux(RHEL)5.2下的svn命令行客户端 1-可以使用SVN撤消所有操作。甚至rm(或delete)命令也可以撤消 2-#1适用于每个用户 是,删除的数据可以恢复。只需确定删除信息的版

我试图弄清楚我们是否需要减少拥有svn管理权限的开发人员的数量

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

2-如果subversion用户具有svn管理权限,则在客户端上执行的svn delete是否表现不同(更持久)

目标:Red Hat Enterprise Linux(RHEL)5.2下的svn命令行客户端
  • 1-可以使用SVN撤消所有操作。甚至rm(或delete)命令也可以撤消
  • 2-#1适用于每个用户

  • 是,删除的数据可以恢复。只需确定删除信息的版本,然后“反向合并”提交。大概是这样的:

    svn merge -c -12345 working_copy_path
    svn commit working_copy_path
    
    -12345表示“反向合并修订版12345”


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

    只需签出文件仍然存在的修订:

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

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

    有关从“版本控制与Subversion”一书中恢复删除的详细讨论,请参见:


    请参阅我对timdev答案的评论。反向合并更改将保留相关文件的历史记录。Mark,感谢您提供的简明答案和示例。关于“管理”svn用户的概念及其危险性,我被误导了。听起来主要的危险来自svn服务器的管理员,而不是svn用户。我知道,任何可以从svn客户端完成的操作(服务器管理员权限未连接到其svn用户权限)都可以通过指向早期版本来取消。再次感谢,谢谢你所有的好答案。我知道svn客户端所做的任何事情都只是做一个新的修订,所有以前的修订仍然可以访问。我的错误是混淆了svn服务器管理员权限(破坏性权限)和svn用户权限(非破坏性权限)。只需确保服务器已备份。:-)