Компиляция рабочего процесса с контролем версий - PullRequest
6 голосов
/ 24 июля 2010

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

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

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

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

Ответы [ 4 ]

6 голосов
/ 24 июля 2010

Я согласен с 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

3 голосов
/ 11 июня 2011

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

mkdir build && cd build && ../configure
3 голосов
/ 25 июля 2010

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

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

1 голос
/ 24 июля 2010

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

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

...