更改活动项目中 TFS 解决方案的结构?
Changing structure within a TFS solution in active projects?
我们有一个包含大约 30 个项目的解决方案,这些项目在给定的目录结构(在解决方案中)中被组织化。然而,在文件系统上,项目到处都是,所以现在我需要清理它。然而,这有几个问题:
- 如果我在文件系统上移动一个项目,它将在解决方案中不可用,为了解决这个问题,我将不得不删除该项目,然后将现有项目添加到解决方案中。我不确定这将如何影响最不会丢失的 TFS 历史记录?
- 有人在做这些项目,如果他们在入住时搬家,可能会有大问题?
那么,我该如何解决这个变化,同时又不会阻碍该解决方案中的任何其他开发?
我不得不做同样的事情。
我们的解决方案过去和现在都是这样组织的:
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...
...
- 这只是一个解决方案,对其他 Folders/branches 等中的现有项目存在多个依赖关系。
- 测试分支的所有分支。 Devs 合并到 Test,ProdVersions 从 Test 分支出来。
- TestBranch 包含应用程序的最新版本
- 开发人员只在他们自己的开发分支中开发,完成后他们会合并到 TestBranch
我是这样搬的:
- 在 TFS 中创建一个新的团队项目
- 根据现有结构创建新结构(分支概念可以)
DEV-STOP。每个人都必须 Merge 到 TestBranch
在某一时刻将测试分支移动到新位置。
- 也移动了所有依赖项
- 使用新的依赖位置手动编辑 .sln,检查(回答您的问题)
- 删除所有 DevBranches
- 在新结构中创建新的 DevBranches
每个人都删除他们的本地工作区,从新的 TeamProject 重新下载
隐藏旧文件夹。如果您想保留历史,请不要删除它们!
大家现在应该很开心吧
编辑:我们现在正在为所有外部和公共依赖项创建 nuget 包。这样,将来我们将能够更新 core/dependencies 而不会破坏任何使用它们早期版本的内容。
动作要快,至少每个动作都要快。
如果您需要将项目移动到正确的位置,您应该:
- 通知所有开发人员您正在移动项目而不是签出。
- 移动项目文件夹
- 在记事本中打开解决方案文件并将位置引用更改为项目
- 保存并签入。
- 指示所有其他用户获取最新信息。
在几天内慢慢地为每个动作做这个,你应该会很好。大爆炸也是可能的,但如果你有 50 个开发人员,那就太昂贵了。
我们有一个包含大约 30 个项目的解决方案,这些项目在给定的目录结构(在解决方案中)中被组织化。然而,在文件系统上,项目到处都是,所以现在我需要清理它。然而,这有几个问题:
- 如果我在文件系统上移动一个项目,它将在解决方案中不可用,为了解决这个问题,我将不得不删除该项目,然后将现有项目添加到解决方案中。我不确定这将如何影响最不会丢失的 TFS 历史记录?
- 有人在做这些项目,如果他们在入住时搬家,可能会有大问题?
那么,我该如何解决这个变化,同时又不会阻碍该解决方案中的任何其他开发?
我不得不做同样的事情。 我们的解决方案过去和现在都是这样组织的:
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...
...
- 这只是一个解决方案,对其他 Folders/branches 等中的现有项目存在多个依赖关系。
- 测试分支的所有分支。 Devs 合并到 Test,ProdVersions 从 Test 分支出来。
- TestBranch 包含应用程序的最新版本
- 开发人员只在他们自己的开发分支中开发,完成后他们会合并到 TestBranch
我是这样搬的:
- 在 TFS 中创建一个新的团队项目
- 根据现有结构创建新结构(分支概念可以)
DEV-STOP。每个人都必须 Merge 到 TestBranch
在某一时刻将测试分支移动到新位置。
- 也移动了所有依赖项
- 使用新的依赖位置手动编辑 .sln,检查(回答您的问题)
- 删除所有 DevBranches
- 在新结构中创建新的 DevBranches
每个人都删除他们的本地工作区,从新的 TeamProject 重新下载
隐藏旧文件夹。如果您想保留历史,请不要删除它们!
大家现在应该很开心吧
编辑:我们现在正在为所有外部和公共依赖项创建 nuget 包。这样,将来我们将能够更新 core/dependencies 而不会破坏任何使用它们早期版本的内容。
动作要快,至少每个动作都要快。
如果您需要将项目移动到正确的位置,您应该:
- 通知所有开发人员您正在移动项目而不是签出。
- 移动项目文件夹
- 在记事本中打开解决方案文件并将位置引用更改为项目
- 保存并签入。
- 指示所有其他用户获取最新信息。
在几天内慢慢地为每个动作做这个,你应该会很好。大爆炸也是可能的,但如果你有 50 个开发人员,那就太昂贵了。