2014-09-03 10 views
2

Я хотел бы запустить локальный репозиторий HTTP Monticello на работе, чтобы мы могли легко делиться кодами между коллегами.Локальный репозиторий Monticello

Есть ли способ запустить что-то похожее на SmalltalkHub в частном порядке?

EDIT:

Я перепробовал все варианты здесь и ни один из них, кажется, работает нормально. Позвольте мне перечислить варианты:

1) WebDAV на Apache, после Stuart. Я пробовал это, следуя некоторым онлайн-руководствам. Мой текущий файл dav.conf выглядит так:

DavLockDB /tmp/DavLock 
Alias /pharo /opt/data/pharo 
<Location /pharo> 
    Order Allow,Deny 
    Allow from all 
    Options Indexes MultiViews 
    Dav On 
    AuthType None 
</Location> 

Я работал в течение нескольких дней. Тогда неожиданно я не могу читать новые версии определенного пакета. Всякий раз, когда я пишу версию на изображении и читаю ее в другой, я получаю исключение ZnInvalidUTF8. Я не уверен, почему, может быть, у WebDAV есть проблемы с перечислением слишком большого количества файлов?

2) Настройка моего FTP. Кажется, что это работает, но когда я пытаюсь установить этот репозиторий в качестве пульта в версии, я получаю MCFtpRepository doesNotUnderstnd: #koRemote

3) SqueakSource3, следуя Tobias. Я попытался запустить две команды Gofer как в Pharo2, так и в Pharo3. В Pharo2 он вообще не загружается. В Pharo3 работает более или менее. Мне пришлось исправить несколько ошибок из-за устаревших или удаленных сообщений, но в конце концов я могу создавать проекты и писать им.

Проблема возникает, когда я читаю. По-видимому, SS3 хранит какой-то внутренний кеш. В результате список пакетов, которые я вижу на странице проекта, отличается от списка пакетов, которые получает клиент. Разница, похоже, заключается в том, что клиенту требуется короткая версия страницы, например http://localhost:8080/ss/MyProject/?C=M;O%3DD, и результаты там постоянно меньше, чем на полной странице http://localhost:8080/ss/MyProject.

Кроме того, даже на странице проекта список версий остается кешированным, пока я не перейду к другому проекту.

4) SmallTalkHub, нижеследующий Sean. Я попытался использовать изображения с сервера INRIA и изображения, предлагаемые с загрузчика Pharo-VM (они могут быть одинаковыми).

Мне пришлось установить Seaside снова, так как в загруженном изображении не было ZnZincAdaptor. Теперь я могу запустить SmallTalkHub, но как только я попытаюсь зарегистрировать пользователя, я получаю сообщение об ошибке MessageNotUnderstood: receiver of "new" is nil. Я не могу отслеживать, откуда эта ошибка (есть ли способ открыть отладчик на стороне сервера вместо сохранения 500 в Seaside?).

После этой ошибки я вижу пользователя как в mongodb, так и в интерфейсе, но я не могу войти.

5) Git использует filetree, как предложено Kylon. Это помешало бы мне использовать MetaCello для обработки зависимостей и выглядел бы еще более сложным, чем другие.

