Могу ли я потребовать конкретную фиксацию другой конфигурации Metacello в моей конфигурации Metacello?

В базовой линии ConfigurationOfMyProject Мне нужен проект Что-то:

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 ответа

Решение

Да, вы можете использовать сообщение #file: для принудительной загрузки определенной версии.

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

См. Metacello API для обзора.

Вы могли бы, но, вероятно, не хотите. Следствием того, что вы предложили выше, является то, что вы создаете снимок, который больше не может быть исправлен. [Снимки версий не должны быть в конфигурации. Это отдельная концепция, нуждающаяся в собственном классе. Приложив примерно столько же усилий, вы можете взглянуть на изменения, внесенные в версию 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'.

[править] Если проблема закрыта с помощью WontFix, это часто означает, что не хватает времени, чтобы выполнить всю работу по ее устранению. Вы можете получить лучшие результаты, показав, что исправление работает для ваших нужд, а также, желательно, новейшее изображение с использованием этого кода. Так что просто внесите это изменение в локальный пакет (в чистом виде) и попробуйте. Если вы можете сообщить, что это работает, я внесу изменения:)

Другие вопросы по тегам