Скопируйте файлы SVN: игнорировать при ветвлении - PullRequest
0 голосов
/ 30 июля 2009

У меня есть репозиторий Subversion с каталогами, которые содержат обычные управляемые исходным кодом файлы, но в дополнение к этому они содержат файлы, которые являются зависимостью для выполнения, но не проверены в управлении исходным кодом и вместо этого добавлены как svn: ignore (поскольку хранить в двух экземплярах по всему репо, если они были отмечены во всех папках). (верьте мне или нет, но есть причина, по крайней мере, наполовину хорошая для такого дублирования игнорируемых файлов ;-))

Иногда я хочу разветвляться и делать локальную копию каталога, чтобы выполнить определенную заданную задачу разработки, а затем слиться обратно в ствол после нескольких проверок. Когда я беру такую ​​копию / ветку папки, есть ли способ заставить ее скопировать все файлы, включая svn: ignored, а также в только что созданную рабочую копию папки филиала (сейчас я копирую их рука после того, как использовала черепаху для создания ветки) (но, конечно же, все еще храните: игнорируемые файлы в репозитории)

Заранее большое спасибо за помощь!

Ответы [ 2 ]

3 голосов
/ 30 июля 2009

Нет, нет способа сделать это. Основное назначение свойства svn: ignore - НЕ хранить игнорируемые файлы в хранилище. Как сервер может угадать, какие файлы у вас есть на вашем компьютере?

0 голосов
/ 30 июля 2009

Я считаю, что ответ отрицательный, потому что Subversion ничего не знает об этих файлах, она думает, что вы действительно хотите, чтобы они всегда игнорировались. Фактически, один из методов ветвления включает копирование из одной точки в хранилище в другую (URL -> URL, тогда как вы, вероятно, говорите о копировании из рабочей копии в ветвь), и в этом случае равно нет "игнорируемых" файлов, поскольку он копируется непосредственно между битами хранилища.

Хотя я не понимаю, почему разработчики Subversion не смогли добавить новую функцию, позволяющую автоматически копировать svn:ignore 'd файлы при копировании из рабочей копии (WC -> URL или WC -> WC).

Может быть нетрудно написать скрипт, который проверяет свойства svn: ignore и сопоставляет (как svn) эти файлы, а затем копирует их также.

Команда

svn status --no-ignore | grep '^I'

должен предоставить вам список всех игнорируемых файлов. Пройдите через sed, чтобы очистить строку, затем xargs, и вы сможете быстро скопировать файлы. Хотя и не автоматически, это то, что вы ищете.

...