получение номеров версий из репозитория git - PullRequest
2 голосов
/ 31 августа 2010

у нас есть система сборки, которая использует svn ID в качестве приставки к устройству VM Builder, для которого требовалось пятизначное число. Когда я строил из git, я притворялся, подсчитывая количество коммитов в git-репо. Это единственная работа: - / Я пытаюсь выяснить:

  • как я могу получить уникальный 5-значный номер из git-репо.

Ответы [ 3 ]

2 голосов
/ 31 августа 2010

Вы ищете git description :

Команда находит самый последний тег это достижимо от коммита. Если тег указывает на коммит, затем отображается только тег. В противном случае это суффикс имени тега с номером дополнительных коммитов поверх помеченный объект и сокращенное имя объекта самого последнего коммита.

$ git describe master
v1.10-5-g4efc7e1
2 голосов
/ 24 марта 2011

Вы хотите использовать git description , как было сказано ранее, вот моя задача rake, которая распечатывает постепенно увеличивающиеся номера версий, совместимых с semver автоматически:

task :version do
  git_describe = `git describe --dirty --tags --match 'v*'`

  version, since, sha, dirty = git_describe.strip.split("-")
  major, minor, patch = version.split(".")

  version = "#{major}.#{minor}.#{patch}"

  if sha
    patch = String(Integer(patch) + 1)
    version = "#{version}pre#{since}-#{sha[1..sha.length]}"
  end

  if [since, dirty].include?("dirty")
     version = "#{version}-dirty"
  end

  puts version

end

Используетсякак это:

$> rake version

v0.9.8pre32-fcb661d

0 голосов
/ 31 августа 2010

В git каждый коммит генерирует уникальный хэш-идентификатор SHA1.Вы можете увидеть идентификатор каждого коммита при запуске git log.Если вам нужен 5-значный номер для самого последнего коммита, вы можете сделать что-то вроде git log --pretty=oneline --abbrev-commit --abbrev=5 -1.Для одного из моих репозиторий результат выглядит следующим образом:

$ git log --pretty=oneline --abbrev-commit --abbrev=5 -1    
3b405... fixed css for page title.

Вы можете поэкспериментировать с другими параметрами git log, чтобы настроить формат, если это необходимо.Конечно, если в хранилище достаточно коммитов, всегда есть вероятность, что 5 цифр будет недостаточно, чтобы гарантировать уникальность, но для достаточно небольших проектов это может быть достаточно.

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