Индексирование источников с помощью Git - PullRequest
0 голосов
/ 17 декабря 2011

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

Я загружаю этот проект: SourceServer-GitExtensions

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

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

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

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

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

Ответы [ 2 ]

3 голосов
/ 17 декабря 2011

Минимальные изменения должны быть такими:

git rev-list --reverse HEAD

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

2 голосов
/ 17 декабря 2011

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

...