转自: http://page.renren.com/601034756/note/848153755

在学校的时候,一直习惯在windows下搞开发,用visual stduio或是eclipse之类的ide。到了现在的公司之后,几乎都是在linux下开发的。虽然linux下有vim等编辑器,但用起来还是很不习惯。所以我往往是在寻找在windows好linux之间同步代码的方式。这样就可以在windows下开发,然后再传到linux下进行编译,当然这个过程越简单越好。搞了很久,有一些心得,下面是几套方案的比较。

1、samba

我觉得samba是目前最好的解决方案。要求在linux端安装samba服务,并配置好共享目录,然后在windows端做磁盘映射,把linux的某个目录映射到windows下。

这个方案最大的好处是不需要人工操作,在映射的磁盘下的文件自动同步到linux下,实时性比较好,cache机制也相对非常完善,一般不会有卡的感觉。

但是这个方案有个缺点是,必须在linux机器上安装samba,目前我所在公司,对在linux服务器上安装samba,管得比较严,担心有安全的隐患。因此受限于这个的限制。

一个解决的办法就是安装虚拟机,在虚拟机中安装与服务器一样的操作系统和编译环境,然后在虚拟机中安装samba,再到windows下做映射。但是这个方案的问题是虚拟机要占用一定的cpu和内存,而且编译速度会比较慢。最让我忍受不了的是虚拟机导致windows无故重启。我用的virtualbox,不知道是不是virtualbox的bug。因此,最终这套方案被我放弃了。

2、ssh + webdrive

webdrive是一个商业软件,有破解版本的。它可以通过ssh将linux的某个目录映射到windows下。但是这个方案有个严重的问题,速度好像不行,会让你感觉有卡的感觉。你想呀,开了eclipse做开发,经常发现保存一个文件要很长的时间,让你很不能忍受,建立索引的时间也比较长。

这个方案是我最初的选择,最后由于速度问题放弃了。webdrive的下载地址:http://www.verycd.com/topics/2905875/

3、svn

就是在windows下做开发,然后提交代码到svn。在到linux下svn下载代码,然后编译。这样做的好处是编辑的时候很方便,不用担心速度的问题,eclipse建立索引也很快。

但是存在的问题是什么呢?一个是不是很方便,要先提交代码,然后再下载代码,然后才能编译。这也与提交代码的原则是相违背的,我们一般要确保我们的代码是能编译通过的,才提交,有的时候甚至要code review通过后才能提交代码。对于采用CI机制管理的代码来说,更是这样,提交一次代码会引起编译机的编译和跑单测。

因此这种方案也不是很可取。

4、cwRsync

在linux下,我们都知道有一个很好的同步工具rsync。其实在windows下也有一个rsync的实现,叫做cwRsync,下载地址:http://sourceforge.net/projects/sereds/files/cwRsync/4.0.3/

我们只要在windows下装上rsync的客户端,然后每次写完代码后,用rsync将代码同步到linux,然后到linux端进行编译。rsync是增量同步的,速度还是很快的。

这样在windows端搞个脚本,每次写完代码,运行一下同步代码,就可以到linux下进行编译了,还是比较方便的。这是我目前使用的办法。

由于这个东东要用到ssh,可能需要输入密码,这不是很方便。我的解决方案是用sshpass来搞定。我用cygwin编了个sshpass就搞定了。

不知道各位大大还有没有别的方法,有的话,请不吝赐教。

分享技术,分享快乐,小桥流水


Logo

更多推荐