如何复制目录树但排除.svn目录?

时间:2010-10-29 17:51:00

标签: svn

问题在于:

遍历所有文件和子文件夹,将所有内容复制到另一个位置。

我可以想到一些非常多毛的方法来做到这一点,但我想知道是否有人知道一个真正的简单功能,以节省我一点时间?感谢。

8 个答案:

答案 0 :(得分:20)

您可以使用svn export命令。它将使用工作副本的内容(或存储库中的修订)填充目标文件夹。

答案 1 :(得分:5)

使用rsync和--exclude开关。

......虽然在这种特定情况下,更好的选择是svn export

答案 2 :(得分:3)

我们有时会使用Beyond Compare(http://beyond-compare.softonic.com/):选择根源目录和目标源目录,排除.svn并进行同步。如果您需要再次执行此操作,这非常有用:将设置保存为项目。

答案 3 :(得分:3)

正如其他人所说,svn export。

但是,您也可以使用Xcopy和排除开关轻松完成此操作,请参见此处:

http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/xcopy.mspx?mfr=true

在这里:http://commandwindows.com/xcopy.htm

第二个链接对排除开关有更好的描述。

答案 4 :(得分:1)

所以我最近快速而肮脏的做法是使用python:

for root, dirs, files in os.walk(inRootDirArg):
        for d in dirs: 
            if d.startswith('.'):#excludes directories that start with '.'
                continue
            ...<logic to move your desired directories>...

此解决方案忽略以“。”开头的任何目录,但如果我需要更具体,则不难修改它以省略.svn目录。

答案 5 :(得分:0)

如果您使用的是TortoiseSVN,请使用导出...

答案 6 :(得分:0)

使用Cmd

Dir/a-d/s/b >>1.txt

并使用AutoIt读取文件,更好地使用_FileReadToArray,并在循环中检查文件路径是否有'.svn'in

答案 7 :(得分:0)

如果不需要自动,您可以将xcopy与排除文件一起使用:

xcopy "..\source\" "..\destination\" /E /Y /R /exclude:exclude.txt

exclude.txt应包含:

\.svn\