这里是问题:如何复制目录树但排除.svn目录?
遍历所有文件和子文件夹复制所有内容除了.svn到另一个位置。
我能想到的一些漂亮的毛茸茸的方法可以做到这一点,但如果有谁知道真正简单的函数来拯救我一点时间,我想知道?谢谢。
这里是问题:如何复制目录树但排除.svn目录?
遍历所有文件和子文件夹复制所有内容除了.svn到另一个位置。
我能想到的一些漂亮的毛茸茸的方法可以做到这一点,但如果有谁知道真正简单的函数来拯救我一点时间,我想知道?谢谢。
可以使用svn export
命令。它将使用工作副本的内容(或存储库上的修订版)填充目标文件夹。
只是一个咨询。 OP想要复制_all contents_,其中可能包含不受版本控制的文件。该文件明确指出'svn export'不会复制_files不受版本控制_。 – MSX 2016-10-11 03:10:54
@msx是的,它可能有,根据字面问题的文字。幸运的是,在单词和短语下面的实际问题是关于版本控制的内容 – xtofl 2016-10-11 16:25:34
@xtofl显然。我完全同意你的看法。接受您的答案为最佳表示OP对解决方案完全满意。我自己正在寻找一个解决方案来复制一切,但'.svn'文件夹和'svn export'不能解决我的问题。因此,我的评论......希望它能腾出时间让其他人寻找类似于我的问题的解决方案。 – MSX 2016-10-12 12:13:44
使用rsync和--exclude
开关。
...虽然在这个特定的情况下,更好的选择是svn export
如果您使用TortoiseSVN,使用导出...
我们有时会使用超越比较(http://beyond-compare.softonic.com/):选择根源目录和目标之一,排除.svn并进行同步。如果您需要重新执行此操作,此功能很有用:将设置保存为项目。
所以用我最近在做这个的快速和肮脏的方法是蟒蛇:
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目录。
正如其他人所说,SVN出口。
但是,你也可以做到这一点很容易使用的Xcopy和排除开关,在这里看到:
http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/xcopy.mspx?mfr=true
这里:http://commandwindows.com/xcopy.htm
第二个环节具有的排除更好的说明开关。
使用Cmd的
Dir/a-d/s/b >>1.txt
,并使用了AutoIt读取文件,更好地利用_FileReadToArray,并在一个循环中,检查文件路径,如果它有一个” .svn'in它
如果AutoIt的是不需要的,你可以使用XCOPY与排除文件:
xcopy "..\source\" "..\destination\" /E /Y /R /exclude:exclude.txt
exclude.txt应包含以下内容:
\.svn\
出于兴趣,并且已经看到了答案。我很愚蠢,但是从颠覆控制中解脱出来的原因是什么?这是一个真正的愚蠢问题! – brumScouse 2010-10-29 17:57:17
我做了类似的事情在工作中备份库的本地副本,因为它是相当大的,每次结账,节省了大量的时间。这只是一个'学习/打破'的副本,不会被检查 - 否则我不会推荐这个。 – 2010-10-29 18:02:22
你应该修改的问题更清楚地说明您正在使用的AutoIt,或删除标记,如果你不需要AutoIt的解决方案。 – 2010-10-29 18:05:02