当地的蒙蒂塞洛仓库

时间:2014-09-03 10:30:38

标签: smalltalk pharo monticello

我想在工作中运行本地Monticello HTTP存储库,以便我们可以在同事之间轻松共享代码。

有没有办法私下运行类似于SmalltalkHub的东西?

修改

我在这里尝试了所有选项,但它们似乎都没有顺利进行。让我回顾一下选项:

1)Apache上的WebDAV,跟随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)跟随Tobias的SqueakSource3。我试过在Pharo2和Pharo3中运行两个Gofer命令。在Pharo2中它根本不加载。在Pharo3中,或多或少的一切都有效。由于弃用或删除了消息,我不得不修复一些错误,但最后我能够创建项目并写入它们。

当我阅读时出现问题。显然SS3保留了某种内部缓存。结果是我在项目页面上看到的包列表与客户端获得的包列表不同。差异似乎是客户端需要页面的简短版本,例如http://localhost:8080/ss/MyProject/?C=M;O%3DD,并且结果始终低于整页http://localhost:8080/ss/MyProject

此外,即使在项目页面上,版本列表仍然会被缓存,直到我导航到另一个项目。

4)SmallTalkHub,跟随Sean。我尝试过使用INRIA服务器的图像和Pharo-VM-loader建议的图像(它们可能是相同的)。

我不得不再次安装Seaside,因为下载的图片中没有ZnZincAdaptor。我现在能够启动SmallTalkHub,但是一旦我尝试注册用户,我就会收到错误MessageNotUnderstood: receiver of "new" is nil。我无法跟踪此错误的来源(有没有办法打开服务器端调试器而不是在Seaside中停止500?)。

发生此错误后,我可以在mongodb和界面中看到用户,但我无法登录。

5)Git使用filetree,如Kylon所示。这将阻止我使用MetaCello来处理依赖关系,并且看起来比其他选项更加强制。

此时我不知所措。 :-(如果我想使用Pharo,我需要能够与我的同事合作。至少现在使用开源存储库是不可取的。

  

是否有一种简单,经过试验和测试的方法来设置这样的存储库?

由于其用户界面,SqueakSource3或SmallTalkHub会更好,但我至少需要基本的协作。拥有一个可以在无头服务器上运行的选项也是一个很大的优势,就好像这成为我们使用的工具一样,在我的笔记本电脑上托管存储库是不可行的。

5 个答案:

答案 0 :(得分:2)

Pharo Dev邮件列表上的

Per this thread

  

设置服务器:

     
      
  1. 下载SmalltalkHub图片(https://ci.inria.fr/pharo-contribution/job/SmalltalkHub/
  2.   
  3. 在您的计算机上安装mongodb(适用于Debian:apt-get install mongodb)
  4.   
  5. 启动SmalltalkHub图像
  6.   
  7. 评估:ZnZincServerAdaptor startOn:8080
  8.   
  9. 访问http://localhost:8080/tools/hub,创建帐户和项目
  10.   

答案 1 :(得分:1)

除了肖恩的回答 - 如果你只是想要一个Metacello存储库,并且不一定需要完整的SmalltalkHub,那么你只需要一个WebDav服务器。 Apache工作正常,我甚至在过去成功使用过Confluence的WebDAV支持(有一些调整)。

答案 2 :(得分: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

答案 3 :(得分:0)

另一种方式是走下Git的流行路线。我正在使用Github进行我的项目,它很有效,而Git本身在本地也很好用。所以,如果已经熟悉Git那么它是一个非常好的选择

您可以在https://ci.inria.fr/pharo-contribution/job/PharoForTheEnterprise/lastSuccessfulBuild/artifact/GitAndPharo/GitAndPharo.pier.html

找到更多信息

答案 4 :(得分:0)

抱歉这个糟糕的smalltalkhub体验。我已对配置做了一些修复,需要检查是否足够