使用 libgit2sharp 更改文件夹大小写

Change case of folder using libgit2sharp

如何重命名 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

我还尝试按照 this answer

的建议进行 2 次重命名(并在最后提交一次)

我是做错了什么还是这是 git 的限制? 除了中间提交之外还有什么解决方法吗?

PS:我尝试将 repo 更改为 ignorecase=false(Windows 中的默认设置为 true),但也没有用。

事实证明,在 git.config 中设置 ignorecase=false 就足够了——但我必须从一开始就使用它(在第一次提交之前)。

我只是在真正删除旧案例并添加新案例时才尝试更改该设置,看起来这还不够 - git 未检测到更改。