.hgignore не работает

Я создал файл .hgignore, но перед этим отправил структуру проекта на сервер. Теперь hgignore не работает для тех файлов, которые были отправлены ранее. Я где-то читал, что мне нужно удалить эти файлы и каталоги из списка отслеживания или добавить их каким-то «частным» способом, но я не могу понять, как мне это нужно сделать. Проблема еще более сложна, потому что я написал сценарий sh, который копирует часть этой структуры в другое место (проект состоит из некоторых клиентских приложений и сервера www, эти файлы сервера копируются в другое место после каждой команды hg push). Итак, я хочу игнорировать некоторые файлы (но хочу, чтобы эти файлы существовали на сервере, просто отправленные один раз с некоторой конфигурацией), и я хочу скопировать эти игнорируемые файлы с помощью моего сценария sh (наиболее важным в этом сценарии является тот факт, что я использую 'hg archive' для обработки того, что я хочу скопировать). Надеюсь, это кому-то понятно :)


person sennin    schedule 21.03.2012    source источник


Ответы (2)


.hgignore игнорирует только файлы, которые еще не были добавлены в репозиторий. Используйте hg forget, чтобы остановить отслеживание уже добавленного файла.

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

person Mark Tolonen    schedule 22.03.2012

По сути, Марк Толонен уже сказал все важное в своем ответе.

Я просто хотел добавить пример этой части его ответа:

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

Некоторое время назад я ответил на аналогичный вопрос с подробным примером:
как игнорировать файлы в печи / mercurial с помощью tortoise hg, которые являются частью репозитория

Хотя мой ответ касается Visual Studio (которую вы, по-видимому, не используете, судя по вопросам, которые вы задавали до сих пор), но она может помочь вам понять основную идею, поэтому вы сможете легко адаптировать ее к любому другая среда.

person Christian Specht    schedule 23.03.2012