在活动项目中改变TFS解决方案中的结构?

时间:2015-07-10 07:59:50

标签: c# .net visual-studio tfs projects-and-solutions

我们有一个包含大约30个项目的解决方案,这些项目在给定的目录结构中(在解决方案中)进行了编程。在文件系统上,项目位于所有地方,所以现在我需要清理它。但是有几个问题:

  1. 如果我在文件系统上移动项目,它将在解决方案中不可用,为了解决这个问题,我将不得不删除项目,然后将现有项添加到解决方案中。我不确定这会如何影响最不会丢失的TFS历史记录?
  2. 有人在这些项目上工作,如果在办理登机手续时搬家,可能会出现大问题吗?
  3. 那么如何在不停止此解决方案中的任何其他开发的情况下解决此更改?

2 个答案:

答案 0 :(得分:1)

我必须做同样的事情。 我们的解决方案是以这种方式组织的:

TeamProject
    App1
        DevFolder (contains branches of BranchTest)
            BranchOfDev1
            BranchOfDev2
            BranchOfDev3
            BranchOfDev4
        TestFolder
            BranchTest
        ProdFolder (contains branches of BranchTest)
            BranchProdV1
            BranchProdV2
            BranchProdV3
    App2
        Dev...
        Test...
        Prod...
    ...
  • 这只是一个解决方案,对其他文件夹/分支机构等中的现有项目有几个依赖关系。
  • 一切从TestBranch分支出来。 Devs Merge into Test,ProdVersions从Test。分支。
  • TestBranch包含最新版本的应用程序
  • 开发人员只在他们自己的开发分支中开发,当他们完成后,他们合并到TestBranch

我是这样做的:

  • 在TFS中创建一个新的团队项目
  • 根据现有结构创建新结构(分支概念正常)
  • DEV-STOP。每个人都必须合并到TestBranch

  • 同时移动了所有依赖项
  • 使用新的依赖关系位置手动编辑.sln,检查(回答您的问题)
  • 删除所有DevBranches
  • 在新结构中创建新的DevBranches
  • 每个人都删除他们的本地工作区,从新的TeamProject重新下载

  • 隐藏旧文件夹。如果你想保留历史,请不要删除它们。

  • 现在每个人都应该开心

编辑:我们现在正在为所有外部和常见依赖项创建nuget包。这种方式在未来我们将能够更新核心/依赖关系,而不会破坏任何使用它们的早期版本的东西。

答案 1 :(得分:1)

您需要快速完成,或者至少每个操作都应该快速。

如果您需要将项目移动到正确的位置,您应该:

  1. 通知所有正在移动项目的开发人员而不是结帐。
  2. 移动项目文件夹
  3. 在记事本中打开解决方案文件,并将位置参考更改为项目
  4. 保存并签入。
  5. 指示所有其他用户获取最新信息。
  6. 对于每一个动作都这样做,慢慢地过几天,你应该是好的。一个大爆炸也是可能的,但是如果你有50个Devs那么它很昂贵。