我在一家开发商店与大约20名其他开发人员一起工作。将更改合并到Designer.cs文件或.Resx文件真是件苦差事,因为50%的更改只涉及更改两次更新中相同代码的排序。
其他开发团队做了什么来保持这些文件的顺序,这样当两个人进行更改时,更改可以轻松地合并到文件中,而不必协调刚刚在其中移动的属性?
在那里有CodeProject项目,在比较它们之前对数据进行排序......这样可以更容易地合并更改。但这是我想要更好地自动化的额外步骤。
有没有人想出一种方法将sort / diff / merge-into-current-structure流程整合到自动化解决方案中?
我没有使用TFS,所以也许他们已经想到了这一点。但我只是觉得我会看到是否有人有任何诡计?
答案 0 :(得分:0)
您提到的codeproject app可以作为预建步骤执行,因此您无需手动执行任何操作,只需一次性设置。
如果将resx文件拆分为较小的文件(即避免使用大量的全局字符串表),则可以最大限度地减少争用。只要程序员试图在短时间内保持锁定,您就可以使用独占锁定来保证一次只能有一个用户对任何文件进行编辑,并且可以消除整个合并问题 - 通常这可以在没有太多的情况下实现只要您的工作实践有效,就会给您带来不便。将文件的更改限制为有限的一组特定用户可以提供帮助(也可以提高ui的一致性)
最后一个选择是投资一个更好的合并工具,以尽量减少合并的难度。
无论您选择哪种方法,都需要进行一些妥协。
答案 1 :(得分:0)
我的团队使用一组数据库表和几个网页来维护这些值,并允许完成翻译。
然后我们有一个导出应用程序,它使用ResXResourceWriter
类生成resx文件,并通过调用resgen.exe工具生成designer.cs文件。
我们都将导出应用程序的本地副本指向一个公共数据库,我们的自动构建服务器以控制台模式运行应用程序,任何构建都始终拥有最新资源。
如果你看一下我最近的一些问题,你会发现我刚刚解决了这个过程中的一些问题。
希望,这会给你一些想法。绝对值得花时间来做到这一点。特别是从你的情况听起来,几天写一些支持工具将花费时间。