我们有一个MVCC#解决方案,它是由多个项目(数据、服务、模型等)组成的,它最初在TFS中保存在一个DEV分支中。然后我们创建了一个Main分支,并将这个项目放入Main.然后我们从Main中创建了一个新的DEV分支(task-1271),这样我们就可以进行一些改进。然后,我们创建了一个新的DEV分支(task-1316),以便进行进一步的增强。我注意到Data项目指向之前的DEV分支(task-1271)中的Data项目dll(debugbin文件夹)。这就造成了问题,因为当我运行迁移时,它不会接收到模型变化。经过一番努力,我们最终让它接收到了迁移的模型变化。现在我不愿意把项目检查到DEV中,因为它似乎仍然指向之前的任务文件夹。我不想更新两个DEV分支(如果会发生这种情况的话)。
是不是每次合并回Main时都会发生这种情况?它会以某种形式对之前的DEV分支文件夹有引用?这种TFS策略是否有缺陷?在合并和DEV分支解决方案时,是否应该进行一些步骤?
非常感谢!
@Jason,我强烈建议,作为构建c#项目的产物的文件(如dlls)应该是 不 被检查到您的版本控制系统(VCS)中。这被认为是在使用 任何 VCS。见 版本控制概念和最佳实践 迈克尔-恩斯特的著作,特别是题为 "我是谁?不要提交生成的文件.
你最好的办法是从VCS中完全删除DLL文件。一般的想法是检查出任何包含生成文件的分支的最新副本,将它们全部删除,然后提交或签入该分支。
另一件重要的事情是使用精心设计的流程来与VCS进行分支和合并。网络上有很多关于这个话题的讨论,人们往往对他们最喜欢的VCS流模型很有意见。两个非常流行的模型是Gitflow和GitHubflow。
对于Gitflow,我推荐Vincent Driessen的原帖。一个成功的Git分支模型 或Atlassian Gitflow工作流).
对于GitHub Flow,我会从GitHub的指南开始做起 了解GitHub的流程).