Я только начал использовать SVN, и у меня есть каталог кеша, который мне не нужен под контролем исходного кода. Как я могу игнорировать весь каталог / папку с SVN?
svn
version-control
directory
Gilean
источник
источник
Ответы:
Установите
svn:ignore
свойство родительского каталога:Если вам нужно игнорировать несколько вещей, разделите их символами новой строки в значении свойства. В этом случае проще изменить значение свойства с помощью внешнего редактора:
источник
svn rm --keep-local dirname
первый. (Мой вывод статистики SVN был огромным, и я некоторое время врезался в это.)svn propset svn:ignore -F file.txt .
svn:ignore
а неsvn::ignore
как я. Вы можете установить произвольные свойства, так что последнее будет установлено ОК, и вы сможете просматривать и редактировать свойство, но это не заставит SVN игнорировать список файлов, которые вы перечисляете.Вот пример структуры каталогов:
Когда
project
вы видите, что ваш каталог кеша не добавлен и отображается как таковой.Чтобы установить свойство игнорировать, выполните
где
svn:ignore
- имя свойства, которое вы устанавливаете,cache
значение свойства и.
каталог, для которого вы устанавливаете это свойство. Это должен быть родительский каталогcache
каталога, которому нужно свойство.Чтобы проверить, какие свойства установлены:
Чтобы увидеть значение
svn:ignore
:Чтобы удалить ранее установленные свойства:
источник
dirname
. Например, при вводеsvn propset svn:ignore dirname
, если вы разрешите оболочке (bash) заполнить для вас dirname, он добавит этот косой черты, оставив вас с командойsvn propset svn:ignore dirname/
, которая не приведет к игнорированию папки. По крайней мере, это был мой опыт.Важно отметить:
В командной строке вы не можете использовать
Это также добавит игнорируемые файлы, потому что командная строка расширяется
*
и, следовательно,svn add
считает, что вы хотите, чтобы все файлы были добавлены. Поэтому используйте это вместо:источник
svn add --force *
НЕ работает. Используйте точку, а не звезду.Поскольку я потратил некоторое время, пытаясь заставить это работать, следует отметить, что если файлы уже существуют в SVN, вам необходимо
svn delete
их отредактировать, а затем отредактироватьsvn:ignore
свойство.Я знаю, что это кажется очевидным, но они продолжали появляться, как
?
в моемsvn status
списке, когда я думал, что это будет просто игнорировать их локально.источник
Чтобы немного расширить, если вы делаете это с помощью инструмента командной строки svn, вам нужно набрать:
который откроет ваш текстовый редактор по вашему выбору, затем наберите '*', чтобы игнорировать все внутри него, и сохраните + выход - это будет включать в себя сам каталог в svn, но игнорировать все файлы внутри него, чтобы игнорировать каталог, используйте команду Путь родителя, а затем введите имя каталога в файле. После сохранения запустите обновление ('svn up') и проверьте соответствующий путь.
источник
Установите
svn:ignore
свойство в родительском каталоге:Это перезапишет любое текущее значение
svn:ignore
. Вы редактируете значение с помощью:Который откроет ваш редактор. Вы можете добавить несколько шаблонов, по одному в строке.
Вы можете просмотреть текущее значение с помощью:
Если вы используете графический интерфейс, для этого должна быть опция меню.
источник
svn ps svn:ignore . 'cachedir'
результаты вcachedir is not under version control
. менялсяsvn ps svn:ignore 'cachedir' .
на работуСпасибо за все вклады выше. Я просто хотел бы поделиться дополнительной информацией из моего опыта, игнорируя файлы.
Когда папки уже находятся под контролем версий
После svn import и svn co файлов, что мы обычно делаем в первый раз.
Весь кэш времени выполнения, папки вложений будут находиться под контролем версий. Итак, перед тем, как svn ps svn: ignore , нам нужно удалить его из хранилища.
С SVN версии 1.5 выше мы можем использовать
svn del --keep-local your_folder
, но для более ранней версии мое решение:.svn
скрытой папки)Когда нам нужно игнорировать более одной папки
svn:ignore
svn pe
вам нужно будет отредактировать текстовый файл, и вы можете использовать эту команду, если требуется, чтобы настроить ваш текстовый редактор с помощью vi :Файл выглядит примерно так:
источник
svn propset svn:ignore -F .ignorethesefiles .
, который будет использовать содержимое файла. Мне нравится держать это, чтобы вы знали, что игнорируется. Редактирование требует последующей установки.Сначала удалите это ...
Если ваш каталог
foo
уже находится под контролем версий, сначала удалите его с помощью:... тогда игнорируй
источник
... и если вы хотите игнорировать более одной директории (скажем ,
build/
temp/
и*.tmp
файлы), вы можете либо сделать это в два этапа (игнорируя первый и редактировать игнорировать свойства (см другие ответы здесь) или один мог бы написать что - то вродев командной строке.
источник
Если вы используете определенный клиент SVN TortoiseSVN , то при фиксации у вас есть возможность щелкнуть правой кнопкой мыши по элементам и выбрать «Добавить в список игнорируемых».
источник
Команда игнорировать несколько записей немного сложна и требует обратной косой черты.
Эта команда будет игнорировать все с именем
cache
,tmp
,null
иand_so_on
в текущем каталоге.источник
svn propset svn:ignore -F .ignorethesefiles .
позволит вам использовать файл. И, как уже упоминалось, у вас всегда есть propedit.У меня были проблемы с тем, чтобы игнорировать вложенные каталоги; верхний каталог, который я хотел игнорировать, не показывался бы с 'svn status', но все подкаталоги делали. Это, наверное, очевидно для всех остальных, но я подумала, что поделюсь этим:
ПРИМЕР:
источник
"Спасибо" svn за такой отвратительный, поддельный и трудный способ игнорировать файлы.
Поэтому я написал скрипт svn-ignore-all :
Также, чтобы игнорировать определенный список файлов / путей, мы можем использовать этот вариант svn-ignore . Я думаю, что svn-ignore-all действительно должно быть похоже на xargs svn-ignore.
Еще одна вещь: я склонен загрязнять мои svn-проверки множеством случайных файлов. Когда приходит время коммитить, я перемещаю эти файлы в «старый» подкаталог и говорю svn игнорировать «старый».
источник
Bash oneliner для множественного игнорирования:
источник
Если каталог вашего проекта называется / Project, а каталог кэша называется / Project / Cache, то вам нужно установить свойство subversion в / Project. Имя свойства должно быть "svn: ignore", а значение свойства должно быть "Cache".
Обратитесь к этой странице в руководстве Subversion для получения дополнительной информации о свойствах.
источник
Ответ Джейсона сделает свое дело. Однако вместо установки svn: ignore на "." в каталоге cache вы можете захотеть включить «cache» в свойство svn: ignore родительского каталога, если каталог кэша присутствует не всегда. Я делаю это на нескольких «одноразовых» папках.
источник
ДЕРЖАТЬ ДИРЕКТОРИИ, КОТОРЫЕ СВН БУДУТ ИГНОРИРОВАТЬ
источник
Если вы используете внешний интерфейс для SVN, такой как TortoiseSVN, или какая-то интеграция с IDE, в том же меню должна быть опция игнорирования, аналогичная операции фиксации / добавления.
источник
Установите свойство svn: ignore . Большинство инструментов пользовательского интерфейса svn имеют способ сделать это, а также обсуждение командной строки в ссылке.
источник
Поскольку вы используете Версии, это действительно очень просто:
источник
Следите за своими косыми чертами. Я обнаружил, что в том числе
images/*
в моем файле настроек игнорирования не игнорировать./images/
. Когда я побежал,svn status -u
он все еще показал? images
. Итак, я просто изменил настройку игнорирования на простоimages
, без косых черт. Запустил проверку статуса, и это очистило его.источник
Решено с Eclipse следующим образом:
Прежде всего, сделайте синхронизацию вашей папки с проектом:
В следующем представлении, командном представлении, вы можете увидеть все ресурсы, которые вы можете зафиксировать на сервере SVN.
Итак, выберите папку ресурса, который вы хотите игнорировать, и затем вы можете игнорировать его, используя
После этого в окне подтверждения выберите первый вариант: «игнорировать по имени».
Например, если я хочу игнорировать целевую папку и их ресурсы .class, я выполню синхронизацию, и в представлении синхронизации я выберу целевую папку. После этого я выберу
до
svn:ignore
и после этого я буду подтвердить первый вариант в окне подтверждения.источник
Потеряв много времени в поисках того, как сделать это простое занятие, я решил опубликовать, что не составило труда найти достойное объяснение.
Сначала позвольте структуре образца
$ svn st? проект / ствол / цель? проекта / багажник / myfile.x
1 - сначала настройте редактор, в mycase vim export SVN_EDITOR = vim
2 - «svn propedit svn: ignore project / trunk /» откроет новый файл, и вы можете добавить свои файлы и подкаталог в нашем случае. Тип «target» сохранить и закрыть файл и работает
$ svn st? проекта / багажник / myfile.x
Спасибо.
источник