2012-03-21 3 views
2

У меня есть 3 мерзавцев обернутых в файл манифеста (этот файл манифест в четвертом мерзавце):репо не создает отслеживание ветви, но мерзавец клон делает

Если я хочу, чтобы проверить один из мерзавцев, я просто используйте «git clone». После «git clone» я получаю удаленную ветку отслеживания с именем «master», которая является совершенной.

Однако, если я хочу синхронизировать все три группы вместе, я "repo init"/"repo sync" файл манифеста. Тем не менее, ветвь удаленного отслеживания «master» не создается ни в одном из трех gits, которые я получаю. Следовательно, я вручную должен «git checkout -b master», чтобы иметь возможность вернуться к исходному.

Это работает, но это раздражает, чтобы сделать этот дополнительный «checkout» шаг, если вы знаете, что я имею в виду? Это по дизайну? Есть ли легкий выход, о котором я не знаю?

ответ

1

Проверьте это достаточно, чтобы оформить правильную ветку непосредственно:

repo init -u url_manifest -b master 

Если нет, вы все еще можете использовать repo forall для того, чтобы применить любую команду ко всем проектам:

repo forall [PROJECT_LIST] -c "git checkout -b master" 
+0

«репо init "не работает, но" repo forall "отлично. Спасибо – ola1olsson

+0

'repo init -b' выберите, на какой ветке должен быть выбран сам манифест, а не какая ветка репозитории должны быть извлечены. Ваш пример не работает, если манифест выбирает (некоторые) репозитории на другой ветке, кроме мастера. –

+0

@bjarkef, но простая синхронизация репо могла затем загрузить правильный код, следуя манифесту ветки, хотя? Как и в http://stackoverflow.com/a/11529936/6309 – VonC