Как я могу скопировать дерево каталогов, но исключить .svn каталоги? - PullRequest
7 голосов
/ 29 октября 2010

Вот проблема:

Перебирать все файлы и подпапки, копируя все содержимое, КРОМЕ .svn в другое место.

Я могу придумать несколько причудливых способов сделать это, но мне интересно, знает ли кто-нибудь действительно простую функцию, чтобы сэкономить мне немного времени? Спасибо.

Ответы [ 8 ]

20 голосов
/ 29 октября 2010

Вы можете использовать команду svn export.Он заполнит целевую папку содержимым рабочей копии (или ревизией в хранилище).

5 голосов
/ 29 октября 2010

Используйте rsync и переключатель --exclude.

… хотя в данном конкретном случае лучшим вариантом будет svn export

3 голосов
/ 29 октября 2010

Как уже говорили другие, svn export.

Однако вы также можете легко сделать это, используя Xcopy и переключатель исключения, см. Здесь:

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

и здесь: http://commandwindows.com/xcopy.htm

Вторая ссылка имеет гораздо лучшее описание переключателя исключения.

3 голосов
/ 29 октября 2010

Мы иногда используем Beyond Compare (http://beyond -compare.softonic.com /): выберите корневой исходный каталог и каталог назначения, исключите .svn и выполните синхронизацию.Это полезно, если вам нужно сделать это снова: сохранить настройки как проект.

1 голос
/ 29 октября 2010

Итак, мой быстрый и грязный способ сделать это недавно - использовать 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.

0 голосов
/ 02 сентября 2014

Если autoit не требуется, вы можете использовать xcopy с файлом исключения:

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

exclude.txt должен содержать:

\.svn\
0 голосов
/ 18 января 2013

Использовать Cmd

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

и используйте AutoIt для чтения файла, лучше используйте _FileReadToArray, и в цикле проверьте путь к файлу, если в нем есть «.svn»

0 голосов
/ 29 октября 2010

Если вы используете TortoiseSVN, используйте Экспорт ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...