我刚开始使用visualstudio.com与VS2013(第一次使用源代码控制),并运行一个网站项目。我的结构如下:
MyCompany.VisualStudio.com\DefaultCollection
- My Site (project)
- BuildProcessTemplates
- Site (folder)
- My Site (folder)
- Site (branch)
- subfolders
- Site Branch 1 (branch - created just now from "Site")
- subfolders
在解决方案资源管理器中,我只看到“Site”及其各自的文件。如何切换到“Site Branch 1”的工作?我假设我可以“打开现有网站”并在文件系统上找到它,但这是正确的方法吗?我原本希望可以选择使用Source Control Explorer中的文件。
目前(分支前),Solution Explorer反映了我在Control Explorer中看到的内容:
分支后(创建“开发”分支),如果我单击“开发”分支中的文件,它将在当前项目下的“杂项文件”文件夹下打开,然后导致编译错误:
因此,忘记工作“主要”并改为“开发”工作,我是否必须从VS内部“打开网站”,或者我可以将“开发”网站添加到当前解决方案中(听起来不对)?
答案 0 :(得分:10)
Solution Explorer将显示解决方案中的文件; Source Control Explorer将显示源代码管理中的所有文件,您应该能够直接打开它们(假设该源代码控制路径存在工作区映射)。例如,从这开始(其中-
是一个文件夹而*
是一个文件,请注意我已经修改了一些内容):
MyCompany.VisualStudio.com\DefaultCollection
- My Site (team project)
- BuildProcessTemplates
- Main (branch)
* MyGreatProject.sln
- MyGreatProject (folder)
* MyGreatProject.csproj
* MyGreatPage.html
* web.config
如果您打开解决方案,它将显示Main \ MyGreatProject \的内容....现在让我们分支:
MyCompany.VisualStudio.com\DefaultCollection
- My Site (team project, source path = $/MyGreatProject)
- BuildProcessTemplates
- Main (branch)
* MyGreatProject.sln
- MyGreatProject (folder)
* MyGreatProject.csproj
* MyGreatPage.html
* web.config
- development (branch)
* MyGreatProject.sln
- MyGreatProject (folder)
* MyGreatProject.csproj
* MyGreatPage.html
* web.config
如果您打开$ / MyGreatProject / Main / MyGreatProject.sln,它仍然只显示那些文件(以及那个项目)。 Source Control Explorer将显示所有文件,您可以直接打开它们。如果您进行了更改(例如编辑$ / MyGreatProject / development / MyGreatProject / web.config),它将是您工作区中的待处理编辑。如果从Source Control Explorer打开$ / MyGreatProject / development / MyGreatProject.sln,它现在将打开并在$ / MyGreatProject / development下显示这些文件。
基于您的更新(也修复了我的TFS路径):
解决方案文件应作为源文件之一签入分支。如果您在一个分支中添加项目(例如,您在开发中创建一个控制库),那么您需要在解决方案中,但只能在正在完成工作的分支中。
以下是我如何构建它的方式。您可以看到$ / MyGreatProject / Main /如何包含解决方案文件,并且该网站位于其下的文件夹中(这很重要,因为VS不处理解决方案位于网站文件夹中的网站项目非常好):
发展看起来一样。
如果我在VS中打开$ / MyGreatProject / Main / MyGreatProject.sln,并从Source Control Explorer打开,我打开$ / MyGreatProject / Development / MyGreatWebsite / Default.aspx,它打开正常;我没有看到任何编译问题,也没有将其添加为misc文件。这是我的工作区映射:
您可以看到工作区映射位于我的项目的根目录,因此它知道任何分支中的所有文件。当我分支时,我已将所有文件同步到磁盘本地,因此它不会在%temp%文件夹中打开。
当我将工作区映射更改为仅包含Main,然后从Developer打开文件时,它确实下载到%temp%,我确实看到代码隐藏文件丢失的编译问题,这是有意义的,因为它只会下载刚刚打开的文件(我想)。我没有看到它作为misc文件打开,但不确定为什么它们在我们两个人之间表现不同。
无论如何,如果你有包含两个文件夹的工作区映射,团队资源管理器会获得一些方便的功能。首先,它将为您提供主页上工作区中可用的所有解决方案,因此您无需浏览Source Control Explorer或Windows资源管理器即可找到它们:
如果解决方案列表太长(最多显示20个),则Open ...链接将显示工作区根目录中的文件选择器对话框。
它还会显示工作区中所有文件的待定更改,因此如果您在多个分支中进行更改,您可以一起检查它们,也可以从当前签入中排除一个分支中的文件并提交它们单独(此视图也不会单独调出分支,但您可以看到文件的路径):