繁体   English   中英

如何将C#更改从一个ASP.NET应用程序转移到另一个?

[英]How to transfer C# changes from one ASP.NET application to another?

我们正在开发Caisis(Caisis.org)-开源临床数据收集系统。 Caisis是ASP.NET(4.0)(后面是C#代码)前端和SQL Server 2008后端。

Caisis版本会定期升级。 例如,我们一直在忙于Caisis 5.0版的开发,而现在已经发布了Caisis 6.0版。 现在,我们需要将所有前端和后端更改都转移到Caisis 6.0版。

可以使用Red Gate SQL /数据比较或Open DBDiff之类的开源DB工具来解决2个SQL Server数据库之间的同步差异。

但是,据我所知,没有等效的工具(专有或开源)来同步2个ASP.NET/C#应用程序。 目前,我们被简化为半自动方法,涉及使用robocopy检测两个文件系统之间的差异,然后手动应用这些更改。 有没有更有效的方法可以做到这一点?

我也遇到过类似情况。 答案很简单:这不是一件容易的事。 您可以使用Beyond Compare或Araxis Merge之类的工具(我认为“合并”更加用户友好,“ BC”更强大)。 做目录比较。 只需进行一些配置,就可以使那些工具隐藏所有相同的目录分支和文件,而仅留下一部分差异。 然后,您可以使用这些工具的文件比较功能来准确查看文件中发生了什么更改,并选择要提取的内容和要保留的内容。

(意见)您应该在干净的签出时执行此合并-也就是说,没有要签入的未完成文件。然后,在合并完成后,仅进行一次大型签入, 仅对升级合并进行更改。 然后,如果您花了太多时间或错过了一些东西,则可以回滚。 您可以回滚更改,进行修复,然后重试。

如果我要建立这种类型的新项目,我倾向于通过源代码控制分支和合并来处理它。 我将输入要修改的产品的原始代码作为起点(为了讨论起见,将其称为我的核心分支)。 在进行任何更改之前,我会将其分支到我的开发工作中(称为此开发人员)。 从这里继续,选择您喜欢的分支策略。

我要设置的关键是,我从不对核心分支进行任何更改,这仍然适用于我基于其修改的原始发行版。 然后,随着对原始代码的更改发布,我可以将其应用于我的核心分支。 从那里,我可以将它们合并到我的dev分支中,然后再通过其他任何分支合并到适当的发布代码中。

当然,这种方法取决于两件事:A)您使用的源代码控制系统在处理分支和合并方面做得不错。 B)您在项目开始时建立此分支结构。

在项目已经进行之后进行设置会困难得多。 一些源代码控制工具将允许您在离散的代码库之间建立分支关系,但是以我的经验,这样做几乎总是很复杂。 对于已经从原始文件中进行了重大修改的东西,Eli的建议可能是更好的方法之一。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM