2009-08-27 83 views
1

我对一个特定的解决方案使用了Visual Studio(2005)+ Perforce组合,我想手动修改Perforce参数(客户端名称)。Visual Studio在哪里保存与SCM相关的信息?

从VS的“更改源代码管理”对话框看来,SCM信息是按项目保存的;然而,.csproj.vspscc文件似乎并没有持有任何Perforce的相关信息,而且也不.vssscc

这里有一个.vspscc文件的样子:

"" 
{ 
"FILE_VERSION" = "9237" 
"ENLISTMENT_CHOICE" = "NEVER" 
"PROJECT_FILE_RELATIVE_PATH" = "" 
"NUMBER_OF_EXCLUDED_FILES" = "0" 
"ORIGINAL_PROJECT_FILE_PATH" = "" 
"NUMBER_OF_NESTED_PROJECTS" = "0" 
"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROVIDER" 
} 

最后一行暗示SCM设置存储在外部,但是在哪里?

回答

1

对于您的本地工作副本,Perforce将连接信息存储在MSSCCPRJ.SCC文件中。它看起来像这样:

 
SCC = This is a source code control file 

[Solution1.sln] 
SCC_Aux_Path = "P4SCC#<host>:<port>##<user>##<client hostname>" 
SCC_Project_Name = Perforce Project 

[Project1.csproj] 
SCC_Aux_Path = "P4SCC#<host>:<port>##<user>##<client hostname>" 
SCC_Project_Name = Perforce Project 

在.sln文件中还有一些信息可以在用户之间传递,这可能是出于传统原因。如果MSSCCPRJ.SCC文件不可用,则可能会使用此选项。

P4使用或忽略这些设置的程度取决于它们的实现。

0

在文本编辑器中打开vcproj文件,并找到以Scc开头的条目(SccProjectName,SccAuxPath,SccLocalPath,SccProvider ...)。这些条目定义项目的SCC绑定。

举个例子,通过源安全控制的项目如下:

SccProjectName="&quot;$/Services&quot;. TPCAAAAA" 
SccLocalPath=".." 
SccProvider="MSSCCI:Microsoft Visual SourceSafe" 

由SVN控制的项目相线这样的:

SccProjectName="Svn" 
SccAuxPath="Svn" 
SccLocalPath="Svn" 
SccProvider="SubversionScc" 

SLN文件都有,您可以检查类似的条目

+0

讨厌Visual Studio的SCC插件的另一个原因。他们将版本控制信息存储在项目文件中。疯狂! – raven 2009-09-15 13:10:52

+0

如果SCC插件实现者没有实现MSSCCPRJ.SCC功能,它将信息存储在proj文件中。我猜SVN不会。 (无论如何你最好使用AnkhSVN)。 – 2009-11-05 19:14:14

1

请注意,您可以设置P4CLIENT环境变量来告诉Perforce您要使用的客户端;这并不完全回答你的问题,但也许这是解决你的问题的另一种方法。另外,如果你使用Visual Studio做Perforce,你可能会看看NiftyPerforce插件(http://code.google.com/p/niftyplugins/wiki/NiftyPerforceDocumentation),我总是发现它比Perforce的插件好一些。

+0

关于NiftyPerforce的提示+1 – 2009-11-17 03:37:10

相关问题