Как удалить каталог в SVN-хранилище и установить его в svn: ignore одновременно? - PullRequest
1 голос
/ 09 августа 2009

Я хочу удалить каталог в репозитории через командную строку. В то же время я не хочу распространять это изменение в Subversion на локальную рабочую копию.

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

Ответы [ 3 ]

1 голос
/ 09 августа 2009

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

Вместо удаления, более безопасная миграция может быть на переименовать проблемный каталог (в нечто вроде dir.old, а затем добавить svn: ignore к исходному имени каталога. Затем вы можете сказать людям, что нужно вручную скопируйте их каталог обратно к исходному имени, прежде чем полностью его удалить.

В зависимости от типа файлов в этом каталоге, вы можете также сохранить его постоянно, чтобы разработчики могли синхронизировать свои изменения. В этом случае вы можете дать понять, что это каталог шаблонов, назвав его как-то вроде dir.tmpl, чтобы он не использовался напрямую.

1 голос
/ 09 августа 2009

Насколько я знаю, это невозможно. svn:ignore ничего не сделает, когда файлы на самом деле версионируются.

Это делает что-то вроде этого несколько опасным, поскольку у людей могут быть локальные изменения, которые они хотят сохранить. Если они не обращают внимания, они могут потерять их.

0 голосов
/ 09 августа 2009

Здесь украденный ответ на другой вопрос (спасибо Maciej Łebkowski !):

Из моего опыта: не помещайте этот файл под контроль версий и не используйте svn: ignore.

В начале это немного сложно, так как вы не можете игнорировать файл, который уже находится под контролем версии, и вы не можете удалить файл из управления версиями, не удаляя его с жесткого диска (и из каждой рабочей копии в следующем обновить ...). Но когда вам, наконец, удастся правильно настроить репо, все работает как шарм Не забудьте добавить шаблон-шаблон вместо исходного файла конфигурации (чтобы все знали о новых переменных конфигурации и т. Д.).

Для нового репо:

mkdir config
SVN добавить конфигурацию
svn propset svn: игнорировать конфигурацию * .conf

Для существующего репо: убедитесь, что у вас есть резервная копия вашей конфигурации в каждой рабочей копии, затем удалите (svn del) config из репозитория, подтвердите (пожалуйста, обратите внимание: файл будет удален в каждой рабочей копии при следующем обновлении) ! у вас должна быть резервная копия), а затем восстановите файл и установите свойство ignore.

Другой способ - это замок. Это гарантирует, что никто не фиксирует файл, но это приведет к ошибке при каждой фиксации. не очень приятно.

И третий способ - ревизии, новая функция в клиентах SVN 1.5. Это аккуратно, но это относится только к одной рабочей копии, а не к хранилищу глобально. И вам нужно настроить их вручную, добавить каждый новый файл - это сложно поддерживать.

...