В прошлом, используя mercurial с Visual Studio, я имел обыкновение добавить идентификаторы наборов изменений mercurial в мое приложение, чтобы, когда пользователь вызывал справку о программе, он перечислял все компоненты и их точнуюверсию mercurial.Он также будет регистрировать все идентификаторы наборов изменений в файле журнала приложения при каждом запуске. Эта процедура даже позволила мне увидеть, была ли изменена конкретная рабочая копия с момента последнего коммита (hg id
mercurial указывает на грязную рабочую копию, добавляя + в конец идентификатора набора изменений, который он сообщает).
Это было невероятно полезно, так как это означало, что каждый раз, когда пользователь сообщал о проблеме, я мог быстро собрать точноту ревизию, которую он использовал. Я также мог сказать, когда люди использовали быстрый хак, чтобы решить проблему, но не зафиксировали изменения и не сказали мне об этом.
Теперь я хотел бы воспроизвести то же средство в моем git
RCP-приложении. К сожалению, я новичок в разработке приложений git
и Eclipse RCP, поэтому мне немного непонятно, будет ли работать один и тот же метод.
В частности, я не смог понять, как сделать эквивалент hg id
с git
, как заставить систему сборки Eclipse вызывать git
для создания файла .gitignore
d, содержащего идентификатор, чтобы его можно было скомпилировать в приложение/плагин, или как получить эту информацию на странице «Справка»> «О программе».
Если вы сделали это или что-то подобное, мне бы хотелось получить несколько советов о том, как вы это сделали. Кроме того, я был бы рад услышать любые предложения об альтернативных способах достижения конечного результата, который я ищу.
Немного погуглив, почитав за строкой и поэкспериментировав, похоже, что git rev-parse HEAD
или git rev-parse --short HEAD
, вероятно, ближе всего к hg id
, увы, я не могу найти способ указать, что рабочая копия не является чистой, поэтому, похоже, мне придется проверить вывод статуса git -- short
и, если он не пуст, добавьте +
к хешу коммита вручную.
Теперь мне просто нужно понять, как заставить эти команды запускаться из системы сборки Eclipse и куда вводить эту информацию, чтобы она отображалась на страницах «О программе».