本文介绍了多个开发人员+单动态CRM实例+ Git - 如何克服挑战?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我们计划使用Solution Packager将解决方案文件分解为文件夹结构。

我们计划使用Solution Packager将解决方案文件分解为文件夹结构包含代表CRM解决方案每个组件的XML文件。



我们使用Git进行版本控制。我们预见到一些问题,因为我们认为它会增加更多的管理费用或涉及人工干预以避免一些冲突。

在Microsoft网站上,它提供了CRM解决方案文件存储在源代码管理下的示例,但开发人员A和开发人员B都独立对该解决方案的组件进行了更改。它说:

开发人员B已在开发人员A后面准备好了。


  1. 在提交之前,他必须获取最新消息来源,以确保没有事先签到与他的更改冲突。

  2. 存在冲突,因为活动联系人自从他上次检索最新消息源以来,已被修改。
  3. 开发人员B必须协调冲突。有可能使用源控制系统的功能可能有助于这一过程;否则以下选项都是可行的。


    • 开发者B通过源代码控制历史记录(如果可用)可以看到开发者A做出了先前的更改。通过直接沟通,他们可以讨论每个变化。然后开发商B只需要按照约定的决议更新他的组织。然后,他输出,提取并覆盖冲突的文件并提交。

    • 允许源代码管理覆盖他的本地文件。开发人员B打包解决方案并将其导入他的组织,然后评估视图的状态并根据需要重新定制它。接下来,他可以导出,提取和覆盖冲突的文件。

    • 如果以前的更改可能被认为是不必要的,则开发人员B允许他的文件副本覆盖源代码管理中的版本,提交。


对我来说,这似乎需要大量的人工干预合并的变化......这似乎不太理想。



想知道是否有人可以分享一些关于多个开发人员使用Single CRM实例的最佳实践的一些想法每个开发人员应该在哪里定制组件和插件?我们计划使用Git作为ALM,并使用Solution Packager来分解解决方案,以便我们可以跟踪Git中的XML文件。



我觉得这是CRM仍然存在困难的那些领域,并且只提供有限的工具和支持。

根据我的经验,对于每个人来说,最简单和最实用的做法是在CRM中完成所有的定制和配置工作,并且忘记了正常的源代码管理。不得不导入和导出解决方案文件可能是一个非常缓慢的过程,这会使你发疯。在客户关系管理之外编辑解决方案文件是您希望避免的矿难领域。当处理单个CRM实例时,不需要合并,因为每个人都可以立即看到彼此的变化。根据我的经验,这个过程通常会增加开销,通常可以避免。



定期执行导出到源代码管理(例如半夜)仍然是明智的,所以您如果出现问题,请备份。



您还可以通过源代码正常控制源代码,例如插件代码。

另外,上面提到的例子涉及开发多个CRM实例的开发人员(例如,每个开发人员都有自己的CRM开发实例),而不是单个CRM实例你提到。


We are 4 developer supposed to work on a same CRM instance for our next CRM project.

We are planning to use Solution Packager to decompose solution file into folder structure containing XML files representing each component of the CRM solution.

We are using Git for version controlling.

Currently we foresee some issues due to which we suspect it will add more overheads or involve manual intervention to avoid some of the conflicts.

On the Microsoft website, it gives an example where the CRM solution file is stored under Source Control but developer A and developer B have both independently made changes to components of that solution. It says:

Developer B is ready next following developer A.

  1. Before he submits he must get the latest sources to ensure no prior check-ins conflict with his changes.
  2. There is a conflict because the file for "Active Contacts" has been modified since he last retrieved the latest sources.
  3. Developer B must reconcile the conflict. It is possible the capabilities of the source control system in use may aide this process; otherwise the following choices are all viable.
    • Developer B, through source control history, if available, can see that the developer A made the prior change. Through direct communication they can discuss each change. Then developer B only has to update his organization with the agreed resolution. He then exports, extracts, and overwrites the conflicting file and submits.
    • Allow source control to overwrite his local file. Developer B packs the solution and imports it into his organization, then assesses the state of the view and re-customizes it as necessary. Next, he may export, extract, and overwrite the conflicting file.
    • If the prior change can be deemed unnecessary, developer B allows his copy of the file to overwrite the version in source control and submits.

To me it seems this will require a lot of manual intervention for the changes to merge.. which seems not too ideal.

Wondering if anyone can share some ideas on what should be the best practice for multiple developers to work on Single CRM instance where each developer is supposed to customize components and plug-ins? We are planning to use Git as ALM, and Solution Packager to decompose a solution so that we can track XML files in the Git.

Any help on this will be much appreciated.

解决方案

I feel this is one those areas where CRM still makes life difficult, and provides only limited tooling and support.

In my experience, its just easiest and most practical for everyone to do all their customistaion and configuration work in CRM, and forgot about 'normal' source control. Having to import and export solution files can be a very slow process which will drive you mad. Editing solution files outside of CRM is a mine field you will want to avoid. When working on a single CRM instance no merging is required, as everyone can immediately see each others changes. In my experience generally this process will just add overhead which can normally be avoided.

Doing an export to source control regularly (e.g. middle of the night) is still sensible so you have a backup if things go wrong.

You can also still source control all your source code normally, e.g. plugin code.

Also the example you noted above involves the developers working on multiple CRM instances (e.g. each developer has their own CRM development instance), not a single CRM instance as you mention.

这篇关于多个开发人员+单动态CRM实例+ Git - 如何克服挑战?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-04 20:48