Клонировать GIT-репозиторий с помощью NGit в VB.net - PullRequest
0 голосов
/ 27 ноября 2018

Моя цель - выполнить операции клонирования и извлечения в хранилище GIT с помощью кода .NET.При клонировании я специально хочу клонировать конкретную ветку.Если определенный репозиторий уже клонирован, но имеет другую ветвь, то я хотел бы также узнать об этом.

Я успешно реализовал это с jGit в Java, но теперь мне нужно разработать аналогичный инструмент в .NET, и я предпочитаю использовать NGit, так как это прямой порт библиотеки jGIT.

Однако, хотя я использую точные методы, передающие соответствующие параметры методу клонирования в NGit, я не вижу загрузки репозитория.Ниже мой код:

Dim branches As List(Of String) = New List(Of String) From {branch}
Git.CloneRepository.
    SetURI(cloneURL).
    SetDirectory(New Sharpen.FilePath(downloadFolder)).  
    SetBranchesToClone(branches).
    SetCredentialsProvider(New UsernamePasswordCredentialsProvider(userID, userPwd)).
    SetBranch(branch).
    Call()

Когда я запускаю это, это занимает несколько секунд и ошибок нет.Но в папке загрузки, которую я вижу, есть только папка .git с некоторыми метаданными, а исходные файлы не загружаются.Если я удаляю методы SetBranchesToClone и SetBranch из приведенного выше кода, он успешно загружает файлы из главной ветки.

Почему он не работает, когда предоставляется информация о ветке?

1 Ответ

0 голосов
/ 10 декабря 2018

Я понял, что в то время как в jGit вы можете использовать точное имя ветви, например MyBranch, в случае NGit вам нужно передать refs/heads/MyBranch для его работы.Очевидно, что nGit утверждает, что он является автоматическим портом jGit, есть некоторые незначительные различия в том, как они работают.

...