rtt1.2.3版本管理乱码(Tortoise+Git)

23 views
Skip to first unread message

简单

unread,
Jan 29, 2015, 8:46:56 AM1/29/15
to rt-threa...@googlegroups.com
最近在用Tortoise对rtt进行版本管理的时候发现这样一个现象:
1. 先在rt-thread-1.2.3/下建立版本管理库,添加文件后首次提交;

2. 把任意的.c文件(比如"rt-thread-1.2.3\bsp\stm32f40x\applications\application.c")用 notepad++打开,在notepad++菜单中选择:格式-转为UCS-2 Little Endian,然后保存,见图-1和图-2;

图-1

图-2
3. 把上述修改做第二次提交;
4. 在log中右键reset回退至第一次提交版本,再用同样的方法退回第二次提交的版本。这时,再打开application.c时,就显示为下面的乱码了。

图-3

图-4
猜想:
1. 可能是Tortoise的问题
    验证:直接用Git Bash界面用命令行操作,结果还是乱码。
    Tortoise版本:1.8.12.0
    Git 版本        :1.9.5
2. 可能是操作系统的问题,我是64位win7系统,这个刚刚想到,还没验证。
3. 可能是rtt文件的问题
    验证:直接对一个不带rtt的工程中的.c文件进行相同的操作,最后显示正常,没有出现乱码。

结论:
从上面的几个验证中再推想下会不会是rtt里的某些脚本对git有干扰呢???管理员能否帮忙看一看。

感想:
怎么会有这么奇怪的问题呢。。。已经好几天没用上Git了,根据廖雪峰的言论,我又回到了非版本管理的19世纪开发模式。


Ming Bai

unread,
Jan 29, 2015, 8:53:11 AM1/29/15
to rt-thread用户组
为啥要转成UCS2-LE

--
You received this message because you are subscribed to the Google Groups "rt-thread用户组" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rt-thread-cnus...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Message has been deleted

简单

unread,
Jan 29, 2015, 8:43:49 PM1/29/15
to rt-threa...@googlegroups.com
对了,这点忘记说了。因为项目中用到emwin,emwin中显示中文的方法需要把文件转换成UCS-2 LE的格式才认中文编码

在 2015年1月29日星期四 UTC+8下午9:53:11,Bill Ming写道:

简单

unread,
Jan 29, 2015, 10:26:42 PM1/29/15
to rt-threa...@googlegroups.com
已经解决!
刚刚忽然灵光一闪,rtt根目录下貌似有个".gitattributes"的文件,印象中这东西是设置git的一些属性用的,点开一看,瞬间感觉离问题根源就近了。因为我看到了"* text=auto"这样一句话。不知道是不是被auto坑多了,感觉上有auto的地方就容易出问题,比如auto update,auto set,auto download等等,时不时会给电脑带来意想不到的效果。更让我确信的是在"* text=auto"下面还有这样一句话"*.c text",即所有的.c文件全部采用text属性,而text已经在开头被设置为了auto,就说git根据你的auto属性可以随意更改.c的某些东西了。果断删掉,重新修改"application.c"属性为UCS-2 LE,保存,commit,往前回退再退回来。OK。一切正常!
后来也是查了Git的帮助手册,里面对text属性描述如下图,大致意思是说text属性决定着git将如何check in和check out你的文件,当text设置为auto的时候,git会把设为text属性的文件中的换行符转换为LF。而这种转换可能会导致UCS-2 LE编码方式的乱码。对编码不太懂,故上述言论只作猜想,不作结论。此刻重要的是我又回到了版本管理的20世纪。


在 2015年1月29日星期四 UTC+8下午9:46:56,简单写道:

Ming Bai

unread,
Jan 29, 2015, 10:32:35 PM1/29/15
to rt-thread用户组
我觉得代码依赖文件编码类型这事儿本身就是不对的。

sernia.zhou

unread,
Jan 29, 2015, 11:14:02 PM1/29/15
to Ming Bai, rt-thread用户组
又能收到gmail邮件了,真感动。

---原始邮件---
发件人: "Ming Bai "<mbb...@gmail.com>
发送时间: 2015年01月30日 11:31:53
收件人: "rt-thread用户组"<rt-threa...@googlegroups.com>;
主题: Re: rtt1.2.3版本管理乱码(Tortoise+Git)

我觉得代码依赖文件编码类型这事儿本身就是不对的。

2015-01-30 11:26 GMT+08:00 简单 <k0bec...@gmail.com>:

--
You received this message because you are subscribed to the Google Groups "rt-thread用户组" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rt-thread-cnus...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

简单

unread,
Jan 30, 2015, 12:57:23 AM1/30/15
to rt-threa...@googlegroups.com
我也这么觉得!不过emwin显示中文的话有其他方法么?

在 2015年1月30日星期五 UTC+8上午11:32:35,Bill Ming写道:
Reply all
Reply to author
Forward
0 new messages