支持完全手动更新或合并的源代码控制服务器或客户端

我们正在研究一个大型c#项目,该项目最初在tfs源代码管理下,后来移至git,并由于各种原因而最终以svn源代码管理结束。

对该应用程序的更新通常需要在多个复杂的c#,js和cshtml文件中进行更改,因此经常发生不同的任务最终导致更改同一页面和代码段的情况,但是对于完全不同的问题,因此我们经常发生多次并发,无冲突,对条件的更改以及相同功能的其他代码流部分。

我们的问题是,一旦更新,我们使用的每个源代码控制系统最终都会混乱我们的文件,因此我们想找到一个允许对所有文件进行actUAL MANUAL UPDATE的源代码控制系统或一个客户端。我们花太多时间来确保更新正确,因此我们宁愿手动更新以确保一切正常。 我们的意思是,由于更改的性质,仅列举我们遇到的两个最简单的问题,便为下拉菜单分配了一个值,该值会被来自不同编码器的另一个更新覆盖,之后又向下或对同一个隐藏输入框有多个分配。显然这不是更新工具的错,但这正是由于我们的工作性质而发生的。

唯一有效的方法是在实际更新/提取之前手动检查每个文件中的差异(使用存储库检查),在我们的本地版本中手动编辑更改,然后将更新工具“拖入” -not -更新其条款,但这很耗时。

关于实际冲突,我们使用了tortoisesvn自动使整个文件无效的功能,因此对于这些文件的比较和冲突解决是有意识的手动操作,并允许我们根据需要对问题进行排序。

因此,我们恳请您:是否有人知道允许在更新/提取/提取过程中实际手动更新所有文件的源代码控制客户端或服务器?

我们在想像的东西与任何冲突解决工具一样,但都应用于更新。 基本上,我们不希望更新以静默方式更改代码,但我们希望查看将要进行的每个更新,以决定“左走还是走右”,并避免追踪为什么某些东西停止工作的痛苦工作。 >

谢谢

yghe001 回答:支持完全手动更新或合并的源代码控制服务器或客户端

internal:forcedump mergetool在Mercurial中可以完成所要求的技巧,但无论如何还是走错了路。

,

您可以使用git merge --no-commit合并另一个分支而不提交它,这样您就可以检查更改,然后提交所需的更改。我不相信有任何允许它的Git托管工具,因此您需要在命令行执行每个手动合并。

但是,正如其他人提到的那样,这不是解决您的问题的好方法。尽管Git支持这一点,但是这会很痛苦,并且不是 any 版本控制系统的预期用途。最好准确地确定正在发生什么类型的问题,并考虑可能的解决方案。

例如,如果您发现项目列表和这些项目的计数不同步,那么您可能会决定计算该计数,而不是在代码中明确地编写该计数。

如果发现有多个项目使用相同的常量值,则可以将这些值仅保留在一个按值排序的列表中,这样,如果两个独立的更新共享相同的值,则Git会冲突。然后,开发人员可以查看整个更改,并确定作为解决冲突的一部分需要更新的内容。

这类问题确实很少在开发中发生,但是通常使用众所周知的技术来解决,以帮助工具在可能的情况下失效,以及使用自动测试来使细微的损坏变得明显。我强烈推荐这种方法,而不是尝试对工具进行微管理。

本文链接:https://www.f2er.com/3122633.html

大家都在问