Я недавно настроил сервер символов и добавил поддержку SrcSrv в наши сценарии сборки, чтобы мы могли легко отлаживать аварийные дампы с поля и иметь отладчик WinDbg и / или Visual Studio, чтобы получить правильную версиюисходные файлы из нашего хранилища Subversion, которые использовались для компиляции какой-либо конкретной версии нашего приложения.
Я добавил строку в наш сценарий сборки, чтобы вызвать стандартный svnindex.cmd
сценарий, который поставляется с инструментами отладки для Windowsпакет, но обнаружил, что сценарий искажает пути к файлам репозитория, которые содержат экранированные URI символы, например пробелы, поэтому WinDbg не может загрузить файлы из репозитория.
Обратите внимание, что svnindex.cmd
(в частности, запускаемый им скрипт Perl svn.pm
) получает местоположения репозитория для исходных файлов из выходных данных команды svn info
, а svn
URI-escape-пути к репозиторию.Когда svnindex.cmd
сталкивается с этим, он калечит путь.Например, он превратит путь
"http://mysvnrepo/My%20Application/trunk/Database%20Layer/OracleAdapter.cs"
в
"http://mysvnrepo/My20Layer/OracleAdapter.cs"
Оказывается, что SrcSrv интерпретирует что-либо между "%" как имя переменной, которое оно заменяет во время выполнения.
Предполагая, что переименование всех каталогов в нашем хранилище для удаления пробелов и других «специальных» символов, которые будут экранированы URI, неосуществимо, как мне обойти это ограничение?