Получить текущую версию коммита Git из приложения Rails? - PullRequest
12 голосов
/ 07 декабря 2011

Как я могу получить текущую версию коммита Git из приложения Ruby on Rails?

Хотите отобразить версию Git (или, может быть, последние 6 букв или около того) в качестве версии приложения.

Ответы [ 4 ]

18 голосов
/ 24 августа 2013

Как сказал @meagar, используйте backticks для выполнения команды оболочки из вашего приложения, но эти две команды могут оказаться более полезными:

Полный хеш:

git rev-parse HEAD

Первые 7 символов хэша:

git rev-parse --short HEAD
11 голосов
/ 07 декабря 2011

Вы можете вызвать команду git из вашего скрипта:

commit = `git show --pretty=%H`
puts commit

В зависимости от вашей среды вы можете использовать полный путь к двоичному файлу git и, возможно, указать GIT_DIR через переменную среды или --git-dir.

3 голосов
/ 03 октября 2018

Более надежное решение будет git show --pretty=%H -q.Флаг -q прекращает вывод.

Для удаления новой строки, являющейся частью вывода, вы можете использовать chomp.Например: system('git show --pretty=%H -q').chomp

Выбранный ответ потенциально может вернуть разницу, когда коммит не коммит слияния.Проверено на git версии 2.16.2.windows.1.

1 голос
/ 07 декабря 2011

Я предполагаю, что вы хотите включить версию приложения в ваш HTML-код?Обязательным условием является то, что вы развертываете свое хранилище с Capistrano по умолчанию (вы загружаете хранилище, а не отправляете архивный файл).

Вы можете добавить некоторый код в инициализатор Rails, как указано здесь .Этот подход извлечет SHA1 из последнего коммита и сделает его доступным в качестве переменной среды.

Другой способ сделать это - попросить задачу Capistrano создать статический файл в публичном каталоге с коммитом SHA вЭто.Вы можете включить в этот файл другую информацию, которая кажется полезной.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...