从SVN remote repo中删除目录/文件,而不删除本地无版本副本

从SVN remote repo中删除目录/文件,而不删除本地无版本副本,svn,Svn,处理“取消版本控制”本地文件/目录的问题,因此您可以将它们保留在本地,但它们会从远程repo中删除。我有一些相反的问题-另一个开发人员提交了一些XCode项目目录,这些目录应该是每个用户的。我无法在本地签出此目录,因为我已经有一个本地无版本的目录。如果我直接从回购协议中删除它们,我担心我们的本地副本在更新时都会被删除 总结如下: -开发者和我都有一个包含几个文件的本地文件夹 -开发人员将其目录提交给SVN -开发人员的工作副本包含版本控制的 -我的工作副本包含无版本,不允许我更新 在两种情况下,

处理“取消版本控制”本地文件/目录的问题,因此您可以将它们保留在本地,但它们会从远程repo中删除。我有一些相反的问题-另一个开发人员提交了一些XCode项目目录,这些目录应该是每个用户的。我无法在本地签出此目录,因为我已经有一个本地无版本的目录。如果我直接从回购协议中删除它们,我担心我们的本地副本在更新时都会被删除

总结如下: -开发者和我都有一个包含几个文件的本地文件夹 -开发人员将其目录提交给SVN -开发人员的工作副本包含版本控制的 -我的工作副本包含无版本,不允许我更新

在两种情况下,这里的最佳路线是什么:

  • 开发人员可以帮助解决问题
  • 我必须做每件事,尽量不破坏开发人员的工作副本

  • 谢谢!我们使用的是SVN 1.6存储库。

    您可以远程删除文件,而无需签出特定的工作副本:

     $ svn rm -m "Removing user property" http://repo/svn/project/.userprops
    
    但是,您始终可以在计算机上的其他位置签出新的工作目录,并从中删除。我推荐这种方法,因为它允许您在提交更改之前检查和验证您正在做的事情。此外,您还可以通过反向合并撤消错误的修订

    假设每个用户错误添加这些文件的版本是版本43210:

    $ mkdir temp
    $ cd temp                # New clean directory for new clean checkout
    $ svn co http://repos/svn/project/trunk project-trunk
    $ cd project-trunk
    $ svn merge -c -43210    # Removes the bad revision
    $ svn commit -m"Reversing revision 43210 because of bad pre-user files added"
    
    就这样


    顺便说一句,我有一个方法可以防止这种情况再次发生。您可以简单地将其配置为不允许用户在您的项目中添加和提交这些每个用户的文件。

    如果我以正常方式从SVN中删除这些文件,当我更新时,SVN不会发出“啊,您在本地删除了这些文件,我将删除它们”?只有在您没有更改本地文件的情况下。然后,通过执行
    svncat-rPREV$filename
    始终可以将其取回。如果进行了更改,则在更新过程中会出现冲突。它会说本地编辑,更新时输入删除。执行
    svn解析的$filename
    ,然后执行
    svn rm--保留本地$filename