Индексирование источников с помощью Git

Я пытаюсь начать использовать индексацию исходного кода вместе с Git на нашем сервере сборки (TeamCity).

Я скачиваю этот проект: https://github.com/joliver/SourceServer-GitExtensions

Во время его работы я заметил предупреждения / ошибки. копаясь в скрипте (который основан на PERL), я заметил, что скрипт запускает эту функцию:

sub GetSha1OfFirstCommand {
my $result = `git rev-list --reverse master`;
my @ids = split(/\n/, $result);
return($ids[0]);
}

Это выполняется в попытке получить идентификатор хранилища (идентификатор первого коммита, который я предполагаю).

Проблема в том, что в настоящее время мы не используем ветку master.

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

2 ответа

Решение

Это пытается получить идентификатор коммита первого коммита. git rev-list --reverse master и получение первого идентификатора, то есть то, что делает код, который вы дали, должно работать (в основном), поскольку все репозитории git поставляются с основной веткой, а первая фиксация выполняется на главной, и любая ветвь будет иметь ответвление от этого. Главным образом потому, что ветка может иметь свою историю (git checkout --orphan) или там не может быть мастера. В этом случае более надежным будет git rev-list --reverse HEAD, Это будет работать даже на голом репо.

Минимальные изменения будут заключаться в следующем:

git rev-list --reverse HEAD

Это даст вам список ревизий для текущей ветки.

Другие вопросы по тегам