我正在编写一个Puppet模块,用于管理当前在本地Git存储库上检出的分支或标记。我基本上希望让用户能够指定他们要检出的存储库版本。这可以是master
(分支)或v3.6.2
(标记)。
这是我到目前为止所得到的:
exec { 'gitolite_select_version':
command => "git checkout ${actual_version}",
cwd => '/usr/src/gitolite',
path => '/bin:/usr/bin',
unless => "test \"$(git describe --contains --all HEAD)\" == ${actual_version}""
}
这在像master
之类的分支上工作正常,但是在像标记一样的分离HEAD上会产生错误的输出。主人的例子
$ git describe --contains --all HEAD
master
标签示例:
$ git describe --contains --all HEAD
tags/v3.6.2^0
是否有一个Git命令可以以简单统一的格式获取分支名称或当前标记?
答案 0 :(得分:2)
您是否考虑过使用puppetlabs-vcsrepo?这是模块管理的东西:
vcsrepo { "/usr/src/gitolite":
ensure => present,
provider => git,
source => 'git://example.com/repo.git',
revision => $actual_version,
}