是否可以将P4VS和P4SCC一起使用?

时间:2014-01-27 23:07:31

标签: visual-studio visual-studio-2012 version-control perforce p4vs

我正在开发的项目使用.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,我确实记得在线阅读评论(我没有链接)有人断言他是能够在不修改项目文件的情况下同时使用它们。

是否可以在每次启动时不必更改源代码管理提供程序,并单击一系列有关不匹配绑定的警告/错误消息?如果是这样,怎么样?

2 个答案:

答案 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>