На данный момент я в затруднении. :-(Если я хочу использовать Pharo, мне нужно будет, чтобы иметь возможность сотрудничать со своими коллегами. Использование хранилищ с открытым исходным кодом не вариант, по крайней мере сейчас.

Есть простой, испытанный способ создать такой репозиторий?

SqueakSource3 или SmallTalkHub были бы еще лучше благодаря своим пользовательским интерфейсам, но мне действительно нужно, по крайней мере, базовое сопоставление. Наличие опции, которая может выполняться на безголочном сервере, также будет большим плюсом, как если бы это стало инструментом, который мы используем, это не будет возможным для размещения репозитория на моем ноутбуке.

ответ

1

В дополнение к ответу Шона - если вы просто хотите хранилище Metacello, и не обязательно полный материал SmalltalkHub, то вам просто нужен сервер WebDav. Apache будет работать отлично, и я даже использовал поддержку WebDAV от Confluence (с некоторой настройкой) в прошлом.

+0

Спасибо, на самом деле это хорошо работает! – Andrea

+0

Фактически я понесся в маленькой проблеме, которая выглядит неуязвимой для меня. Я смог использовать это репо для совместного использования кода между изображениями. Затем, неожиданно, я не могу поделиться новыми версиями определенного пакета. Каждый раз, когда я загружаю новую версию этого пакета (что-то выше 8), я получаю исключение ZnInvalidUTF8.У вас есть некоторые предложения, как я могу начать изучать это? – Andrea

+0

Вы установили набор символов в Apache? У вас есть широкие места в ваших mczs (umlauts в источнике?) –

2

Per this thread в списке рассылки Pharo Dev:

Настройка сервера:

  1. ссылке Загрузить SmalltalkHub изображение (https://ci.inria.fr/pharo-contribution/job/SmalltalkHub/)
  2. Установка MongoDB на вашем компьютере (для Debian: склонный -get install mongodb)
  3. Запуск SmalltalkHub image
  4. Оценить: ZnZincServerAdaptor startOn: 8080
  5. Визит http://localhost:8080/tools/hub, создать учетную запись и проект
+0

У меня возникла проблема с этой работой. Во-первых, я не могу найти «ZnZincServerAdaptor». Я попробовал «ZnServer startOn: 8080», но он просто запускает сервер с пустой страницей по умолчанию. Вы пытались это сделать? Может быть, это просто что-то глупое, я новичок с Smalltalk – Andrea

+0

Я сделал некоторый прогресс, как я объясняю в вопросе. Есть ли у вас более подробные инструкции, которые могут мне помочь? – Andrea

+0

ZnZincServerAdaptor находится в Zinc-Seaside. Конфигурация Smalltalkhub нуждается в исправлении –

1

В дополнение к другим ответам:

  • Просто хранить ваши версии в DropBox работают очень хорошо!
  • Вы можете также установить SqueakSource3 (как SmalltalkHub, не нуждается в MongoDB):

    Gofer new 
        url:'http://www.smalltalkhub.com/mc/Seaside/MetacelloConfigurations/main'; 
        package: 'ConfigurationOfSeaside3'; 
        load. 
    ((Smalltalk at: #ConfigurationOfSeaside3) project version: #stable) load. 
    Gofer new 
        url:'http://www.squeaksource.com/MetacelloRepository'; 
        package: 'ConfigurationOfSqueakSource'; 
        load. 
    ((Smalltalk at: #ConfigurationOfSqueakSource) project version: #bleedingEdge) load: #('All'). 
    

    Затем начните адаптер (например ZnZincServerAdaptor startOn: 8080) и Гото http://localhost:8080/instalSS

+1

Можете ли вы предложить мне изображение для начала? Я попытался сделать это в чистом изображении Pharo3, и он работает более или менее, но всякий раз, когда я пытаюсь на самом деле делать что-либо, я получаю исключения, недостающие методы и предупреждения об устаревании. – Andrea

+0

Я не использовал это с изображением Pharo3. Вероятно, вы можете начать с [Seaside All-In-One] (http://www.seaside.st/distributions/Seaside-3.1-OneClick-Pharo2.zip), который должен сэкономить вам первые 5 строк моего кода выше. – Tobias

+0

Одно изображение клика не начинается для меня (я использую последнюю версию Ubuntu). Тем не менее, я могу выбрать много изображений из пусковой установки Pharo, и среди них есть изображение Приморья для Pharo2. Я попытался запустить его, и я получаю 'MessageNotUnderstood: ByteString >> withBlanksTrimmed', как только я вхожу в форму на' installSS'. Теперь я могу быстро исправить это, как и в другом образе, но, я думаю, я столкнусь с другими проблемами, которые перечислены выше. – Andrea

0

Другой способ пойти вниз популярный маршрут Git. Я использую Github для своих проектов, и он отлично работает, в то время как Git сам работает очень хорошо на местном уровне. Так что, если уже знакомы с Git, то его очень хороший выбор

Вы можете найти более подробную информацию здесь https://ci.inria.fr/pharo-contribution/job/PharoForTheEnterprise/lastSuccessfulBuild/artifact/GitAndPharo/GitAndPharo.pier.html

0

Извините о плохом smalltalkhub опыта. Я сделал некоторые исправления для конфигурации, и вам нужно проверить, достаточно ли этого

+0

Спасибо, я загрузил последнее изображение и последний ConfigurationOfSmalltalkHub (StephanEggermont.16), и теперь Seaside установлен, и я могу зарегистрироваться очень хорошо. Тем не менее, когда я пытаюсь я использую Ubuntu 14.04 с MongoDB 2.4.9 (хотя я не думаю, что это ошибка MongoDB, так как все тесты Mongo зеленые). – Andrea

+0

I ' я спросил в списке рассылки. На моем Mac у меня такая же проблема. Я обновил Seaside до # 'release3.1', и я, вероятно, что-то пропустил. Возможно, вам захочется проверить, добавлен ли пользователь в Mongo –

+0

Да , Я вижу пользователей в Монго, и они даже перечислены на главной странице. Это просто логин, который терпит неудачу. Кстати, я мало знаю о море, но было бы неплохо иметь возможность включить режим dev, где вместо возврата кодов ошибок (500, 403 и т. Д.) Он открыл бы отладчик на стороне сервера, где я мог бы проверить данные и выяснить, что не так. Вы знаете, возможно ли это? – Andrea

 Смежные вопросы

  • Нет связанных вопросов^_^