是否有svn命令仅从客户端删除文件?

是否有svn命令仅从客户端删除文件?,svn,Svn,在perforce中,您可以发出“sync to none”命令从客户端删除文件,但在仓库(或svn术语中的存储库)中保持文件不变 p4同步…#无 svn中是否有类似的命令 编辑: 感谢到目前为止已经回答的人 澄清: 我不想在目录上使用rm-rf,因为它将删除所有文件,即使是仅本地的文件。我也不想手动删除客户端和存储库中的单个文件 “p4 sync…#none”命令允许我从客户机中删除文件,这些文件位于仓库/存储库中,只保留本地文件 对于一小部分文件来说,这不是什么大问题,但是对于大量文件来说

在perforce中,您可以发出“sync to none”命令从客户端删除文件,但在仓库(或svn术语中的存储库)中保持文件不变

p4同步…#无

svn中是否有类似的命令


编辑:

感谢到目前为止已经回答的人

澄清:

我不想在目录上使用rm-rf,因为它将删除所有文件,即使是仅本地的文件。我也不想手动删除客户端和存储库中的单个文件

“p4 sync…#none”命令允许我从客户机中删除文件,这些文件位于仓库/存储库中,只保留本地文件


对于一小部分文件来说,这不是什么大问题,但是对于大量文件来说,手工操作很痛苦。

您只需在本地删除文件(使用操作系统的delete命令)。不过,下次更新工作副本时将重新创建该文件

此外,从1.5版开始,您可以进行稀疏签出,在这里您可以省略将存储库的某些部分写入工作副本。但如果我没记错的话,这在目录上有效,而不是在单个文件上

以下是发行说明中描述稀疏签出功能的部分:


这里是SVN手册的相应章节:

那么您基本上想要删除所有版本控制和未修改的文件

您可以编写一个脚本,遍历所有文件并对其调用“svn状态”,删除“svn状态”给出空输出的文件


编辑:一个天真的python脚本,用于删除未修改的文件。保持未版本和本地修改的文件。。。这很慢,最好发出一个“SVNStat-v”并解析它。该脚本只删除文件,不接触文件夹

import os
from subprocess import *

def isUnchangedInRepo(name):
    output = Popen(["svn","stat",name], stdout=PIPE).communicate()[0]
    return len(output) == 0

for dirname, dirnames, filenames in os.walk('.'):
    for filename in filenames:
        testfile = os.path.join(dirname, filename)
        if(testfile.find("\\.svn") == -1) and isUnchangedInRepo(testfile):
            print testfile
#           os.remove(testfile)

使用OrtoiseSVN,您可以创建本地化到该机器的忽略模式。不确定这是否适合你的情况


很好的概述。

如果您只想删除存储库中的文件,而不想删除仅在本地可用的文件,您可以(在Linux/cygwin上)使用一个简单的shell脚本来完成此操作,以及

 svn  st -v | cut -c '41-' | xargs echo rm
注意:删除
echo
以真正删除任何内容)

但是,这将删除存储库中的任何文件,而不管本地修改状态如何。

使用

svn rm folderToDelete --keep-local
使用OrtoiseSVN时,按住shift键,同时右键单击文件夹以显示,然后选择“删除(保留本地)”。

使用Subversion 1.6.0

svn update --set-depth exclude <file>
svn更新--设置深度排除

这将从工作副本中删除该文件,并标记该文件在更新时不应返回。

或者创建修补程序。这将在修补程序文件中记录所有本地更改

在乌龟中:右键单击->乌龟VN->创建补丁。您可以稍后将此修补程序文件应用于另一个工作副本


另外,您没有提到为什么要这样做,但上面的内容可能是您真正需要的。

谢谢您的链接。我更新了我的问题,以澄清我不想使用delete或rm的确切原因。这不正是他想要的吗?@R.Bemrose:它看起来确实与我阅读文档时想要的相反。抱歉,我从未使用过Performance,所以我不确定“同步到无”到底有什么作用。如果与我在这里提到的相反,那么:导出文件夹(或删除所有.svn文件夹),然后运行“svn update parentfolder--depth=files”