Можно ли использовать P4VS и P4SCC вместе?
В проекте, над которым я работаю, используется файл.NET Solution и несколько проектов C#. Средой разработки является 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 ...
Согласно Perforce, существует процесс перехода с P4SCC на P4VS:
Миграция из P4SCC в P4VS Чтобы перенести ваши решения и проекты из P4SCC, плагина Perforce SCC, в P4VS, вы должны сделать следующее: 1. Удалить привязки из файла решения (.sln) и всех файлов проекта (csproj, vcxproj и т. д.). 2. Удалите MSSCCPROJ.SCC и другие файлы, связанные с управлением исходным кодом. 3. Переместите всех разработчиков в P4VS и попросите их удалить старый плагин P4SCC. Для получения подробных инструкций см. http://www.perforce.com/perforce/doc.current/user/p4vs_p4scc_migration.txt.
Однако из-за состояния тестирования проекта эти файлы могут быть не изменены. Кроме того, некоторые разработчики предпочитают использовать P4SCC.
Хотя я понимаю, что официальный процесс заключается в том, что проекты и решения должны быть перенесены (из P4SCC) в P4VS, но я помню, что читал онлайн-комментарий (на который у меня нет ссылки), где кто-то утверждал, что он мог использовать оба вместе без изменения файлов проекта.
Можно ли сделать это, не меняя поставщика управления исходным кодом при каждом запуске, и щелкать серию предупреждений / сообщений об ошибках о несоответствующих привязках? Если так, то как?
2 ответа
Извините, это невозможно. Можно установить и использовать как P4VS, так и P4SCC с разными проектами, но отдельные проекты должны быть связаны с одним поставщиком контроля версий.
Я обнаружил, что вы можете поставить условие для привязок SCC, которые живут в.vcxproj, например ниже, означающее, что вам никогда не нужно проверять.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>