1

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

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

然而,这是一个 GUI 应用程序,它只会停止直到克隆完成。有什么方法可以执行此克隆命令,同时还允许 GUI 监视其进度?

我的直觉告诉我看一下 MercurialEclipse 插件,看看他们是如何在那里做的,但如果有人能提出一种方法,我会很高兴听到它。

问候,古尔塞

编辑:

感谢您提供两种观点的信息,一种是针对当前情况的现实,另一种是针对夜间骑手进度条的建议。

我最近选择了一种狡猾的解决方法,我现在似乎已经摆脱了。

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

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

它不是 100% 准确,但是哦,好吧,它似乎可以完成这项工作......

4

2 回答 2

1

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

于 2013-04-16T22:15:37.897 回答
1

使用工作线程可以解决悬挂部分。我会检查监控,但我认为夜间骑手,正在进行的工作栏就可以了。您必须启动一个线程来处理通信并让主线程继续并处理 gui 上的操作。有两个选项可以查看克隆是否结束: - 通过回调方法(这是一种不错的、大书本风格的方法) - 定期检查工作线程(不太好,但如果你进入 while 循环并且讨厌回调它会成功)

于 2013-07-31T08:26:50.900 回答