SVN игнорировать файл, но включить его в оформление заказа - PullRequest
9 голосов
/ 10 ноября 2010

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

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

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

Надеюсь, я просто неправильно понял, и решение простое.

Может кто-нибудь помочь?

О, мне нужно решение для командной строки, если возможно. Большая часть работы проделана на безголовых коробках Linux с соединениями только по ssh.

Спасибо!

РЕДАКТИРОВАТЬ : Я пошел с ответом cdhowie. В дополнение к созданию файла конфигурации шаблона (например, app.config.template), как он предлагает, я также использую «svn propedit svn: ignore», чтобы реальное имя файла конфигурации (например, app.config) игнорировалось при фиксации.

Ответы [ 3 ]

11 голосов
/ 10 ноября 2010

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

Например, скажем, у вас есть app.config в качестве файла конфигурации. Вы бы зафиксировали свой как app.config.template или что-то подобное. Пользователи должны будут скопировать и переименовать файл, чтобы начать разработку. app.config будет игнорироваться в SVN.

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

РЕДАКТИРОВАТЬ: Я сказал, что это не работает корректно для обновлений, но подумал, что если разработчики так или иначе сильно меняют этот файл, они, вероятно, не хотят, чтобы вы обновляли их собственные настройки. Использование файла шаблона на самом деле будет проще для ваших разработчиков, поскольку они могут выбирать, какие изменения объединить в себе.

3 голосов
/ 10 ноября 2010

На самом деле есть два подхода к «игнорированию» коммитов в версионном файле.Решение 'template' уже упоминалось @cdhowie.Второй подход использует списки изменений , как описано в этом посте.

svn changelist ignore-on-commit file-you-want-to-add
2 голосов
/ 10 ноября 2010

Вы можете изменить свой проект, чтобы создать предустановленную версию файла, если он не существует.

Файл вообще не будет в SVN, и каждый клиент получит его в первый раззапустите код.

Осуществимость этого зависит от того, как работает ваш проект и где вы можете поместить исполняемый код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...