让Mercurial和TortoiseHg支持中文文件名/UTF-8
Mercurial是优秀的分布式版本管理系统,与Git并列为最有希望的分布式VCS。TortoiseHg模仿TortoiseSVN,为Mercurial提供了一个直观的操作界面,而且青出于蓝,功能更加强大和方便。
遗憾的是,Mercurial在Windows下不能很好的支持非英文文件名和目录名。Mercurial在Windows下使用系统编码,在简体中文系统中使用GB2312作为文件名编码。这带来两个问题:
- 创建的库不能在其他语言(如繁体中文)的Windows系统上使用,反之亦然。非ASCII的文件名都会出现乱码,或者提示出错。
- 创建的库不能在Linux下使用,反之亦然。
实际上,在Linux系统上不存在此问题,因为Linux下默认使用UTF-8编码,完全支持Unicode。
FixUTF8是一个Mercurial的扩展插件,力图解决Windows下多语言文件名的问题。可惜的是,插件还不完善,存在部分问题,如merge会出错。我修改了部分常见问题,并创建了一个分支:http://bitbucket.org/tinyfish/hg-fixutf8。当前版本在激活mq插件的同时工作得不错,大部分常用命令可以正常使用。激活扩展插件需要修改%USERPROFILE%\mercurial.ini,加入如下内容:
[extensions]
fixutf8=D:\hg-fixutf8\fixutf8.py
mq=
虽然Mercurial的命令行设计得不错,但与TortoiseHg相比就是不够易用了。很遗憾的发现,TortoiseHg当前不支持FixUTF8扩展,并且曾经声称不会支持……只好自力更生了。我对TortoiseHg做了一些修改,特别是ShellExt,使其完整的支持Unicode。经测试常见功能都可以正常使用。修改代码的分支在:http://bitbucket.org/tinyfish/tortoisehg.winutf8。Downloads中有编译完成的版本,需要先安装TortoiseHg原版,然后执行压缩包中的Deploy.cmd替换文件。
下载页面:
http://bitbucket.org/tinyfish/tortoisehg.winutf8/downloads
TortoiseHg截图:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)