【发布时间】:2014-11-25 11:58:18
【问题描述】:
我最近继承了一个没有版本控制的 ASP.Net Web Forms 项目,我正试图将它移到 TFS 中。在某些时候,该项目被拆分为一个客户端创建一个自定义版本,其中登录使用 ADFS 而不是我们的数据库驱动表单。拆分后,在主版本中添加了一些功能来管理用户;自定义版本中不需要这些。如果对一个版本的任何更改影响到非定制部分,则手动将其应用于另一个版本(尽管可以预见,这有时会被遗忘)。
每个版本在开发和生产服务器上都有一个文件夹,所以文件夹结构是这样的:
/Production/General
/Production/Custom
/Dev/General
/Dev/Custom
假设很难通过功能切换将两个版本完全合并,那么管理此问题的最佳方法是什么?
我在想我可以使用 diff 来提取生产版本的共同点,并将其作为我的 MAIN 分支。然后我可以让两个生产版本从 MAIN 分支,并将它们的当前状态作为第一次签入,然后对 dev 文件夹执行类似的操作,如下所示:
- MAIN
| |- General
| |- GeneralDev
|
|- Custom
|- CustomDev
但是,我不确定如何管理合并。有没有办法防止某些文件只在某些分支之间合并?如果我在 CustomDev 中进行更改,我希望将其正常合并到 General,然后我希望能够将该更改转移到 General 和 GeneralDev,而无需拉取 Custom 具有的所有其他自定义...
有没有办法很好地做到这一点(每次合并时都不必排除文件),还是我只需将它们视为两个单独的项目并手动同步更改?
【问题讨论】:
标签: version-control tfs branching-and-merging