我正在开发的项目使用.NET解决方案文件和多个C#项目。 IDE是Visual Studio 2012,Perforce用于源代码管理。 .sln
和.csproj
文件包含SCC绑定信息,例如,.csproj文件:
<SccProjectName>Perforce Project</SccProjectName>
<SccLocalPath>..</SccLocalPath>
<SccAuxPath>
</SccAuxPath>
<SccProvider>MSSCCI:Perforce SCM</SccProvider>
...和.sln文件:
Global
GlobalSection(SourceCodeControl) = preSolution
SccNumberOfProjects = 43
SccLocalPath0 = .
SccProjectUniqueName1 = AnotherProj\\AnotherProj.csproj
SccLocalPath1 = .
SccProjectFilePathRelativizedFromConnection1 = AnotherProj\\
SccProjectUniqueName2 = MyProj\u0020Domain\\MyProj\u0020Domain.csproj
SccLocalPath2 = .
SccProjectFilePathRelativizedFromConnection2 = MyProj\u0020Domain\\
... etc ...
According to Perforce,有一个从P4SCC迁移到P4VS的过程:
从P4SCC迁移到P4VS迁移您的解决方案和项目 从P4SCC,Perforce SCC插件到P4VS,你必须这样做 以下: 1.从解决方案(.sln)文件和所有项目文件(csproj,vcxproj等)中删除绑定。 2.删除MSSCCPROJ.SCC和其他源控件特定的文件。 3.将所有开发人员移至P4VS并让他们卸载旧的P4SCC插件。有关详细说明,请参阅 www.perforce.com/perforce/doc.current/user/p4vs_p4scc_migration.txt
但是,由于项目的测试状态,可能无法修改这些文件。此外,一些开发人员更喜欢使用P4SCC。
虽然我理解官方流程是将项目和解决方案迁移(从P4SCC)到使用P4VS,我确实记得在线阅读评论(我没有链接)有人断言他是能够在不修改项目文件的情况下同时使用它们。
是否可以在每次启动时不必更改源代码管理提供程序,并单击一系列有关不匹配绑定的警告/错误消息?如果是这样,怎么样?
答案 0 :(得分:2)
抱歉,这是不可能的。可以安装P4VS和P4SCC并与不同的项目一起使用,但是单个项目必须绑定到单个源控制提供者。
答案 1 :(得分:0)
我发现你可以对生活在.vcxproj中的SCC绑定设置一个条件,如下所示,这意味着你永远不必检查.vcxproj,只检查.sln,这对我们来说永远不会变化。
所以现在我可以使用P4VS,而其他人可以使用P4SCC,而不会被恼人的对话框打断(至少在最初从.sln中删除源代码控制之后)。
在示例中,我只在我的环境变量中设置了BUILD_USE_P4VS = 1。任何使用P4SCC的人都没有。
<PropertyGroup Label="Globals" Condition="'$(BUILD_USE_P4VS)'==''">
<SccProjectName>Perforce Project</SccProjectName>
<SccLocalPath>..\..\..\..</SccLocalPath>
<SccProvider>MSSCCI:Perforce SCM</SccProvider>
</PropertyGroup>