Как я могу переименовать каталог в libgit2sharp (в Windows, который не учитывает регистр), когда это просто изменение регистра?
Этот код отлично работает для перемещения файлов между различными каталоги:
File.Move(@"C:\repo\folder1\file.txt", @"C:\repo\folder2\file.txt");
repo.Index.Remove("folder1/file.txt");
repo.Index.Add("folder2/file.txt");
repo.Index.Write();
var commitResult = repo.Commit(logMessage, author, author);
Однако, если я просто переименую регистр папки, он не будет работать:
Directory.Move(@"C:\repo\folder1\", @"C:\repo\Folder1\");
repo.Index.Remove("folder1/file.txt");
repo.Index.Add("Folder1/file.txt");
repo.Index.Write();
var commitResult = repo.Commit(logMessage, author, author); // nothing gets written - I get LibGit2Sharp.EmptyCommitException
Я также попытался сделать 2 переименования (и сделать коммит один раз в конец) как предложено этим ответом
Я что-то делаю не так или это ограничение git? Есть ли обходной путь, кроме промежуточной фиксации?
PS: я попытался изменить репо на ignorecase = false (по умолчанию в Windows установлено значение true), но оно тоже не сработало.