2015-11-12 2 views
2

Я искал эту тему некоторое время, и я думаю, что я знаю все, что мне нужно, «должен ли я помещать файлы, созданные с помощью autotools, в мое репо?». Я согласен с тем, кто говорит, что вам не следует и включать в себя только ват, необходимый для их создания.Использование git для распространения с autotools

Хотя я думаю, что это правильный подход для целей разработки. Я пишу фреймворк, который использует git для контроля версий (в ветвях разработки) и использует главную ветвь для распространения кода. Мой вопрос в том, есть ли простой способ включить в git те же файлы, которые будут включены в пакет dist с помощью autotools ?. Идея заключается в том, что каждый пользователь, который клонирует репо, может просто выполнить обычную процедуру ./configure && make && make install и не беспокоиться об аутогенном или прочем. Учитывая природу структуры, немного громоздко отправлять tar-файлы и т. Д. И проще пользователям клонировать репо, чтобы использовать его. Возможно, есть какие-то варианты в git или каком-то стандартном файле gitignore или что-то в этом роде.

Большое спасибо!

ответ

1

Я бы не совершал никаких автогенерированных файлов. Просто попросите своих пользователей запустить autoreconf --install до ./configure && make

Возможно, вам понадобится mkdir m4, если любой из инструментов жалуется на недостающую директорию.

2

Многие будут настаивать на том, что файлы с автогенераторами не должны быть проверены. Однако, когда git становится настолько вездесущим, я не вижу вреда при этом, если вы используете самые последние стабильные autotools для генерации файлов. На самом деле, я предлагаю вам включить их:

Как вы указываете, это позволяет кому-то просто проверить проект и настроить его - в противном случае вам нужно предоставить моментальные снимки .tar[.bz2] для людей, которые не понимают autotools ... и не должны они. Вся идея autotools ставит нагрузку на разработчика на свести к минимуму требования и усилия конечного пользователя.

, например, необходимо передать переменные оболочки в командной строке с ./configure ... и make [install].

Если кто-то действительно хочет перестроить сгенерированные файлы, вы должны убедиться, что что-то вроде autoreconf -fvi достаточно. Если требуются более сложные шаги, укажите сценарий autogen.sh. Любой, кто выполняет этот шаг, должен иметь установленные autotools и, по-видимому, лучше понимать, как они работают - например, «уровень поддержки».

+0

И какие файлы необходимы в этом случае? Если я хочу добавить файлы, созданные с помощью autotools, чтобы каждый мог настроить и т. Д., Что было бы необходимо в репо? –

+0

@JuanpeAraque - посмотрите, что он раздавал с 'make dist' –

+0

Да, это то, что я собираюсь делать, я подумал, что, возможно, официальный способ сделать это. Благодаря! –

0

Должен ли я помещать файлы автогенератора в мое репо?

Вы можете сделать то и другое.

В ветке master есть все файлы сгенерированные autotools, чтобы люди могли просто клонировать репозиторий и запускать ./configure && make && make install без необходимости запускать autoconf и др. Тогда вы другую ветвь, скажем development, который является «чистым» и не имеет файлы проверяются.

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

+0

Да, на самом деле это то, что я думал, но я не уверен, какие файлы включать, и если есть что-то уже автоматическое, чтобы включить их. Я посмотрю, что включает 'make dist', и попробуйте с ним в некоторых небольших тестах. –

Смежные вопросы