2010-07-24 4 views
6

До сих пор я использовал контроль версий для простых веб-проектов, которые на самом деле не имеют стадии компиляции. Теперь я разработал относительно большой проект, который следует за стандартным шаблоном «./configure; make; make install». Я не уверен в правильности рабочего процесса для этого типа проекта.Компиляция рабочего процесса с контролем версий

Что мне делать со всеми созданными файлами из процесса компиляции?

  • Добавить много вещей в .gitignore? Это сложно, потому что я не создал процесс сборки и не понимаю все, что создано.
  • Оформить заказ в другом месте для каждой сборки? Это кажется болью, учитывая, что я часто строю каждые несколько минут.
  • Просто убедитесь, что никогда не добавляли что-то, о чем я не знаю, т. Е. Никогда не делают git add . Если да, то как мне очищать время от времени?

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

+0

Вы используете autotools (т. Е. Ваш проект содержит файлы configure.ac/configure.in/Makefile.am)? – Scharron

+0

@scharron: Да, проект использует autotools. – Tristan

ответ

6

Я согласен с ChrisF, не храните двоичные файлы, сгенерированные сборкой в ​​вашем репозитории. Ваша цель должна состоять в том, чтобы иметь хороший файл .gitignore, так что в любой момент работы git status не должен показывать «файлы без следа». Это означает, что git игнорирует или отслеживает все файлы.

Одна процедуры я использую, чтобы построить свой .gitignore это:

  1. добавить и взять все источники в проект (перед чем было построено)

    cd project

    git add .

    git commit -m'initial import'

  2. добавить простые шаблоны файлов, которые будут игнорироваться до .gitignore; это включает в себя такие вещи, как * .o, * .so.

    echo '*.o' > .gitignore

    echo '*.so' >> .gitignore

  3. затем я бегу сборки.

    make

  4. тогда я бегу

    git ls-files -o >> .gitignore

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

-Bart

1

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

Вы не говорите, какую IDE (если есть) вы используете - проверьте, может ли он добавить проект в исходный элемент управления для вас. Если он сможет использовать этот параметр, он добавит только те файлы, которые абсолютно необходимы.

4

Чтобы очистить ваш рабочий каталог, вы можете использовать git clean. По умолчанию он не повредит, если вы не укажете флаг -f (force).

Командная строка git clean -xfd удалит все в вашем рабочем каталоге, что не находится в управлении версиями.

3

Простая стратегия заключается в том, чтобы хранить выходные данные в другом каталоге, например. build, а затем игнорировать этот каталог. Вы можете настроить его следующим образом:

mkdir build && cd build && ../configure 
Смежные вопросы