2009-08-26 4 views
6

Есть ли какой-либо способ с subversion или любым другим VCS, который я могу сохранить извлеченные файлы в каталоге .svn в другом месте, а затем каталог, в котором они «принадлежат». Например, имея некоторый каталог toplevel/work/my-source-tree и a/work/my-source-tree-svn?Избавление от .svn-файлов во всех каталогах

Я знаю, почему файлы дублируются в каталогах .svn (быстрое обнаружение измененных файлов при регистрации и простая поддержка инструментов). Но я часто хочу сделать резервную копию файлов, например, на USB-накопителе, а перенос двойного количества файлов - это showstopper.

ответ

5

svk - это слой поверх подрывной деятельности, который добавляет несколько дополнительных функций. Одна из ключевых особенностей заключается в том, что метаданные хранятся в $ HOME/.svk/вместо каждой рабочей копии. Это отделяет два и облегчит ваши резервные копии и уменьшит рабочие копии.

Плюс, он также предоставляет некоторые функции управления распределенной версией, такие как git и другие, но все еще использует svn в качестве бэкэнд. Возможно, стоит попробовать.

+0

link dead ...... –

+0

SVK был снят с производства. Используйте экспорт svn. – jmanning2k

10

Используйте svn export, чтобы скопировать файлы в чистый каталог (т. Е. Ваш USB-накопитель). Он не будет копировать каталоги .svn. Это также работает для рабочих копий:

svn export <path-to-working-copy> <destination-directory> 
8

С помощью систем управления CVS, SVN и других версий вы можете экспортировать. Это позволяет получить копию кода без .svn или других скрытых каталогов.

SVN Export documentation

+0

Ну, а что, если хотите, чтобы мои файлы проекта были дома, чтобы что-то закончить, прежде чем я зарегистрирую? Извините, что экспорт не является ответом, который я хотел услышать. – Lothar

+0

В этом случае svk скорее всего вы хотите: p – BrianV

3

Вы могли резервную копию на флешку с помощью Rsync, а также использовать --cvs-исключает вариант. В зависимости от вашей версии это может не работать для файлов subversion, поэтому try --exclude = '. Svn/*'

1
cd svn-local-dir 
find . -name .svn | xargs rm -rf 
+1

Вы можете опустить трубопровод на 'xargs', если вы используете опции' -exec', т. Е. 'Find. -name .svn -exec rm -rf {} \; ' –

0

FWIW, это уже не проблема в Subversion 1.7.

Вместо каталога .svn в каждом каталоге рабочей копии рабочие копии Subversion 1.7 имеют только один .svn-каталог - в корне рабочей копии. (Subversion 1.7 Release Notes)