Удаление старых веток в подмодулях Git безопасно w.r.t. полезная история «супермодулей»? - PullRequest
3 голосов
/ 18 августа 2011

Если я использую такой рабочий процесс:

  • app_repo и app2_repo имеют общий подмодуль, library_repo .
  • В library_repo я создаю ветвь library_feature для работы над новой функцией, оставляя master стабильным.
  • Для app2_repo нужна новая функция, поэтому я отслеживаю в ней разработку подмодуля (т. е. обновляю ссылку на подмодуль по мере фиксации library_repo ).Одновременно с этим вносятся изменения и в источник app2_repo (приложение также находится в стадии разработки).
  • После завершения функции я объединяю library_feature ветвь в library_repo обратно в library_repo master branch.
  • Развитие продолжается, с app2_repo , теперь включающим library_repo master снова.
  • Я удаляю library_repo library_feature ветку, теперь, когда история объединена в master , чтобы держать вещи в чистоте.

Я только что потерял возможность проверять исторические app2_repo SHA и корректно обновлять 'submodule update'с соответствующими историческими коммитами из library_repo , потому что я удалил ветку library_feature , в которой они находились, или все соответствующие коммиты останутся, потому что история теперь используется совместно с master теперь оно объединено

1 Ответ

3 голосов
/ 18 августа 2011

Все соответствующие коммиты все еще будут там.

Когда вы создаете коммит с подмодулем в конкретной версии, единственной информацией, хранящейся в дереве «супермодуля», является имя объекта (т. Е. SHA1sum) коммита, в котором должен находиться подмодуль. Таким образом, удаление ветви после ее слияния с мастером не имеет значения - все ваши старые коммиты в супермодуле будут указывать на имена объектов коммитов, которые все еще находятся в истории мастера в субмодуле.

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

...