2

我想在工作中运行一个本地的 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) SqueakSource3,跟随Tobias。我尝试在 Pharo2 和 Pharo3 中运行这两个 Gofer 命令。在 Pharo2 中它根本不加载。在 Pharo3 中,或多或少一切正常。由于已弃用或删除的消息,我不得不修复一些错误,但最终我能够创建项目并写入它们。

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

此外,即使在项目页面上,版本列表也会保持缓存,直到我导航到不同的项目。

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

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

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

5) Git 使用文件树,正如 Kylon 所建议的那样。这将阻止我使用 MetaCello 来处理依赖项,并且看起来比其他选项更复杂。

在这一点上,我不知所措。:-( 如果我想使用 Pharo,我将需要能够与我的同事协作。至少现在不能选择使用开源存储库。

是否有一种简单、经过验证的方法来设置这样的存储库?

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

4

5 回答 5

2

根据Pharo Dev 邮件列表上的这个线程:

设置服务器:

  1. 下载 SmalltalkHub 图像 ( https://ci.inria.fr/pharo-contribution/job/SmalltalkHub/ )
  2. 在您的计算机上安装 mongodb(对于 Debian:apt-get install mongodb)
  3. 启动 SmalltalkHub 映像
  4. 评估:ZnZincServerAdaptor startOn:8080
  5. 访问http://localhost:8080/tools/hub,创建一个帐户和一个项目
于 2014-09-03T11:05:27.783 回答
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

于 2014-09-03T12:47:58.913 回答
1

除了 Sean 的回答 - 如果您只想要一个 Metacello 存储库,并且不一定需要完整的 SmalltalkHub 东西,那么您只需要一个 WebDav 服务器。Apache 可以正常工作,过去我什至成功地使用过 Confluence 的 WebDAV 支持(经过一些调整)。

于 2014-09-03T12:06:00.270 回答
0

另一种方法是走流行的 Git 路线。我在我的项目中使用 Github,它运行良好,而 Git 本身在本地也运行良好。因此,如果已经熟悉 Git,那么它是一个非常好的选择

您可以在此处找到更多信息https://ci.inria.fr/pharo-contribution/job/PharoForTheEnterprise/lastSuccessfulBuild/artifact/GitAndPharo/GitAndPharo.pier.html

于 2014-09-03T19:27:33.473 回答
0

很抱歉给您带来不好的 smalltalkhub 体验。我已经对配置进行了一些修复,需要检查是否足够

于 2014-09-16T09:50:14.327 回答