У меня есть каталог /packages с одним файлом, который я хочу зафиксировать и посмотреть. Однако, если добавляются новые вещи, я бы хотел их игнорировать. Это возможно?
возможно ли для subversion игнорировать все содержимое каталога, кроме одного файла?
Ответы (5)
Если файл соответствует шаблону игнорирования, ничто не мешает вам вручную добавить этот файл в SVN. Затем SVN будет отслеживать этот файл как обычно, вы можете без труда зафиксировать изменения и увидеть изменения. Единственное, на что влияет список игнорирования, это новые файлы, которые не находятся под контролем версий.
Это можно сделать с помощью функции хука предварительной фиксации. Вы можете игнорировать все имена файлов, кроме этого файла, чтобы зафиксировать. См. эту ссылку для получения дополнительной информации http://pear.php.net/manual/en/package.php.php-codesniffer.svn-pre-commit.php
Вы всегда можете попробовать использовать функцию списков изменений — поместите все остальные файлы в свой список изменений игнорирования при фиксации, и они больше не будут вас беспокоить. Хотя это может быть не совсем то, что вы хотите.
Однако вы можете исключить файлы, используя функцию разреженного каталога, установив глубину «исключить». Это работает с отдельными файлами (ну, это работает с TortoiseSVN и опцией «сделать глубину липкой» — файл исчезнет из вашей рабочей копии и не вернется, если вы обновите, если только вы не сбросите глубину каталога)
Будьте осторожны, чтобы установить глубину для файлов, а не для каталога. Любые файлы, добавленные впоследствии, появятся в вашем каталоге, и вам также придется их исключить. Вероятно, можно настроить каталог так, чтобы исключить все, а затем повторно включить только 1 файл, который вы хотите — я не пробовал, сообщите нам, если это сработает.
Добавьте пользовательский хук, который будет работать только с этим файлом. Вы можете закодировать это как пакетный файл или файл perl. Поместите файл в папку пользовательских хуков subversion или папку хуков, и код может быть запущен после фиксации, и вы получите уведомление только для этого файла, а не для других в этой папке.
Я использую Tortoise git и игнорирую пакеты через. .gitignore
файл, как показано ниже. Если я внесу изменения в файл repositories.config
, окно изменений покажет это:
# Visual Studio Nuget package directory
packages/*/
svn:ignore ./packages/*
после фиксации одного файла. - person end-user   schedule 10.12.2013svn:ignore
должно быть помещено в папкуpackages/
со значением*
или*.*
- person Sameer Singh   schedule 10.12.2013