Исключение в потоке "main" java.io.JGitInternalException: не удалось удалить временный файл C: \ Users \ 13 дек - PullRequest
0 голосов
/ 14 декабря 2018

Я пытаюсь клонировать git-репозиторий, используя JGit.

public static void main(String[] args) throws IOException, InvalidRemoteException, GitAPIException {

    String name = "username";
    String password = "password";

    remotePath = "https://user@stash.gto.intranet.db.com:8081/scm/paragon/paragongit.git";

    CredentialsProvider cp = new UsernamePasswordCredentialsProvider(name, password);

            File localPath = new File("C:/Users/13 dec/");
    if (!localPath.delete()) {
        throw new IOException("Could not delete temporary file" + localPath);
    }

    System.out.println("localPath " + localPath.getAbsolutePath());

    System.out.println("Cloning from" + remotePath + "to" + localPath);

    Git git = Git.init().setDirectory(localPath).call();

    System.out.println("The End");

    Git result = Git.cloneRepository().setURI(remotePath).setDirectory(localPath).setCredentialsProvider(cp).call();

    System.out.println("The end of program");

}

Но я получаю JGitInternalException

Error->Exception in thread "main" org.eclipse.jgit.api.errors.JGitInternalException: Destination path "13 dec" already exists and is not an empty directory
    at org.eclipse.jgit.api.CloneCommand.verifyDirectories(CloneCommand.java:253)
    at org.eclipse.jgit.api.CloneCommand.call(CloneCommand.java:189)
    at testInAction.main(testInAction.java:39)

Ответы [ 2 ]

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

В сообщении об ошибке говорится, что вы пытаетесь клонировать git-репо поверх существующего непустого каталога.

Вы не можете этого сделать.И вы не можете сделать это, запустив git clone из командной строки;см. комментарии к https://stackoverflow.com/a/42561781/139985

Обычно git пытается помешать вам выстрелить себе в ногу.

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

когда мы создаем каталог в C: \ Users, он создается только для чтения, и нам потребуется привилегия администратора, чтобы удалить его, даже используя обычное удаление из windows.

...