JGit克隆存储库在运行时显示进度

时间:2019-05-16 10:24:54

标签: git clone progress jgit writer

我知道这是与此类似的:Java JGit - getting clone progress percentage

但是它不能回答我的问题,并且我没有足够的声誉来对此发表评论:)

我有JGit clone命令:

Git.cloneRepository()
        .setURI(uri)
        .setDirectory(Paths.get(path).toFile())
        .setProgressMonitor(new TextProgressMonitor(writer))
        .call();

指标正确。只是在完成时(一批)输出结果(接收对象阶段)。我想要的是查看运行时的进度(百分比),以便可以在进度栏中显示它。

我试图在我的作家中设置同花顺,但这没有帮助(也许我做错了)。似乎ProgressMonitor就是这样提供的,我对此无能为力。

git clone --progress是我想要实现的一个很好的例子。 伙计们,请帮帮我。

1 个答案:

答案 0 :(得分:0)

您可能需要实现自己的ProgressMonitor,TextProgressMonitor后面的BatchingProgressMonitor会延迟进度报告,并将某些更新合并为更少的输出。

interface不复杂,例如以下显示了传输的每个单个对象/文件的更新:

    .setProgressMonitor(new ProgressMonitor() {
        @Override
        public void start(int totalTasks) {
            System.out.println("Starting work on " + totalTasks + " tasks");
        }

        @Override
        public void beginTask(String title, int totalWork) {
            System.out.println("Start " + title + ": " + totalWork);
        }

        @Override
        public void update(int completed) {
            System.out.print(completed + "-");
        }

        @Override
        public void endTask() {
            System.out.println("Done");
        }

        @Override
        public boolean isCancelled() {
            return false;
        }
    })