Version control Smalltalk/Seaside的版本控制?

Version control Smalltalk/Seaside的版本控制?,version-control,smalltalk,seaside,Version Control,Smalltalk,Seaside,我主要是一名JavaEE开发人员。我被要求探索在即将到来的网络项目中使用Smalltalk/Seaside的可能性。你可以想象,这引出了许多有趣的问题 开发团队如何使用Smalltalk/Seaside实现软件版本控制和修订控制。您可以使用Subversion或Git吗 据我所知,Smalltalk使用图像,而不是将每个类保存到自己的文件中。这如何影响管理源代码修订的能力,特别是在整个团队中 非常感谢您提供的任何见解 Smalltalk有自己的打包/版本控制系统,其中源代码包处于控制、拆分、合并

我主要是一名JavaEE开发人员。我被要求探索在即将到来的网络项目中使用Smalltalk/Seaside的可能性。你可以想象,这引出了许多有趣的问题

开发团队如何使用Smalltalk/Seaside实现软件版本控制和修订控制。您可以使用Subversion或Git吗

据我所知,Smalltalk使用图像,而不是将每个类保存到自己的文件中。这如何影响管理源代码修订的能力,特别是在整个团队中


非常感谢您提供的任何见解

Smalltalk有自己的打包/版本控制系统,其中源代码包处于控制、拆分、合并等状态。您计划使用哪种Smalltalk方言?Pharo有Monticello和Metacello,Squeak有Monticello,VisualWorks有STORE。

设置(和)

每个开发人员都以自己的形象工作。他对方法所做的每个更改都保存在本地更改文件中。这允许在图像崩溃时进行恢复。提交是通过创建一个文件来完成的,该文件具有包名、序列号和开发人员的名称。它知道自己的祖先。此文件保存到服务器。在这里,它是由一个男孩捡起的。这将运行单元测试和集成测试,并创建新映像,因此开发人员可以每天(至少)从一个新映像开始。下面是有关使用monticello的一些详细信息。产品组成(包装结构)是另一个包含说明的monticello文件。这也允许在Pharo上开发和在Gemstone上部署。偶尔需要添加类迁移

对于非smalltalk依赖项和开发、测试验收和生产差异,请使用(或者,希望很快)添加virtualbox映像的创建。当然,它们是使用git进行版本管理的

除了使用静态代码质量控制工具(还检查smalltalk方言之间的差异),添加并创建您自己的项目上下文相关的动态可视化

在Smalltalk中,本地开发人员使用带有关系数据库(例如PostgreSQL)的存储来存储本地提交。代码以包的形式组织,并带有名称空间。复制脚本用于将本地版本复制到中央数据库或从中央数据库复制本地版本。从那里,流程与Pharo设置相同

[更新]在Esug2012上,Dale Henrichs介绍了使用git和github管理多种方言的smalltalk代码的工作。基本上,定义了一个文件结构(对于Amber、Gemstone、Pharo、Squeak、VisualAge,对于VisualWorks)来在目录中存储smalltalk方法。目前,这主要是为了在方言之间交换代码,而不是作为本地SCM的替代品。

无论你选择哪种闲聊,我想你都会喜欢海边

简短回答:您(目前)不能使用Git或Subversion

更简短的回答:你不需要它:)

大答案:请参见Stephan关于Pharo it自身是如何创建的解释:)) 当然,如果你习惯了基于文件的系统,这在一开始会很奇怪,但是一旦你开始工作,你就会意识到你已经拥有了版本控制(monticello–这是Git/Subversion的替代品)和创建复杂安装(metacello–这是maven之类的替代品)所需的所有工具.
通过一些工作(一如既往,使用您选择的任何平台),您可以设置自己的持续集成服务器(jenkins或hudson或其他什么),很快您就可以像在其他环境中一样进行团队合作,但是有一个大的优点:你将开发Seaside/Smalltalk:P

Smalltalk中的开发通常更高效-但是你必须首先了解新的工具:Monticello/Metacello用于打包(将其视为在自己的ZIP文件中保存一个包,带有mcz扩展名,每次提交时都有自己的版本号)。Metacello提供了Monticello软件包组合在一起的信息,应该加载这些信息以提供完整的工作应用程序(类似于Maven中的POM,但在XXX的特定类文件配置中,XXX是组件名称)。 您不需要像subversion这样的非Smalltalk版本控制工具,除非您想要管理外部资源,如图片或数据库脚本


还可以看看Hudson/Jenking集成,因为这也将帮助您自动化图像构建和持续集成。

Svn/Git有一些工具,但我认为最好按照这里的流程使用Monticello,因为Monticello提供了与Git非常相似的体验,但使用起来要简单得多,与“Smalltalk方式”的集成度也要高得多

您没有指定使用哪种Smalltalk,但如果您打算使用Pharo,则一定要使用Monticello(当事情变得复杂时,请使用Metacello);如常见问题解答所述,您的信息已存在于右侧的用户卡中。另外,不要假设每个人都知道嫉妒是什么——似乎这个开发人员不知道!我建议对这些问题进行编辑,由Joseph Pelline、Alan Knight、Adrian Cho撰写的《掌握嫉妒/开发者》。