Не следует хранить под контролем версий файлы, которые не редактируются вручную. Это означает, что любой сгенерированный файл должен игнорироваться системой контроля версий. Я в основном поставил only следующее под контролем версий:
configure.ac
Makefile.am
- файлы документации, такие как
AUTHORS
, NEWS
и т. Д.
Makefile.am
в подкаталогах
Чтобы решить вопрос о наличии «готовой к установке» версии, созданной Scharron, некоторые люди включают в корневой каталог проекта скрипт, называемый bootstrap
или autogen.sh
, который вы запускаете один раз при проверке свежая копия. Вы можете увидеть пример в одном из моих проектов здесь . Для более простого проекта ваш autogen.sh
действительно должен состоять только из одной строки:
autoreconf --install || exit 1
хотя некоторые люди предпочитают запускать ./configure
автоматически в конце autogen.sh
.
Почему бы не отслеживать все созданные файлы в системе управления версиями? Поскольку их содержимое зависит от машины, на которой вы строите, версии автоинструментов, с которой вы их сгенерировали, и фазы луны. Каждый раз, когда происходит любое из этих изменений, сгенерированные файлы автоинструментов изменяются, и вы получаете много мусора в ваших коммитах.
Кроме того, любой, кто проверяет ваш код из-под контроля версий для его сборки, должен иметь надлежащие инструменты разработки, поэтому вам не нужно беспокоиться о людях, сталкивающихся с проблемами из-за отсутствия автоинструментов.
То, что VonC говорит о проектах C, поставляемых с файлом configure
для генерации Makefile
s, верно для дистрибутивов исходного кода (файл .tar.gz
, который вы получаете при вводе make dist
) но не обязательно для только что извлеченных копий из системы контроля версий.