Как включить/исключить определенный тип файлов в Subversion?
Я запутался с жаргоном include/exclude, и мой фактический SVN-клиент, похоже, не имеет (или мне не удалось его легко найти) простой вариант добавления или удаления определенного типа файлов для контроля версий.
Скажем, например, я добавил всю папку Visual Studio с ее решениями, проектами, отладочными файлами и т.д., но я хочу только обновить фактические исходные файлы. Каким будет самый простой способ сделать это?
Ответы
Ответ 1
Вероятно, вы безопаснее исключать определенные типы файлов, а не собирать те, которые хотите включить, так как тогда вы можете добавить новый тип и не понимать, что он не был версией.
В каждой директории вы можете отредактировать свойство svn: ignore.
Run
svn propedit svn:ignore .
для каждого соответствующего каталога, чтобы вызвать редактор со списком шаблонов для игнорирования.
Затем поместите шаблон в каждую строку, соответствующую типу файла, который вы хотите игнорировать:
*.user
*.exe
*.dll
и что у вас есть.
В качестве альтернативы, как было предложено, вы можете добавить эти шаблоны в свойство global-ignores
в файле ~/.subversion/config (или "%APPDATA%\Subversion\config"
в Windows - см. Конфигурация области конфигурации в красной книге bean для получения дополнительной информации). В этом случае отделите шаблоны с пробелами. Здесь моя. #
в начале строки вводится комментарий. Я проигнорировал файлы Ankh.Load и все файлы *.resharper.user:
### Set global-ignores to a set of whitespace-delimited globs
### which Subversion will ignore in its 'status' output, and
### while importing or adding files and directories.
# global-ignores = *.o *.lo *.la #*# .*.rej *.rej .*~ *~ .#* .DS_Store
global-ignores = Ankh.Load *.resharper.user
Ответ 2
Это может быть достигнуто с помощью свойства svn: ignore или свойства global-ignores в вашем файле ~/.subversion/config
. (Прокрутите до верхней части этой первой ссылки, чтобы увидеть инструкции по редактированию свойств.)
Используя svn propset
или svn propedit
в каталоге, вы сможете заставить Subversion игнорировать все файлы, соответствующие этому шаблону в определенном каталоге. Однако если вы измените глобальные игнорирования в разделе ~/.subversion/config
[miscellany]
, Subversion будет игнорировать такие файлы независимо от того, где они находятся.
Ответ 3
См. сообщение в блоге svn: игнорировать.
Я знаю, используя TortoiseSVN, что я могу нажать на корневую папку, где я что-то проверил и могу добавить произвольные свойства, выбрав пункт меню "Свойства". В этом случае вы просто укажете шаблоны файлов для исключения.
Сообщение в блоге для командной строки, но я уверен, что он будет работать отлично с любым клиентом, который вы используете.
Ответ 4
На самом низком уровне SVN позволяет игнорировать определенные файлы или шаблоны с атрибутом svn: ignore. VS надстройки для SVN, такие как VisualSVN будут автоматически игнорировать эти файлы от вашего имени. Если вы используете TortoiseSVN, вы можете щелкнуть правой кнопкой мыши файлы и папки в проводнике и выбрать "Добавить в список игнорирования".
Ответ 5
Используя свойство svn:ignore
, вы можете использовать подстановочные знаки.
Ответ 6
Другой способ: при использовании TortoiseSVN вы можете выбрать "Commit...", а затем щелкнуть правой кнопкой мыши по файлу и перейти в список изменений "ignore-on-commit".