I am wondering what is the best way to use workspaces in visual studio. We have 150+ webservices that are all part of the same team project $/MyTeamProject without being related at all. The reason for them all being part of the same team project as they are all maintained by the same group of people within our organization.
我想知道在visual studio中使用工作区的最佳方法是什么。我们有150多个web服务,它们都是同一个团队项目$ / MyTeamProject的一部分而根本没有相关性。他们都是同一团队项目的一部分的原因,因为他们都是由我们组织内的同一群人维护的。
Each webservice has the following structure
每个Web服务具有以下结构
$/MyTeamProject/WebService1 $/MyTeamProject/WebService1/Main $/MyTeamProject/WebService1/Release/1.0 $/MyTeamProject/WebService1/Release/1.1 $/MyTeamProject/WebService2 $/MyTeamProject/WebService2/Main ... etc.
I am wondering what is the proper way to use workspaces with this setup as currently there is only mapping for the teamproject so all my webservices are part of the same workspace. Should I create mapping for the main branch and for each release branch as a separate workspace or should I map each webservice to its own workspace such as $/MyTeamProject/WebService1?
我想知道在这个设置中使用工作区的正确方法是什么,因为目前只有teamproject的映射,所以我的所有webservices都是同一个工作区的一部分。我应该为主分支和每个版本分支创建映射作为单独的工作区还是应该将每个Web服务映射到它自己的工作区,例如$ / MyTeamProject / WebService1?
Any help would be appreciated.
任何帮助,将不胜感激。
I can't put each of the webservices as its own teamproject as the tfs is being shared between several groups with the same magnitude of projects and therefore we are limited by our own teamproject for all of the webservices.
我不能把每个web服务都作为自己的teamproject,因为tfs是在具有相同规模的项目的几个组之间共享的,因此我们受限于我们自己的所有web服务的teamproject。
2 个解决方案
#1
1
You said that the webservices was not related at all. I then assume that they are released separately.
你说网络服务根本没有关系。然后我假设它们是单独发布的。
I can't see any reason to use multiple workspaces in your scenario. I suggest that you remove the mapping from the top level project "MyTeamProject". Then you have flexibility to map the subfolders to whatever local folder you want.
在您的方案中,我看不出有任何理由使用多个工作区。我建议你从*项目“MyTeamProject”中删除映射。然后,您可以灵活地将子文件夹映射到所需的任何本地文件夹。
#2
0
If you have one workspace per webservice then you will get 150*#releases workspaces. This will get really hard to manage for build versions, labelling etc. Fewer workspaces will mean less builds to manage.
如果每个Web服务有一个工作区,那么您将获得150 *#个版本的工作空间。对于构建版本,标签等,这将变得非常难以管理。更少的工作空间意味着需要管理的构建更少。
I would recommend having a workspace per release. Generally you would probably only be working on one release at a time and this will allow you to manage all code for a single release effectively. Also you can then map your workspaces on the client into a more logical structure as you allude to in the question.
我建议每个版本都有一个工作区。通常,您可能一次只能处理一个版本,这将允许您有效地管理单个版本的所有代码。此外,您可以将客户端上的工作空间映射到更具逻辑性的结构中,如您在问题中所提到的那样。
For example
\Projects\MyTeamProject\Main\WebService1
\Projects\MyTeamProject\Main\WebService2 ...
\ Projects \ MyTeamProject \ Main \ WebService1 \ Projects \ MyTeamProject \ Main \ WebService2 ...
\Projects\MyTeamProject\Release1.0\WebService1
\Projects\MyTeamProject\Release1.0\WebService2 ...
\ Projects \ MyTeamProject \ Release1.0 \ WebService1 \ Projects \ MyTeamProject \ Release1.0 \ WebService2 ...
\Projects\MyTeamProject\Release1.1\WebService1
\Projects\MyTeamProject\Release1.1\WebService2 ...
\ Projects \ MyTeamProject \ Release1.1 \ WebService1 \ Projects \ MyTeamProject \ Release1.1 \ WebService2 ...
etc
#1
1
You said that the webservices was not related at all. I then assume that they are released separately.
你说网络服务根本没有关系。然后我假设它们是单独发布的。
I can't see any reason to use multiple workspaces in your scenario. I suggest that you remove the mapping from the top level project "MyTeamProject". Then you have flexibility to map the subfolders to whatever local folder you want.
在您的方案中,我看不出有任何理由使用多个工作区。我建议你从*项目“MyTeamProject”中删除映射。然后,您可以灵活地将子文件夹映射到所需的任何本地文件夹。
#2
0
If you have one workspace per webservice then you will get 150*#releases workspaces. This will get really hard to manage for build versions, labelling etc. Fewer workspaces will mean less builds to manage.
如果每个Web服务有一个工作区,那么您将获得150 *#个版本的工作空间。对于构建版本,标签等,这将变得非常难以管理。更少的工作空间意味着需要管理的构建更少。
I would recommend having a workspace per release. Generally you would probably only be working on one release at a time and this will allow you to manage all code for a single release effectively. Also you can then map your workspaces on the client into a more logical structure as you allude to in the question.
我建议每个版本都有一个工作区。通常,您可能一次只能处理一个版本,这将允许您有效地管理单个版本的所有代码。此外,您可以将客户端上的工作空间映射到更具逻辑性的结构中,如您在问题中所提到的那样。
For example
\Projects\MyTeamProject\Main\WebService1
\Projects\MyTeamProject\Main\WebService2 ...
\ Projects \ MyTeamProject \ Main \ WebService1 \ Projects \ MyTeamProject \ Main \ WebService2 ...
\Projects\MyTeamProject\Release1.0\WebService1
\Projects\MyTeamProject\Release1.0\WebService2 ...
\ Projects \ MyTeamProject \ Release1.0 \ WebService1 \ Projects \ MyTeamProject \ Release1.0 \ WebService2 ...
\Projects\MyTeamProject\Release1.1\WebService1
\Projects\MyTeamProject\Release1.1\WebService2 ...
\ Projects \ MyTeamProject \ Release1.1 \ WebService1 \ Projects \ MyTeamProject \ Release1.1 \ WebService2 ...
etc