Visual studio Visual Studio';s与Performce的源代码管理集成工作?
我们正在使用Perforce和visualstudio。每当我们创建一个分支时,除非我们使用“开源控制”,否则某些项目将不绑定到源代码管理,但其他项目无论如何都可以工作。从我的调查中,我知道了一些相关的事情: 在.csproj文件中,有以下设置:Visual studio Visual Studio';s与Performce的源代码管理集成工作?,visual-studio,version-control,perforce,Visual Studio,Version Control,Perforce,我们正在使用Perforce和visualstudio。每当我们创建一个分支时,除非我们使用“开源控制”,否则某些项目将不绑定到源代码管理,但其他项目无论如何都可以工作。从我的调查中,我知道了一些相关的事情: 在.csproj文件中,有以下设置: 有时它们都设置为“SAK”,有时不设置。如果上面写着“SAK”,事情似乎更有可能发生 在我们的.sln文件中,有许多项目的设置: SccLocalPath# SCCProjectFilePathRelatizedFromConnectio
- SccLocalPath#
- SCCProjectFilePathRelatizedFromConnection#
- SCCProjectionQueName#
- 当您“更改源代码管理”并绑定项目时会发生什么?VisualStudio如何决定在项目和解决方案文件中放置什么
- 当您“从源代码控制打开”时会发生什么
- SccLocalPath和SCCProjectFilePathRelativedFromConnection所指的“连接”文件夹是什么?Visual Studio/Perforce如何选择它
- 是否有推荐的方法使源代码管理绑定即使在创建解决方案的新分支时也能继续工作
2012年6月新增:
我不再使用Perforce了,所以我不能担保,但请看下面的内容。很明显,这是在开发中。希望它能把这些乱七八糟的东西清理干净 我能回答最后一个问题 为了使源代码管理绑定即使在创建新分支时也能正常工作,请遵循严格的层次结构:
/Solution
/library1
/library2
/product1
/product2
/subsolution
/sublibrary1
/subproduct1
每个文件必须正好位于一个.vcproj中。同一目录中可以有多个.vcproj,但如果它们共享文件,则共享文件必须放在各自的.vcproj中
如果你对此毫不留情,那么所有的Scc内容都将是相对路径,因此一个新的分支将起作用(因为它只会更改最顶层的目录)。非常糟糕。我知道这不是你想要的问题的答案(将来,也许你可以缩小焦点?),但是源代码管理与VisualStudio的集成太糟糕了。原因是他们都必须使用微软糟糕的SCC界面。真可怜!他们将源代码管理信息放在项目文件中!他们为什么要这样做
只需放弃VisualStudio集成,使用Perforce客户端即可。没有那么多额外的工作。您不能每天花30秒切换到Performance客户端并从那里签入/签出文件?如果使用Visual Studio P4插件集成,那么重命名文件或将其移动到新文件夹目录的支持将是可怕和痛苦的。不存在提醒P4重命名文件或文件已被移动的内置功能 问题在于,重命名文件不仅需要更新关联的VS项目文件,而且如果您想保持正确的修订历史记录,还需要将更改通知Performce 目前,如果使用VS集成,我看不到一种方法可以在单个操作中同时完成这两项工作。相反,您必须:
GlobalSection(SourceCodeControl) = preSolution
SccNumberOfProjects = 1
SccLocalPath0 = .
SccProjectName0 = Tutorial
SccProvider0 = MSSCCI:Perforce\u0020SCM
EndGlobalSection
<PropertyGroup>
...
<SccProjectName>Tutorial</SccProjectName>
<SccLocalPath>..\..</SccLocalPath>
<SccProvider>MSSCCI:Perforce SCM</SccProvider>
...
</PropertyGroup>
<PropertyGroup>
<SccProjectName>SAK</SccProjectName>
<SccProvider>SAK</SccProvider>
<SccAuxPath>SAK</SccAuxPath>
<SccLocalPath>SAK</SccLocalPath>
</PropertyGroup>
SccProjectName0 = Perforce\u0020Project
SccProvider0 = MSSCCI:Perforce\u0020SCM
SccProjectName0 = Perforce\u0020Project
SccProvider0 = MSSCCI:Perforce\u0020SCM