2014-01-27 8 views
2

В базовой ConfigurationOfMyProject я требует проекту Что-то:Могу ли я потребовать конкретную фиксацию другого Metacello ConfigurationOf в моей конфигурации Metacello?

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.

+0

Вот что я искал. Но, как сказал Стефан-Эггермонт, это не очень хорошее решение для моей проблемы. Какова предполагаемая версия для 'file:'? – MartinW

+1

Иногда вы не знаете (пока), как избежать обращения к статической версии, или сопровождающие движутся в том направлении, которое вам не нравится. Здесь вы * знаете * какую версию вы получаете. –

+1

Что-то в этом роде. Я бы сказал следующее: когда вы работаете над проектом, вы хотите решить, когда вносить изменения в библиотеки/проекты, которые вы используете. Просто ужасно больно, что ваш проект начинает неработать и/или выполнять за день до крайнего срока, и это просто потому, что кто-то сломал конфигурацию или обновил версию #stable до того, что не совсем стабильно. –

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'. 

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

+0

Итак, что вы предлагаете, я скорее сделаю ** свою собственную ** версию 'ConfigurationOfSomething' в моем собственном репозитории, так что я могу ее контролировать? – MartinW

+0

Нет, просто исправьте его для всех –

+0

Ха-ха, хорошо. Поэтому мы говорим о Glamour здесь, и я был немного обескуражен, поскольку они закрыли связанную с этим ошибку с помощью WontFix и сказали, что больше не поддерживают Pharo 2.0. Также я сомневаюсь, что у меня есть знания, чтобы исправить это, не нарушая что-то еще. – MartinW