U3D开发的时候难免要自动生成一些配置文件。假如你的项目组有人用mac有人用windows那么在处理这块就要特别的小心。因为Mac和windows结尾的换行符不一样,所以在SVN认为这两个文件有改动,如果你生成的配置文件很多的话,就很悲剧因为找不到真正变化的文件了。
如下图所示,像这样SVN认为这两个文件不一样。
仔细查了一下代码,原来是自己用了一个比较坑爹的方法,在这里记录一下避免以后在遇到这样的错误。
1 2 3 |
writer.WriteLine(text.Trim()); |
代码中之前我用的是WriteLine(),无论怎么Trim()把\n\r全去掉依然不解决问题。后来我才发现WriteLine这个方法会自动在后面加一个换行符。。
在写入文件的时候最好用Write(),在需要换行的地方自己来写’\n’符号。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
void Start () { string path = Application.dataPath +"/newMac.text"; WriteFile(path,"1\n2\n"); } void WriteFile(string path,string text) { if (System.IO.File.Exists (path)) { File.Delete (path); } using(StreamWriter writer = new StreamWriter(path, false, Encoding.UTF8)) { writer.Write(text.Trim()); } } |
如下图所示,用对比软件在看看问题解决。 嘿嘿,左边是mac下生成的 text 右边是windows下生成的text。 这样SVN就不会认为它俩不一样了。。
PS:
我用的SVN工具是:Conrnerstone
对比软件的工具是:Kaleidoscope
我觉得目前在MAC上开发这两个工具已经是最佳的效果了,和我用的一样的同学请举手,嘿嘿。
- 本文固定链接: https://www.xuanyusong.com/archives/2602
- 转载请注明: 雨松MOMO 于 雨松MOMO程序研究院 发表
捐 赠写博客不易,如果您想请我喝一杯星巴克的话?就进来看吧!
雨松大大 你这个问题我用了特别的方法 完美解决了 详细看我博客吧 嘿嘿 http://blog.csdn.net/fmx521/article/details/39104315
雨松大大 这个问题我有完美的解决方案 并且完美解决 请看我博客 http://blog.csdn.net/fmx521/article/details/39104315
git 感觉 smartGit比较好用, 代码对比比较容易看懂
git 感觉 smartGit比较好用, 代码对比比较容易看懂
syncro SVN mac下我用的是这个
svn 坑的要死 建议 如果以前项目是SVN 用git-svn Sourcetree就支持,如果新项目上Git吧
对比软件的话Beyond Compare4已经有Mac版了。SVN工具我试试这个。谢谢了。
版本控制大部分都用SVN吗?很少用Asset Server吗?