2009-08-27 76 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

相關問題