1

我正在尝试使用puppet-vcsrepo来确保我的所有机器都从我的 hg repo 签入了最新版本的代码。我第一次运行清单时,我的代码已成功签出,但每次 puppet 运行之后我都会收到此错误:

Could not evaluate: undefined method `latest?' for #<Puppet::Type::Vcsrepo::ProviderHg:0x7f830dc59cb0>

这是我的清单的相关部分:

vcsrepo {"/path/to/dir":
    provider => hg,
    ensure   => 'present',
    source   => 'me@mysource.com/source',
}

我尝试过使用不同的修订版,或者根本不指定它们,以及尝试确保 => 存在和确保 => 最新。我只是在学习 puppet,对 ruby​​ 不是很熟悉,所以任何帮助将不胜感激。

4

1 回答 1

2

问题可能是您对revision => "HEAD". 据我所知 HEAD 是一个 git 术语。只需删除修订部分,默认情况下您将获得最新版本的代码。

README.HG.markdown:

要获取默认分支提示:

vcsrepo { "/path/to/repo":
     ensure   => present,
     provider => hg,
     source   => "http://hg.example.com/myrepo"
 }
于 2011-08-09T04:52:36.897 回答