admin 发表于 2012-4-27 11:47:30

TortoiseHg中文文件名乱码解决

基础知识
[*]Mercurial(HG)是一个分布式的版本控制系统(VCS)之一。 和GIT类似。
[*]HG内建Windows资源管理器前端TortoiseHg是 http://tortoisehg.bitbucket.org/ 可供下载。
[*]TortoiseHg 0.8或更高版本,中文已经得到一定支持,可是文件名依旧会乱码。
乱码原因
[*]在文件名“\”可能被包括在内。

[*]Windows使用“\”分割路径,而Unix是“/”
[*]Windows和Linux环境与不同的编码环境

[*]这个就不必详述了
三种解决办法http://www.yankay.com/wp-content/uploads/2010/04/fixutf8-300x200.png
win32mbcs
[*]可以解决路径分割符问题
hg-fixutf8
[*]hg的python扩展
[*]支持命令行,也支持图形界面
[*]应用程序 网址:Http:/ / Mercurial.selenic.com/Wiki/Fixutf8Extension (英文)
Cygwin的Mercurial
[*]Cygwin的1.7文件名处理为UTF - 8。基于这个原因,Cygwin的版本的Linux和Mercurial可用于互操作。然而,TortoiseHg和图形用户界面不可用。
比较表
字码解决乱码多个操作系统图形用户界面
默认GBK××○
win32mbcsGBK○×○
hg-fixutf8使用UTF - 8○○○
Cygwin使用UTF - 8○○×
Fixutf8安装方法
[*]运行 hg clone http://bitbucket.org/stefanrusek/hg-fixutf8。可以得到一个文件夹,
[*]将这个文件夹拷贝到你想拷贝的地方。我拷贝在C:\Program Files\TortoiseHg\hg-fixutf8
[*]在C:\Users\yankai (yankai是我的用户名)下有一个隐藏文件mercurial.ini,如果没有创建一个,在他后面添上fixutf8 = C:\Program Files\TortoiseHg\hg-fixutf8\fixutf8.py
ok,乱码问题应该已经解决了。


----------

FixUtf8 Extension

This extension is not distributed with  Mercurial.

Author: Stefan Rusek

Repository: https://bitbucket.org/stefanrusek/hg-fixutf8/

http://mercurial.selenic.com/moin-static/modernized/img/alert.png This extension  appears to be incompatible with Mercurial 2.0 and later.

Compatibility: requires Mercurial 1.1 or later and Python 2.5  or later

This extension is still in beta, use it at  your own risk.

Overview

This extension corrects filename encoding problems on Windows.

Windows internally stores all command line arguments and  filenames in Unicode UTF-16 (16-bit character strings), and for backward  compatibility with Windows 3.x, provides functions to retrieve them in  non-Unicode 8-bit character strings. Python 2.x and Mercurial call the  non-Unicode functions. This causes Mercurial to misbehave when used with  filenames that contain Unicode characters. This extension resolves this issue,  by making sure that the Unicode functions are called. Since Mercurial expects  8-bit character strings, the extension converts the strings to UTF-8 before  returning them to Mercurial.

There is one case where FixUtf8 fails to add support for Unicode, because the  repository object for the current working directory is created before extensions  are loaded. There is nothing that FixUtf8 can do to fix the problem of a repository  residing within a
directory with Unicode  characters in it. However, FixUtf8  does not have a problem with directories with Unicode characters inside
of the repository.

Ideally, you enable the extension before you need international  filenames, but if you already have international filenames in your repo, then  you need to fix your filenames.

In order for Unicode characters to display properly, you should  change the Windows console font from "Raster Fonts" to "Lucida Console".

Fixing existing filenames

To fix your filenames simply do the following:




>hg addremove -s 100
>hg commit -m "Fix filenames"

Configuration
Configure your .hgrc to enable the extension by adding  following lines:






fixutf8 = path/to/fixutf8.py ------
页: [1]
查看完整版本: TortoiseHg中文文件名乱码解决