我所在的小组开始使用 InterSystems Ensemble(建立在 InterSystems Caché 之上的集成框架)进行开发。
InterSystems 尚未使 Ensemble Management Portal 具有源代码控制意识,这似乎是我们希望解决的开发团队问题的根源。
我想知道您为 Ensemble/Caché 使用的版本控制系统以及您如何围绕它构建您的开发过程。
我所在的小组开始使用 InterSystems Ensemble(建立在 InterSystems Caché 之上的集成框架)进行开发。
InterSystems 尚未使 Ensemble Management Portal 具有源代码控制意识,这似乎是我们希望解决的开发团队问题的根源。
我想知道您为 Ensemble/Caché 使用的版本控制系统以及您如何围绕它构建您的开发过程。
我找到了VC/m,一个为 Caché 设计的版本控制系统。
如果您有任何经验,请随时添加您的评论。
另一种选择似乎是专为 Caché 设计的TrackWare 。
如果您不害怕开发工作,您可以进行一些开发以将 Studio 连接到您当前的源代码控制工具。Cache 中有一些钩子,可让您检测对文件的修改并与源代码控制工具进行交互。
这里是一个 pdf 的链接,描述了基础: 使用 Studio Source Control Hooks
当然,使用此解决方案,您将不得不做很多工作。
我正在使用 Mercurial,虽然我确实使用了 Cache Studio 源代码控制钩子(我没有使用 ensemble),但我认为基本上相同的解决方案对你有用。
关键是它是分布式源代码控制。所以这个钩子所做的就是,在保存时,将当前文件导出到我硬盘上的一个文件夹,然后将它签入我的本地存储库。当事情在本地正常运行时,我将其推送到中央存储库 - 换句话说,我只是以正常方式使用分布式源代码控制。
每次保存都很好,因为如果我把事情搞砸了,这给了我一种回滚的方法,但这并不是必需的。当您从 Cache 命令提示符调用代码时,您可以编写一些将代码推送到本地存储库的内容。
使用分布式源代码控制,不支持签入和签出功能这一事实并不重要,您可以在推送到中央存储库时通过合并来处理这些问题(或者您决定构建存储库)。
一个警告 - 对于缓存类定义,它们以您未定义的格式导出为 XML。它包括文件生成时间的时间戳和最后修改日期。这些使源代码控制系统误以为它们已更改而实际上并未更改。因此,您必须至少解析 XML 以将其删除。我不知道有一个标志可以防止它们首先生成。
最佳解决方案!祝你好运!
Synerva 的 CodeTools提供了一个很好的解决方案。已经在几个项目中使用它很长一段时间了。
回复晚了,但无论如何 - 你可以看看 Synerva 的 CodeTools。. CodeControl 用作 Studio 插件