zoukankan      html  css  js  c++  java
  • 让Mercurial和TortoiseHg支持中文文件名/UTF8

    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截图:

    image

  • 相关阅读:
    托管代码和非托管代码效率的对比
    托管程序与非托管程序的区别
    第15章 C# ADO.NET数据库操作
    第14章 C#进程与线程
    第13章 C#异常与调试
    第12章 C# WinForm
    第11章 C#委托和事件
    第10章 C#文件操作
    第9章 C#泛型
    第8章 C#集合
  • 原文地址:https://www.cnblogs.com/tinyfish/p/1754364.html
Copyright © 2011-2022 走看看