如何使用JavaHg监控克隆进度
我使用JavaHg来构建一个定制的GUI界面。我可以通过以下代码进行克隆:如何使用JavaHg监控克隆进度,javahg,Javahg,我使用JavaHg来构建一个定制的GUI界面。我可以通过以下代码进行克隆: BaseRepository repo = Repository.clone(new File(checkout_folder), url); 然而,这是一个GUI应用程序,它只是暂停,直到克隆完成。是否有任何方法可以执行此克隆命令,同时允许GUI监视其进度 我的直觉告诉我去看看MercurialEleclipse插件,看看他们是如何做到的,但是如果有人能提出一种方法,我很乐意听到 问候,, 古尔塞 编辑: 感谢两个方
BaseRepository repo = Repository.clone(new File(checkout_folder), url);
然而,这是一个GUI应用程序,它只是暂停,直到克隆完成。是否有任何方法可以执行此克隆命令,同时允许GUI监视其进度
我的直觉告诉我去看看MercurialEleclipse插件,看看他们是如何做到的,但是如果有人能提出一种方法,我很乐意听到
问候,,
古尔塞
编辑:
感谢两个方面的信息,一个是关于现状的现实,另一个是关于夜间骑手进度条的建议
我最近选择了一种狡猾的变通方法,我现在似乎可以侥幸逃脱
由于我在hgweb服务器上托管mercurial项目,因此我尝试了以下方法:
- 在我的应用程序中触发了签出(ok,clone!:)
- 我的应用程序通过ssh访问服务器,并在打算签出的项目的裸存储库上运行“du”命令
- 因此,我的应用程序使用返回的裸回购使用的总磁盘空间作为最终签出应该在本地工作文件夹上拥有的总磁盘空间的估计值
- 然后,我的应用程序使用“du”命令每秒轮询一次本地工作文件夹,以查看签出/克隆当前占用的磁盘使用量
- 我使用此du结果与服务器的du结果来显示进度条
它不是100%准确,但是,哦,好吧,它似乎做得很好…目前JavaHg不支持显示长时间运行操作的进度使用工作线程可以解决挂起部分。我会检查监控系统,但我认为一个夜间骑手,工作进度条就可以了。您必须启动一个线程来处理通信,让主线程继续运行并处理gui上的操作。 有两个选项可以查看克隆是否结束: -通过回调方法(这是一种很好的、bigbook风格的方法) -定期检查工作线程(不是很好,但是如果你进入while循环并且讨厌回调,它会起作用)