Visual Studio (Microsoft) Сервер символов с git
Я пытаюсь настроить Microsoft Symbol Server с помощью git. Я искал вокруг и нашел это
https://github.com/joliver/SourceServer-GitExtensions
Я следовал каждому шагу инструкции.
Когда я попытался отладить, я получил всплывающие окна из Visual Studio
gitcontents.bat "git@github.com:Myconpany/Myproject.git (fetch)" "C:\Users\myusername\AppData\Local\SOURCE~1\bfef70fcb1efef501a09d451517a24f049383e28\.localRepo" 04898e9268d374a9a503e4c138b27f01b7553a3e "C:\Users\myusername\AppData\Local\SOURCE~1\bfef70fcb1efef501a09d451517a24f049383e28\04898e9268d374a9a503e4c138b27f01b7553a3e\codetest.cs"
И я выполнил команду, я получил эту ошибку
fatal: bad object 04898e9268d374a9a503e4c138b27f01b7553a3e
Не уверен, что пошло не так. Это потому, что у меня есть несколько веток, я должен указать конкретную ветку, которую я хочу получить здесь?
Это команда, которую я использовал для создания индекса
gitindex.cmd -debug -source=<sourcedir> -symbols=<pdb file dir>
Я попытался выполнить эти команды для моего файла pdb (SymbolServerTests.pdb)
Srctool.exe SymbolServerTests.pdb
[C:\data\Myrpoject\SymbolServerTests\SymbolServerTests\CodeTest.cs] cmd: gitcontents.bat "git@github.com:Myconpany/Myproject.git (fetch)" "C:\data\Myproject\bfef70fcb1efef501a09d451517a24f049383e28\.localRepo" 04898e9268d374a9a503e4c138b27f01b7553ae3 "C:\data\Myproject\bfef70fcb1efef501a0
9d451517a24f049383e28\04898e9268d374a9a503e4c138b27f01b7553a3e\codetest.cs"
SymbolServerTests.pdb: 1 source files are indexed
pdbstr -r -p: SymbolServerTests.pdb -s: srcsrv
SRCSRV: ini ------------------------------------------------
VERSION=1
INDEXVERSION=2
VERCTRL=Git
DATETIME=Thu Jan 26 10:53:05 2012
SRCSRV: variables ------------------------------------------
GIT_REPO_ID=bfef70fcb1efef501a09d451517a24f049383e28
GIT_ORIGIN_NODE=git@github.com:Mycompany/Myproject.git (fetch)
GIT_EXTRACT_TARGET=%targ%\%GIT_REPO_ID%\%var2%\%fnfile%(%var1%)
GIT_EXTRACT_CMD=gitcontents.bat "%GIT_ORIGIN_NODE%" "%targ%\%GIT_REPO_ID%\.localRepo" %var2% "%git_extract_target%"
SRCSRVTRG=%GIT_extract_target%
SRCSRVCMD=%GIT_extract_cmd%
SRCSRV: source files ---------------------------------------
c:\data\myproject\symbolservertests\symbolservertests\codetest.cs*04898e9268d374a9a503e4c138b27f01b7553a3e
SRCSRV: end ------------------------------------------------
ОБНОВЛЕНИЕ: я думаю, что я получил некоторое улучшение. Я проверил файл в этом месте.
C: \ Users \ MyUserName\AppData\Local\SOURCE~1\bfef70fcb1efef501a09d451517a24f049383e28\04898e9268d374a9a503e4c138b27f01b7553a3e\codetest.cs
Но я получил
Определение, соответствует ли контрольная сумма для следующих местах: 1: C:\Users\ MyUserName \ AppData \ Local \ ИСТОЧНИК ~1\bfef70fcb1efef501a09d451517a24f049383e82\26348c09499b843558a4cc676c0d17a83327d56e\codetest.cs Контрольная сумма: MD5 {60 d6 36 20 с3 аф с8 31 ЕВ 32 50 3f 27 6b 2f d8} Контрольная сумма не совпадает.
Где была вычислена контрольная сумма в pdb?
3 ответа
Прежде всего, я бы попытался использовать это против одной ветви, такой как origin/master, и идти оттуда. Я не трогал этот код в течение 18 месяцев, и у меня нет планов по его обновлению. Я только что взломал Perl, когда впервые написал, пока у меня не получилось. Просто добавьте несколько операторов "print" в perl, чтобы убедиться, что ваши PDB кодируются правильно.
Кроме того, я больше не пытаюсь извлечь исходный код из Git во время сеансов отладки, потому что всегда возникали значительные накладные расходы при удалении 20-30 МБ хранилища в первый раз. В результате я полностью изменил свою стратегию использования общего сетевого ресурса. Код для этого проекта, написанный на C#, можно найти здесь: https://github.com/joliver/SourceIndexer
Я заметил, что в опубликованном коде SourceIndexer используется%publ_artifacts_src%. Это где-нибудь задокументировано? Я начал использовать его, и он, казалось, работал, но теперь он возвращает пустой путь к серверу символов. Любые подсказки относительно того, почему это может быть?
Скрипты Perl слишком загадочны, чтобы иметь дело с моим вкусом.
В этой записи блога я описал процесс настройки поддержки Git для исходного сервера Visual Studio с помощью GitLink, который использует обычный ol 'C# для индексации моих символов. Это библиотека с открытым исходным кодом, которая живет на GitHub.
Эта библиотека позволила мне установить метод (в файле.pdb) для извлечения источников через PowerShell, что позволяет мне использовать параметры запроса в запросе, в отличие от инструмента, используемого по умолчанию в отладчике Visual Studio.