Где Visual Studio сохраняет информацию, связанную с SCM?
Я использую комбинацию Visual Studio (2005) + Perforce для конкретного решения и хочу вручную изменить параметр Perforce (имя клиента).
Из диалогового окна VS "Change Source Control" кажется, что информация 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 хранятся извне, но где?
3 ответа
Обратите внимание, что вы можете установить переменную среды P4CLIENT, чтобы сообщить Perforce, какой клиент вы хотите использовать; это не совсем отвечает на ваш вопрос, но, возможно, это еще один способ решить вашу проблему.
Кроме того, если вы делаете Perforce с Visual Studio, вы можете проверить плагин NiftyPerforce ( http://code.google.com/p/niftyplugins/wiki/NiftyPerforceDocumentation), который я всегда находил немного лучше, чем один из Perforce.
Для вашей локальной рабочей копии Perforce сохраняет информацию о соединении в файле MSSCCPRJ.SCC. Это выглядит так:
SCC = Это файл управления исходным кодом [Solution1.sln] SCC_Aux_Path = "P4SCC# <хост>: <порт> ## <пользователь> ## <имя хоста клиента>" SCC_Project_Name = Выполнить проект [Project1.csproj] SCC_Aux_Path = "P4SCC# <хост>: <порт> ## <пользователь> ## <имя хоста клиента>" SCC_Project_Name = Выполнить проект
В файле.sln также есть некоторая информация, которая может передаваться между пользователями, возможно, по устаревшим причинам. Это может быть использовано, если файл MSSCCPRJ.SCC недоступен.
Сколько P4 использует или игнорирует эти настройки, зависит от их реализации.
Откройте файл vcproj в текстовом редакторе и найдите записи, начинающиеся с Scc (SccProjectName, SccAuxPath, SccLocalPath, SccProvider...). Эти записи определяют привязку SCC проекта.
Например, проект, контролируемый Source Safe, выглядит следующим образом:
SccProjectName=""$/Services". TPCAAAAA"
SccLocalPath=".."
SccProvider="MSSCCI:Microsoft Visual SourceSafe"
Проект, контролируемый SVN, выглядит так:
SccProjectName="Svn"
SccAuxPath="Svn"
SccLocalPath="Svn"
SccProvider="SubversionScc"
SLN файлы имеют похожие записи, которые вы можете проверить