HgSccPackage использует клиент командной строки mercurial hg.exe.Существует ограничение на максимальную длину командной строки ~ 2000 символов в .Net Framework API, используемом для запуска внешнего процесса (hg.exe).
И поскольку фиксация должна быть атомарной, HgSccPackage не может завершить работу сэта ошибка.
У вас есть три варианта:
- У вас есть возможность проверить все измененные файлы в окне фиксации.Затем HgSccPackage вызовет Mercurial Client для фиксации всех файлов (без передачи каждого аргумента в командной строке).
- Если это возможно, вы можете разделить коммит на более мелкие логические части с меньшим количеством файлов.
- Если это возможно, верните несколько файлов и зафиксируйте все другие сразу
Было бы намного проще, если бы у клиента Mercurial была возможность передать список файлов в файл (например, список.TXT с именами файлов в каждой строке).Но такой опции нет.
Кстати, HgSccPackage не передает полный путь к файлам.Вместо этого он передает путь к файлу относительно корня хранилища.Итак, довольно странно, что вы достигли предела командной строки.
Сколько файлов вы передаете?Почему вы не можете зафиксировать все файлы?