подмодули git: настройка - PullRequest
2 голосов
/ 25 июня 2009

При использовании подмодулей git, каков предпочтительный способ настройки? Должен ли я ...

  • Разветвите проект и отследите вилку
  • попытка переопределить поведение по умолчанию
  • внести изменения локально

Если ничего из этого не имеет смысла, тогда что значит?

Ответы [ 2 ]

5 голосов
/ 04 июля 2009

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

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

Может быть сложнее, если проекты, которые вы хотите включить, находятся где-то еще (или основаны на svn, mercurial и т. Д.). Одним из способов является локальная ветвление проектов, а затем настройка заданий cron для отправки любых входящих изменений в github. То есть создавать зеркала github. Чтобы получить полный контроль над слиянием и обновлением, вам, возможно, придется раскошелиться на эти зеркала и включить эти вилки как подмодули в свой проект, проверить локальные настройки и перенести их на развилку зеркала.

Альтернатива № 3, разветвленные проекты и только локальная регистрация, может использоваться в ситуациях, когда у вас нет вышеуказанных опций и то, что вы создаете, на самом деле не предназначено для легкого распространения.

Исправление обезьяны (альтернатива № 2 в вашем списке) должно быть альтернативой, оставляемой ситуациям, когда вы не хотите, чтобы проект зависел от того, что вы обновляете настроенную ветвь в соответствии с последними изменениями.

2 голосов
/ 20 августа 2009

Мне кажется, что создание подпроектов с использованием подмодуля git чрезвычайно утомительно, поэтому вместо этого я написал git subtree .

Идея git subtree заключается в том, что вы импортируете содержимое подпроекта в свой собственный проект, поэтому вы все разветвляете и делаете новые коммиты так, как вам нравится. Затем, когда вы будете готовы (если когда-либо), вы можете использовать git subtree split для извлечения истории подпроекта и отправки его в обратном направлении.

...