既然如此,是否有人在NAV中使用Git?在使用过程中有遇到任何问题吗?我想知道这是否是一个好的解决方案,并且它是否比使用Git与.NET更加复杂(我发现使用Git与.NET相当容易)。
既然如此,是否有人在NAV中使用Git?在使用过程中有遇到任何问题吗?我想知道这是否是一个好的解决方案,并且它是否比使用Git与.NET更加复杂(我发现使用Git与.NET相当容易)。
是的,我们很成功地将Git与Dynamics NAV一起使用!
不好的是,在Git有意义之前,所有对象都必须被导出为txt。希望微软能够创建一个更容易的方法来将对象导出为txt。我们正在使用这种模型。创建一个带有通用主分支和每个更改对象的分支的Git存储库。所有源文件都必须与分支顶部文件具有相同的名称,以使Git跟踪差异。以这种方式使用Git,我们从不将任何内容合并到主分支中。开始使用Git后,共享对象的工作变得更加容易,并且可以跟踪其他NSC对代码所做的更改。IT-Revision很高兴,因为所有代码都有很好的文档记录,回退的方式也更加简单。我完全支持在Dynamics NAV中使用Git。
石油能源行业Navision顾问
我正在使用Dynamics NAV和Git,但并不是同时使用。让我解释一下原因。
Git本身很酷(与GitHub一起使用效果更好),但Windows版本很差,除非你不喜欢使用类Unix命令行,因为这是设置msysGit的推荐方式。在Windows上的GUI工具不好用,不幸的是。
对于我来说,让老板明白为什么使用分布式版本控制比通常的TFS更好是很困难的。对于以业务为导向的人来说,一个大型中央存储库更加安全(因为它是我自己支付的服务器,我控制访问权限)和更加健壮(我雇了一个系统管理员来运行维护程序)。
我决定不去反对这个意愿。我们使用分布式版本控制作为暂存区。所有不稳定的更改都存储在此区域内,我们在团队内进行测试。完成稳定后,对象合并到中央存储库中。每个人看起来都很开心。
关于Git:最近,由于以下原因,我转而使用另一种分布式版本控制——fossil:
关于我们的NAV解决方案。它有1000多个对象,大小超过20MB。
编辑:编码半年后的一些更新。
我们又回到了Git。因为它的自动合并功能真是太棒了。只为赢得赌局,我在4个小时内将一个解决方案(修改的标准对象和新对象)从NAV7CTP3移植到NAV7CTP5。而四名开发人员团队需要近三周的每天工作才能取得同样的结果。
Git确实有很大的优势。我相信其他分布式版本控制系统也可以达到同样的效果。
原因是:Git和其他分布式系统在提交时保存的信息比如TFS和SVN更多。在常规开发过程中,这并不是很重要,但当涉及合并时,Git中所有这些“冗余”信息都会产生巨大的影响。*.txt
文件。我知道有一些方法可以通过涉及 ROT
(如果我没记错的话是运行时对象表)直接从 C/SIDE
导出它们,但需要进行额外的开发工作。 - shytikov我已经长时间使用Git和Navision 2009(以及早期版本),这真的很值得。
由于没有本地Git支持,我将Navision代码导出到我们允许编程的ID号区域中,形成一个大型文本文件(选择.txt格式进行导出)。或者按日期对我更改的所有模块设置分隔符并导出它们。
我编写了一个Python脚本,将此文本文件拆分为每个对象(表单、表格、代码单元)的单独文件,就像您手动保存一样。它们保存在我受Git控制的网络文件夹下。
虽然需要几天时间才能完全使该过程正常运行,但现在整个过程每次更新只需要几分钟。唯一的缺点是Navision本身不会导出谁做了更改,因此Git将无法反映这一点。
仍然很好,我可以完全控制我们 Navision 源代码中发生的变化。此外,如果您正在一个文件不完整的 Navision 环境中工作,拥有完整的代码表单以供搜索是一个巨大的时间节省器。除了在代码库中搜索错误消息文本之外,另一个优点是您可以编写一个脚本,告诉您允许修改特定表格的代码。因此,如果您重构一个表格,您将立即知道需要检查哪些代码…
对于 Git 本身,我使用一些基本的命令行命令。要检查更改,我使用由当前 Git 版本本地支持的可视化 P4MERGE 工具。