当我右键单击我的Hg文件夹并选择 TortoiseHg > Web服务器,我可以在端口7999上启动Web服务器而不会出现问题。然后我关闭了该对话框。如果我从命令提示符运行netstat -a -o
,我可以看到thgw.exe
的实例正在运行并正在侦听端口7999(即使在关闭对话框后)。具有讽刺意味的是,在任务管理器中,thgw.exe
进程被称为“用于Mercurial SCM的TortoiseHg GUI工具”,即使没有GUI运行。
如果我再次通过 TortoiseHg >打开该对话框 WebServer ,报告状态为“已停止”,并且启用了开始按钮。这是不正确的,因为端口仍在侦听。如果我单击开始按钮,我会按照预期在日志中收到此消息:
abort:无法在':7999'启动服务器:通常只允许使用每个套接字地址(协议/网络地址/端口)
那么为什么TortoiseHg没有意识到现有的thgw.exe
正在端口上运行?
除了netstat和任务管理器之外还有更好的方法来检查TortoiseHg是否正在侦听Web端口吗?还要了解哪个端口代表哪个文件夹?
我无法阻止网络服务器,所以你怎么能优雅地关闭TortoiseHg网络服务器而不从任务管理器中删除它?对我的生产源控制系统来说,这似乎是一件可怕的事情!
答案 0 :(得分:4)
单击服务窗口的关闭按钮时,窗口实际上并未关闭,而是将自身最小化到通知区域中。请参阅以下屏幕截图中的地球图标:
如果您点击该图标,则会显示原始服务窗口,其中开始按钮实际已停用,并且停止已启用。您可以从那里停止服务器。
此行为已在TortoiseHg 2.4,Windows 7上进行了测试。
我在这里看到的唯一问题是,当您选择适当的菜单项时,不会打开原始窗口。
另请参阅TortoiseHg错误跟踪器上的issue 1845。