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