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