Установить несколько веток удаленного отслеживания по умолчанию

Git предлагает хорошую возможность отслеживать изменения в нескольких удаленных ветвях. Но есть ли способ установить эту функцию по умолчанию? Я имею в виду, что когда кто-то клонирует репозиторий, он по умолчанию уже отслеживает два пульта.

Сценарий такой

  • У нас есть общий код в удаленном репо, который называется libs.
  • У нас есть еще один проект, который разветвил этот репозиторий, чтобы улучшить его, под названиемEnhancedLibs.
  • Когда кто-то делает фиксацию в библиотеках, выполняется ручная синхронизация, чтобы добавить изменения и в расширенные библиотеки.
  • Изменения из libs берутся в extendedLibs, а не наоборот (или это бывает очень редко)

С этим есть явные проблемы

  1. Синхронизацию забыли сделать (с динамическим языком ошибки выявляются довольно поздно)
  2. Git напрямую не показывает в истории коммитов, откуда пришло изменение. Разработчик должен добавить детали.

Насколько я понимаю, отслеживание нескольких ветвей подходит, но вопрос здесь в настройке. мы используем Atlassian Stash, но я бы предпочел решение только с Git, если оно доступно.

Также интересно узнать об альтернативных решениях. Например, не поможет ли тут настройка зеркала?


person kaskelotti    schedule 25.08.2015    source источник
comment
Начальные пульты устанавливаются исключительно на основе источника, из которого кто-то клонирует репозиторий. Невозможно автоматически вставить дополнительные удаленные устройства, но вы можете отправить сценарий установки, который кто-то может запустить для настройки своего локального репозитория.   -  person larsks    schedule 25.08.2015
comment
@larsks сценарий установки — отличный вариант для альтернативного решения, упомянутого в посте. Я думаю, вы должны добавить это как ответ. И вы также отвечаете на вопрос: Первоначальная множественная удаленная настройка невозможна. Это относится только к инструментам Git или вы можете подтвердить и для инструментов Atlassian Stash?   -  person kaskelotti    schedule 25.08.2015


Ответы (2)


Публикация в качестве ответа по запросу:

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

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

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

person larsks    schedule 25.08.2015

Решение, о котором вы просите, на самом деле не связано с Stash (раскрытие информации: я менеджер по продукту). Я провел некоторое исследование своего рода крючка «пост-клонирования», чтобы настроить что-то вроде того, о чем вы просите. Короче говоря, это возможно, но некрасиво, используя хук после проверки . Для этого требуется изменить глобальные git-хуки каждого пользователя, так что это только сдвигает проблему.

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

person Rog    schedule 26.08.2015
comment
Синхронизация вилки Stash выглядит неплохо. К сожалению, кажется, что он также синхронизирует ветки и теги, а это не то, что мне нужно/хочу. - person kaskelotti; 27.08.2015
comment
Почему бы вам не синхронизировать ветки/теги? Я готов поднять запрос на новую функцию, если есть общий вариант использования - person Rog; 28.08.2015
comment
Библиотеки уже имеют свой собственный жизненный цикл и схему управления версиями. Синхронизация тегов/ветвей только усложнит ситуацию. Возможно, расширенная библиотека будет единственной в будущем, и эта установка больше не нужна, но не произойдет в ближайшее время (по крайней мере, не в этом году). - person kaskelotti; 28.08.2015