关于mercurial转换subversion库遇到的文件乱码问题
来源:互联网 发布:sql server 权限 编辑:程序博客网 时间:2024/04/29 21:18
好容易在网上找到答案
我使用cygwin的mercurial版本,为什么?因为可以直接改源码
$ hg --version
Mercurial Distributed SCM (version 1.8.1)
(see http://mercurial.selenic.com for more information)
Copyright (C) 2005-2011 Matt Mackall and others
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
$ cd /usr/lib/python2.6/site-packages/hgext/convert/
先备份一下
$ mv hg.pyc hhhg.pyc
$ cp hg.py hhhg.py
修改后的差别
def putcommit(self, files, copies, parents, commit, source, revmap):
###gegogi mod###
def _cp936(s):
return s.decode('utf-8').encode('cp936')
def _utf8(s):
return s.decode('cp936').encode('utf-8')
##################
files = dict(files)
### gegogi mod ###
for k, v in files.items():
del files[k]
files[_cp936(k)] = v
for k, v in copies.items():
del copies[k]
copies[_cp936(k)] = _cp936(v)
##################
def getfilectx(repo, memctx, f):
v = files[f]
#data, mode = source.getfile(f, v)
data,e = source.getfile(_utf8(f), v)
if f == '.hgtags':
data = self._rewritetags(source, revmap, data)
#return context.memfilectx(f, data, 'l' in mode, 'x' in mode,
return context.memfilectx(f, data, 'l' in e, 'x' in e,
copies.get(f))
在用hg convert所有的中文文件名都对了
原文在这里http://mercurial.selenic.com/bts/issue2223
- 关于mercurial转换subversion库遇到的文件乱码问题
- 关于乱码处理遇到的问题
- 关于开发时遇到的乱码问题
- 编译subversion 1.9.4遇到的问题
- 遇到的乱码问题
- 今天遇到的关于重定向地址栏乱码的问题
- linux下安装Subversion遇到关于BerkeleyDB问题及解决方法
- 关于文件读取遇到的问题
- 关于生成TXT文件的乱码问题
- 关于文件的中文乱码问题
- 记一次遇到的文件乱码的问题
- 解决C#读写文件遇到的中文乱码问题
- 在操作文件时遇到的乱码问题
- struts2上传下载文件中遇到的乱码问题
- 上传到HDFS上的文件遇到乱码问题
- 关于subversion+apache的配置问题
- 突击Mercurial SCM(HG)11---自搭Server后push遇到的问题
- 关于Windows 开发遇到的字符转换问题
- 我有一个好弟弟
- Visual Studio 2005快捷键
- shutdown& startup database shell
- 【转】基本概念:过拟合、修剪、假正、假负
- 程序员面试题精选--在字符串中删除特定的字符
- 关于mercurial转换subversion库遇到的文件乱码问题
- C#中的接口
- Android中TextVIew一些属性
- ubuntu系统监视器的小观察
- eclipse查找
- Android之TextView实现文字过长时省略部分或者滚动显示
- 二叉树的遍历:前序,中序,后序,层序--包括递归和非递归实现
- 3个站对搜索引擎访问日志的分析发现的一些问题
- C语言问题