Как получить идентификатор набора изменений Git из абстракции Maven SCM - PullRequest
1 голос
/ 19 января 2011

У меня есть плагин Maven Mojo, который запрашивает SCM для создания отчета. Он собирает комментарии, автора и дату записи в порядке. Теперь мне нужен фактический идентификатор коммита. Итак, с учетом следующего оператора журнала ...

commit 0559a4f75eaabb978cd880ae921ea7737b974580
Author: John Smith <jsmith@example.com>
Date:   Tue Jan 18 13:08:57 2011 -0500

    Fixed port numbers for JMX

Я хочу извлечь 0559a4f75eaabb978cd880ae921ea7737b974580

Кажется, нет очевидного способа сделать это. Любая помощь будет оценена. Вот как я получаю ChangeSet в первую очередь.

SimpleDateFormat localFormat = new SimpleDateFormat(userDateFormat);
ScmRepository repository = getScmRepository();
ScmProvider provider = getScmManager().getProviderByRepository(repository);
ChangeLogScmResult result = provider.changeLog(repository, getFileSet(), this.parseDate(localFormat, this.startDate), this.parseDate(localFormat, this.endDate), 0, (ScmBranch) getScmVersion(scmVersionType, scmVersion), dateFormat);
checkResult(result);
ChangeLogSet changeLogSet = result.getChangeLog();
ChangeSet[] changeSets = (ChangeSet[]) changeLogSet.getChangeSets().toArray(new ChangeSet[changeLogSet.getChangeSets().size()]);
GitChangeSet changeSet = (GitChangeSet)changeSets[0];
String gitID = ???????????????????????????????

Вот API-документы для GitChangeSet http://maven.apache.org/scm/apidocs/org/apache/maven/scm/provider/git/GitChangeSet.html, из которых вы можете получить большую часть всего остального, что я делаю.

1 Ответ

0 голосов
/ 19 января 2011

Более старые версии провайдеров maven-scm не имеют этой функциональности.Обновление до новых версий и метод getRevision () в ChangeSet должны помочь вам.

...