Пути проверки LibGit2Sharp()

Я сделал фиксацию (49916.....), теперь я хочу проверить один файл фиксации в рабочем каталоге. Файл называется NEW.txt. если я наберу

Git-касса 49916 NEW.txt

в Git Bash он создает файл NEW.txt с содержимым в моем рабочем каталоге.

Но моя команда LibGit2Sharp не хочет работать. Что я делаю не так?

       var repo = new Repository(repopath);
       var checkoutPaths = new[] { "NEW.txt"};    
       repo.CheckoutPaths("49916", checkoutPaths);

Я прочитал все статьи о функции checkoutpaths, которые смог найти. Но я не могу заставить его работать. Я получил функцию из тестового файла проверки LibGit2Sharp.

            repo.CheckoutPaths(checkoutFrom, new[] { path });

person JoeLiBuDa    schedule 07.03.2014    source источник
comment
Помимо вопроса @jamill, каково состояние вашего рабочего каталога до вызова CheckoutPaths()? Файл существует?   -  person nulltoken    schedule 07.03.2014
comment
Я тестировал оба. Так с существующим файлом и без. Теперь оба случая работают. :)   -  person JoeLiBuDa    schedule 08.03.2014


Ответы (2)


Что происходит, когда вы запускаете этот код? Он работает до конца, но в рабочем каталоге нет изменений? Что произойдет, если вы попытаетесь оформить заказ с опцией CheckoutModifiers.Force?

CheckoutOptions options = new CheckoutOptions { CheckoutModifiers = CheckoutModifiers.Force };
repo.CheckoutPaths("49916", checkoutPaths, options);
person jamill    schedule 07.03.2014
comment
Он был завершен, но без изменений в рабочем каталоге. Ваш авсер решает мою проблему. Мне не хватило вариантов. Большое спасибо!!! - person JoeLiBuDa; 08.03.2014

У меня была аналогичная проблема. Код выполнялся до завершения, но в рабочем каталоге не было изменений. Причиной была моя checkoutPaths коллекция.

Я передал путь к файлу относительно каталога приложения вместо пути относительно самого репозитория.

E.g.

Неверный путь: Repositories/MyRepo/MyFile.txt

Правильный путь: MyFile.txt

person Josef Trejbal    schedule 21.08.2020