Автоинструменты и контроль версий - PullRequest
6 голосов
/ 02 февраля 2011

Я знаю, это глупый вопрос.Предположим, у меня есть библиотека, использующая систему сборки autotools.У меня есть все это configure, configure.ac, Makefile.am, config.h и, возможно, другие файлы в корневой папке моего проекта.Некоторые из них были написаны разработчиком, другие - с помощью автоинструментов.

Вопрос: если я использую систему контроля версий (в моем случае - hg) - какой из всех файлов автоинструментов должен отслеживатьсяVCS и что не должно (hgignore'd)?

Спасибо, Серж

Ответы [ 2 ]

10 голосов
/ 02 февраля 2011

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

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

4 голосов
/ 02 февраля 2011

Об этом есть две школы мысли:

  1. «Я хочу видеть проект точно таким, каким он был во время / версия X»
  2. «Я всегда могу заново сгенерировать все, что было сгенерировано позже»

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

В вашем примере configure и config.h оба (вероятно) автоматически сгенерированы, поэтому, если вы собираетесь включить их в управление версиями, я бы тоже хотел включить Makefile.in s.

В моих проектах это обычно означает наличие не более связанных с автоинструментами файлов, чем configure.ac, Makefile.am, документации, если это GNU, и директории с именем m4, которая включает в себя любые нестандартные / нестандартные макросы, которые требуются моему configure.ac .

...