如何使用JavaHg监视克隆进度

时间:2013-01-23 05:21:55

标签: javahg

我正在使用JavaHg来构建自定义的GUI界面。我能够通过代码克隆如下:

BaseRepository repo = Repository.clone(new File(checkout_folder), url);

然而,这是一个GUI应用程序,它只是停止,直到克隆完成。有没有办法做这个克隆命令,同时还允许GUI监视其进度?

我的直觉是告诉我看看MercurialEclipse插件并看看他们是如何做到的,但是如果有人可以建议一种方法,我会很高兴听到它。

此致 Gurce

编辑:

感谢您提供有关两种观点的信息,一个针对当前情况的现实情况,以及一个夜间车手进度条的建议。

我最近选择了一种躲闪的解决方法,我现在似乎已经离开了。

由于我在hgweb服务器上托管我的mercurial项目,我尝试这样做:

  • 在我的应用
  • 中触发了结账(确定,克隆!:))
  • 我的应用程序通过ssh访问服务器并在裸存储库上运行一个“du”命令,用于打算检出的项目
  • 那么我的应用程序使用该裸存储库使用的返回的总磁盘空间作为最终结账应该在本地工作文件夹中的总磁盘空间的估计
  • 我的应用程序然后使用“du”命令每秒轮询一次本地工作文件夹,以查看结帐/克隆当前消耗的磁盘使用量
  • 我使用此du结果与服务器的du结果显示我的进度条

这不是100%准确,但哦,好吧,它似乎做好了工作......

2 个答案:

答案 0 :(得分:1)

目前,JavaHg不支持显示长时间运行操作的进度

答案 1 :(得分:1)

使用工作线程可以解决悬挂部分。我会检查监控,但我认为夜间骑手,正在进行中的工作棒会做得很好。你必须启动一个线程来处理通信,让主线程继续并处理gui上的动作。 有两个选项可以查看克隆是否结束: -via一个回调方法(这是很好的,bigbook风格的方式来做到这一点) - 检查工作线程的周期性(不太好,但是如果你进入周期并且讨厌回调它会做的伎俩)