From f3dc197db81a969d2bbb51412234aa7c793b602e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E6=99=AF=E6=98=8C?= <13207121+actri_sjchang@user.noreply.gitee.com> Date: Fri, 28 Jul 2023 08:10:55 +0000 Subject: [PATCH 1/2] =?UTF-8?q?=E4=BC=98=E5=8C=96`GitProgressMonitor`?= =?UTF-8?q?=E5=86=85=E9=83=A8=E7=B1=BB=EF=BC=9A=E5=AF=B9`GitProgressMonito?= =?UTF-8?q?r`=E8=BF=9B=E8=A1=8C=E4=BA=86=E4=B8=80=E4=BA=9B=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E5=92=8C=E9=87=8D=E6=9E=84=EF=BC=8C=E4=BB=A5=E6=9B=B4?= =?UTF-8?q?=E5=A5=BD=E5=9C=B0=E9=80=82=E9=85=8D`ProgressMonitor`=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 孙景昌 <13207121+actri_sjchang@user.noreply.gitee.com> --- src/net/oschina/git/utils/GitUtil.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/net/oschina/git/utils/GitUtil.java b/src/net/oschina/git/utils/GitUtil.java index 6ae81f0..2bb9144 100644 --- a/src/net/oschina/git/utils/GitUtil.java +++ b/src/net/oschina/git/utils/GitUtil.java @@ -33,8 +33,7 @@ public class GitUtil { throws IllegalStateException, GitAPIException, InvocationTargetException, InterruptedException { File localDir = new File(dir); CloneCommand cloneCommand = Git.cloneRepository(); - GitProgressMonitor gProMon = new GitProgressMonitor(progressMonitor); - cloneCommand.setProgressMonitor(gProMon); + cloneCommand.setProgressMonitor(new GitProgressMonitor(progressMonitor)); cloneCommand.setURI(Url).setDirectory(localDir); cloneCommand.setCredentialsProvider(new UsernamePasswordCredentialsProvider(username, password)); cloneCommand.call(); -- Gitee From d4b6714980269c9f0d3cd0481174b2177a1adb02 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E6=99=AF=E6=98=8C?= <13207121+actri_sjchang@user.noreply.gitee.com> Date: Fri, 28 Jul 2023 08:18:51 +0000 Subject: [PATCH 2/2] =?UTF-8?q?=E4=BC=98=E5=8C=96`GitProgressMonitor`?= =?UTF-8?q?=E5=86=85=E9=83=A8=E7=B1=BB=EF=BC=9A=E5=AF=B9`GitProgressMonito?= =?UTF-8?q?r`=E8=BF=9B=E8=A1=8C=E4=BA=86=E4=B8=80=E4=BA=9B=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E5=92=8C=E9=87=8D=E6=9E=84=EF=BC=8C=E4=BB=A5=E6=9B=B4?= =?UTF-8?q?=E5=A5=BD=E5=9C=B0=E9=80=82=E9=85=8D`ProgressMonitor`=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 孙景昌 <13207121+actri_sjchang@user.noreply.gitee.com> --- src/net/oschina/git/utils/GitUtil.java | 39 ++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/src/net/oschina/git/utils/GitUtil.java b/src/net/oschina/git/utils/GitUtil.java index 2bb9144..4669044 100644 --- a/src/net/oschina/git/utils/GitUtil.java +++ b/src/net/oschina/git/utils/GitUtil.java @@ -80,6 +80,7 @@ public class GitUtil { config.setString("remote", "origin", "url", path); config.save(); } + public static void createRepository(String path, String remotePath, String username, String password) throws IllegalStateException, GitAPIException, IOException { @@ -130,4 +131,42 @@ public class GitUtil { cloneCommand.setCredentialsProvider(allowHosts); cloneCommand.call(); } + + private static class GitProgressMonitor implements ProgressMonitor { + private IProgressMonitor monitor; + + GitProgressMonitor(IProgressMonitor monitor) { + this.monitor = monitor; + } + + @Override + public void start(int totalTasks) { + monitor.beginTask("", totalTasks * 1000); + } + + @Override + public void beginTask(String title, int totalWork) { + monitor.subTask(title); + if (totalWork == UNKNOWN) { + monitor.setTaskName(title); + } else { + monitor.beginTask(title, totalWork); + } + } + + @Override + public void update(int completed) { + monitor.worked(completed); + } + + @Override + public void endTask() { + monitor.done(); + } + + @Override + public boolean isCancelled() { + return monitor.isCanceled(); + } + } } -- Gitee