Подтвердить что ты не робот

SVN игнорируется как .gitignore

В Git, если у меня есть проект с большим количеством проектов внутри, пусть предположим, много проектов Java, я могу просто создайте в корне файл .gitignore, и он будет "соблюдаться" во всем репозитории.

Как я могу сделать это для проекта SVN?

Например, как я могу сделать настройку "svn ignore" (через строку cmd) для .gitignore следующим образом?

*.class
*.jar
*.war
*.ear
target/
.classpath
.settings/
.project
.metadata
bin/

Самая важная часть вопроса: как я могу заставить ее работать с новыми папками внутри корня? Пример:

Я побежал svn propset svn:ignore "*.class" . -R в свой корень и зафиксировал. Ok:

root
- folder1/
-- *.class (ignored)
-- other files (ok)
- folder2/
-- *.class (ignored)
-- other files (ok)

Теперь я создаю папку 3. Предыдущие настройки svn:ignore не применяются, не так ли? Есть ли способ сделать это так?

4b9b3361

Ответ 1

Вы можете использовать svn:ignore. Обычно вам нужно сообщить SVN о применении специальных свойств к файлам:

svn propset svn:ignore "*.jpg" .

(Обратите внимание на точку в конце команды.)

Для нескольких файлов вы можете добавить символ новой строки.

Введите точно так же, как здесь, с разрывами строк:

svn propset svn:ignore "file1
file2
file3" dir1

Убедитесь, что файлы игнорируются:

svn status --no-ignore

Затем выполните код.

И да, многие повторяющиеся вопросы уже доступны.

Вы можете сослаться на мой любимый svn cheatguide.

Вы можете создать файл svn-ignore.txt с вашими игнорированными файлами и каталогами:

*.class
*.jar
*.war
*.ear
 target/
.classpath
.settings/
.project
.metadata
 bin/

Теперь попробуйте следующее:

svn propset svn:ignore -RF /root/svn-ignore.txt . [dot for current dir]

-R для рекурсивного.

Ответ 2

Я решил эту проблему несколько иначе. Это будет работать, только если вы используете оболочку Bash и установите Perl, но это почти все машины Mac и Linux.

Добавьте следующие файлы .bashrc и .bash_profile:

alias _ss="svn status | egrep -v '`cat .svnignore|perl -p -e 's/\n/|/'`'"

Не забудьте перезапустить терминал или сделать:

source ~/.bashrc
(or .bash_profile if that what you used)

Теперь создайте файл с именем .svnignore и поместите его в каталог, в котором выгрузили репозиторий.

files/to/ignore
another/file
tmp
node_modules

Теперь, когда вы запустите

_ss

в корневом каталоге вашей рабочей копии, он будет читать файл .svnignore и игнорировать что-либо в нем.

Я версию файла .svnignore так же, как и версию файла .gitignore.

ПРИМЕЧАНИЕ.. Это влияет только на команду svn status, и это не помешает вам добавлять/записывать проигнорированные файлы.