折腾的DVCS

折腾的DVCS

svn,git,TortoiseHg,Mercurial, windows, utf8

 已经用了很长一段时间的svn,整体来讲的很顺利,突然想用用dvcs,折腾了2天,感叹dvcs在于折腾

整体环境,windows xp/7 +S2008,原来一直用svn(visual svn server + tortoiseSVN),几个项目,也有千余个commit

 dvcs中选中了msysgit(git的windows版,名气大),TortosieGit, TortoiseHg(其实本来是个误会)

插曲:一直在看git相关的内容,但却在开始把TortoiseHg误认为是git的GUI客户端。

 这里使用的软件版本分别是 msysGit 1.7.10, TortoiseHg 2.4.1

 

安装:

TortoiseHg:简单,基本安装完成后就可以使用,

TortoiseGit:只是一个GUI,还要msysGit才能用,而且和TortoiseSVN有些冲突,导致另外一个图标不能用,设置一个,影响两个

msysGit:本身就带一个简单的GUI,但大部分都是功过bash完成 

基本使用:新建,提交等等

都是基本可以的。


从svn迁移:

TortoiseHg:可以启用用convert插件,可以顺利迁出,中文显示也正确,不过有个小小的不同,svn中333次历史记录,但hg中只有284次。

TortoiseGit:从svn服务器始终不能完整导入,并且由于和tortoisesvn的相互干扰,卸载了。

msysGit:结合网上的教程,直接用bash进行导入clone。

一直有个问题,就是第一次只能clone部分历史,少则3、5个,多则18、9个,然后用fetch,则基本每次1-3个,整个过程不报错。

这要到后年马月才能弄好,只好google

先是看到了 《 git svn ambiguous argument 'HEAD' 》 其中提到了clone不完整,fetch只能1次1个的问题,但没给出解决方法

然后是 《GIT-SVN clone command executes without errors but the local master branch is missing 》 这里提到了不报错停止的现象,并且给出了解决办法

就是放弃http(s)://,而改用svn://,事实证明这个是正确的。直接原因是“未知原因导致https链接断开”

另外不要想这用本地路径的方式file://或者D:/之类的,下面的文章会告诉你的,此路不通。

Porting a Subversion to a Git Repository with an Error “Permission denied: Can’t open ‘/tmp/report.tmp’” 》

 

 UTF8中文支持:

TortoiseHg: clone时遇到中文文件名的内容(更准确的说是部分中文,因为有的中文文件能通过,有些不能,而且和svn转换有关),停止工作;

另外,kdiff3似乎也对中文不友好,会乱码,

但是,添加中文名字的文件,可以正常保存,可以显示

提交中文注释也能(至少在本地机器上可以) 

msysGit:也好不到哪里去,由于1.7.10已经支持utf8了,所以clone是可以的通过,但还是有不少问题,

比如clone的存放的目录不能为中文;bash能显示,但不能输入,gui能显示或部分显示,能输入,但还是不能使用(毕竟还要靠具体bash) 

 这个是最大的软肋。

另外。git-gui在clone 时,目标目录必须不能存在,否则不让clone。

 

跨平台:听说

TortoiseHg:用qt+ python 良好

msysGit:或者Git,可以跨,但似乎对windows还是不太友好,听说linux上工作不错。

 

总结:

新项目可以考虑Git或者Hg,老项目还是算了吧。除非你感觉特别需要。

你的项目要中文或者其他多语言环境么,对这个不敏感的可以考虑Git或者Hg,敏感的还是算了吧,或者你自己想办法。

posted @ 2012-06-15 13:12  kevinzhwl  阅读(360)  评论(0编辑  收藏  举报