我可以在Metacell配置中要求另一个Metacell配置的特定提交吗?

时间:2014-01-27 10:24:12

标签: smalltalk pharo monticello metacello

ConfigurationOfMyProject的基线中,我需要项目 Something

spec project: 'Something' with: [
   spec
      className: 'ConfigurationOfSomething';
      repository: 'http://smalltalkhub.com/mc/SomeOne/Something/main';
      versionString: '1.0' ].

ConfigurationOfSomething的维护者提交了包含错误的新版ConfigurationOfSomething。所以我的ConfigurationOfMyProject不再加载了。

我是否可以要求ConfigurationOfSomething的特定版本:

spec project: 'Something' with: [
   spec
      className: 'ConfigurationOfSomething';
      repository: 'http://smalltalkhub.com/mc/SomeOne/Something/main';
      monticelloVersion: 'ConfigurationOfSomething-SomeOne.125'
      versionString: '1.0' ].

2 个答案:

答案 0 :(得分:2)

是的,您可以使用#file:message强制加载特定版本。

spec project: 'Something' with: [
   spec
      className: 'ConfigurationOfSomething';
      file: 'ConfigurationOfSomething-SomeOne.125'; 
      repository: 'http://smalltalkhub.com/mc/SomeOne/Something/main';
      versionString: '1.0' ].

有关概述,请参阅Metacello API

答案 1 :(得分:1)

你可以,但可能不想。执行上面建议的结果是,您正在创建无法再修补的快照。 [快照版本不应该在配置中。它们是一个单独的概念,需要自己的类]。通过大约相同的工作量,您可以查看在版本126中所做的更改,并确保获得这些更改。

如果使用monticello浏览器打开存储库,则选择版本126,然后选择历史记录。在历史记录中选择版本125,然后在上下文菜单中查看更改。在那里,您会看到默认值已更改(并添加了新的基线)。如果现在根据需要进行默认(或稳定),则可以保存新版本的配置。只需确保您在最新版本中进行更改。

spec for: #'common' version: '2.1'.
spec for: #'pharo1.3.x' version: '2.2'.
spec for: #'pharo1.4.x' version: '2.4'.
spec for: #'pharo2.x' version: '2.5'.
spec for: #'pharo3.x' version: '2.6-snapshot'.

[edit]如果用WontFix关闭问题,这通常意味着没有足够的时间来完成修复它的所有工作。通过显示修复程序可以满足您的需求,您可以获得更好的结果,并且最好使用此代码也可以获得最新的图像。所以只需在本地包中进行此更改(在干净的图像中)并尝试它。如果你能报告它有效,我会做出改变:)