话说以前自己做的一些小项目,经常出现忘记保存、突然断电等令人抓狂的事情。后来想到的办法是备份,这备份又有一个进化的过程,最先是建一个文件夹,隔一段时间压缩一下放进去,但是这个命名实在是麻烦,后来傻乎乎的做了个工具,调用命令行压缩,命名时自动把当前时间放进去,后来发现WinRAR就有这个功能后才知道自己真的傻乎乎了。
废话说了这个多,其实今天我想说的是版本控制。话说之前经常接触到版本控制相关的咨询,说程序猿必须使用版本控制啊,用了版本控制即牛逼又装逼啊,说得我热血沸腾啊,赶紧各种尝试,尝试的结果就是除了去github、google code之类的地方clone人家牛逼的代码瞧瞧外没有更进一步的使用了。
说到底,以前不仅没这方面的意识更没这样的需求,以为版本控制必须要个神马服务器,必须要遵守神马协议,必须多人协同工作才有必要,个人还是勤备份算了。
这段时间,在这个小公司,我需要跟别人一起写代码了!五个人做同一个东西,我改改,他改改,我改改,你改改,再每个人又发给我汇总,毛啊,原来我改好的东西咋没了啊!虽然有点冒火,但得找解决办法啊,第一想到的就是之前尝试的牛逼版本控制。
正好装了个TortoiseSVN,先试试吧……
首先,这代码存哪里啊,存到开源社区,不太合适吧,公司内部项目,存到私人代码寄存服务?收费好像不划算,不收费不可靠啊,存网盘吧,以前似乎用过同步盘之类的东西备份东西,比如金山快盘就不错,就是速度有点慢,听说百度网盘也能同步了,那就用百度吧。
好,下面开始总结折腾出来的结果,前面的都是废话!!!!
这得从我知道了原来可以在本地建版本库开始……
一、建立本地版本库
1、装了TortoiseSVN后,一般集成到资源管理器里,新建一个文件夹,右键->TortoiseSVN->在此创建版本库就行了,比如我建在E:MySVN
2、然后就可以去版本库浏览器添加一个工程文件夹进来了,确认后工程文件夹下的文件就添加到这个E:MySVN里来了,具体文件结构先不管
3、这回可以把原来的工程文件夹里的东西删除了,空白处右键->检出,填上file://E:MySVN工程名,东西又回来了。当然应该也可以先去版本库浏览器里建文件夹然后再到其他地方检出,然后建工程
4、这回每次修改完后在工程文件夹下右键->提交就可以了,每次还能填写日志,很是方便啊,更重要的是每次只提交你改过的部分,比全部打包备份高级多了。直到这里我才开始激动不已。
既然可以在本地存,当然也可以有办法让局域网内的其他人访问,不过我还是想搭建一个专门的svn服务器,这样操作:
1、下载一个Setup-Subversion-1.8.8.msi,这是目前的版本,安装好后,呃,不能打开(貌似是跟Apache搞在一起的东西,我先不管Apache了)
2、打开cmd,输入svnserve -d -r E:MySVN就可以了
3、然后TortoiseSVN里地址就能填svn://loacalhost/了,唆使别人用的时候改成自己的IP
但是这样有个麻烦,那个svnserve不是以服务运行的,运行后有个cmd的窗口,很碍眼。解决方案是这样的:
1、新建个svnServer.bat
svnserve -d -r "E:MySVN"
2、同文件夹下新建个svnServer.vbs
Set ws = CreateObject("Wscript.Shell") ws.run "cmd /c startSVNServe.bat",vbhide
3、每次只要运行svnServer.vbs就行了,也可以添加到开机启动
(话说还能这样搞隐藏窗口,今天才知道,确实挺好玩的啊)
同步到网盘
这个就不需要多说了,操作都比较简单。如果文件夹不好整理到一起,在win7上可以用mklink,xp好像也有个junction,得下载,似乎还没win7方便。
现在,我终于可以很方便也很享受地修改代码了!!!
以后再研究下那个牛逼的git