首页 >Unity3D频道 >【Unity杂文】 > Unity3D研究院之Mac&Windows文件写入结尾不一样
2014
05-09

Unity3D研究院之Mac&Windows文件写入结尾不一样


U3D开发的时候难免要自动生成一些配置文件。假如你的项目组有人用mac有人用windows那么在处理这块就要特别的小心。因为Mac和windows结尾的换行符不一样,所以在SVN认为这两个文件有改动,如果你生成的配置文件很多的话,就很悲剧因为找不到真正变化的文件了。

如下图所示,像这样SVN认为这两个文件不一样。

屏幕快照 2014-05-09 下午5.47.01

仔细查了一下代码,原来是自己用了一个比较坑爹的方法,在这里记录一下避免以后在遇到这样的错误。

writer.WriteLine(text.Trim());

 代码中之前我用的是WriteLine(),无论怎么Trim()把nr全去掉依然不解决问题。后来我才发现WriteLine这个方法会自动在后面加一个换行符。。

在写入文件的时候最好用Write(),在需要换行的地方自己来写’n’符号。

	void Start () {
		string path = Application.dataPath +"/newMac.text";
		WriteFile(path,"1n2n");
	}

	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就不会认为它俩不一样了。。

屏幕快照 2014-05-09 下午6.02.40

PS:

我用的SVN工具是:Conrnerstone 

对比软件的工具是:Kaleidoscope

我觉得目前在MAC上开发这两个工具已经是最佳的效果了,和我用的一样的同学请举手,嘿嘿。

最后编辑:
作者:雨松MOMO
专注移动互联网,Unity3D游戏开发
捐 赠写博客不易,如果您想请我喝一杯星巴克的话?就进来看吧!

Unity3D研究院之Mac&Windows文件写入结尾不一样》有 8 条评论

  1. 小坏说:

    雨松大大 你这个问题我用了特别的方法 完美解决了 详细看我博客吧 嘿嘿 http://blog.csdn.net/fmx521/article/details/39104315

  2. 明轩说:

    雨松大大 这个问题我有完美的解决方案 并且完美解决 请看我博客 http://blog.csdn.net/fmx521/article/details/39104315

  3. *说:

    git 感觉 smartGit比较好用, 代码对比比较容易看懂

  4. *说:

    git 感觉 smartGit比较好用, 代码对比比较容易看懂

  5. *说:

    syncro SVN mac下我用的是这个

  6. 王龙波说:

    svn 坑的要死 建议 如果以前项目是SVN 用git-svn Sourcetree就支持,如果新项目上Git吧

  7. 说:

    对比软件的话Beyond Compare4已经有Mac版了。SVN工具我试试这个。谢谢了。

  8. just说:

    版本控制大部分都用SVN吗?很少用Asset Server吗?

留下一个回复

你的email不会被公开。 必填项已用 * 标注。