2010-10-29 116 views
7

這裏是問題:如何複製目錄樹但排除.svn目錄?

遍歷所有文件和子文件夾複製所有內容除了.svn到另一個位置。

我能想到的一些漂亮的毛茸茸的方法可以做到這一點,但如果有誰知道真正簡單的函數來拯救我一點時間,我想知道?謝謝。

+2

出於興趣,並且已經看到了答案。我很愚蠢,但是從顛覆控制中解脫出來的原因是什麼?這是一個真正的愚蠢問題! – brumScouse 2010-10-29 17:57:17

+0

我做了類似的事情在工作中備份庫的本地副本,因爲它是相當大的,每次結賬,節省了大量的時間。這只是一個'學習/打破'的副本,不會被檢查 - 否則我不會推薦這個。 – 2010-10-29 18:02:22

+2

你應該修改的問題更清楚地說明您正在使用的AutoIt,或刪除標記,如果你不需要AutoIt的解決方案。 – 2010-10-29 18:05:02

回答

20

可以使用svn export命令。它將使用工作副本的內容(或存儲庫上的修訂版)填充目標文件夾。

+0

只是一個諮詢。 OP想要複製_all contents_,其中可能包含不受版本控制的文件。該文件明確指出'svn export'不會複製_files不受版本控制_。 – MSX 2016-10-11 03:10:54

+0

@msx是的,它可能有,根據字面問題的文字。幸運的是,在單詞和短語下面的實際問題是關於版本控制的內容 – xtofl 2016-10-11 16:25:34

+0

@xtofl顯然。我完全同意你的看法。接受您的答案爲最佳表示OP對解決方案完全滿意。我自己正在尋找一個解決方案來複制一切,但'.svn'文件夾和'svn export'不能解決我的問題。因此,我的評論......希望它能騰出時間讓其他人尋找類似於我的問題的解決方案。 – MSX 2016-10-12 12:13:44

5

使用rsync和--exclude開關。

...雖然在這個特定的情況下,更好的選擇是svn export

0

如果您使用TortoiseSVN,使用導出...

3

我們有時會使用超越比較(http://beyond-compare.softonic.com/):選擇根源目錄和目標之一,排除.svn並進行同步。如果您需要重新執行此操作,此功能很有用:將設置保存爲項目。

1

所以用我最近在做這個的快速和骯髒的方法是蟒蛇:

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目錄。

0

使用Cmd的

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

,並使用了AutoIt讀取文件,更好地利用_FileReadToArray,並在一個循環中,檢查文件路徑,如果它有一個」 .svn'in它

0

如果AutoIt的是不需要的,你可以使用XCOPY與排除文件:

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

exclude.txt應包含以下內容:

\.svn\