SVN是一种版本管理系统,前身是CVS,是开源软件的基石。即使在沟通充分的情况下,多人维护同一份源代码的一定也会出现混乱的情况,版本管理系统就是为了解决这些问题。
SVN像时光机器一样,可以让你回到过去。因此凡是你认为可能需要恢复以前样子的工作都可以用SVN来管理。比如程序员编程、美工做图、翻译、异地监控工作进度,可以说SVN不仅在软件工程领域发挥重大作用,在其他行业也用重要用途。例如两个人合作翻译一本书、几个人设计一个工程图纸,svn不仅可以让你的工作恢复以前的状态,而且可以起到一个备份的作用,非常重要的工作文件如果只保存在自己电脑里,一旦电脑中毒或者硬盘损坏,可能造成不可估量的损失。但是如果用SVN来管理,每天把文件保存到SVN服务器,就不用担心会丢失了。
日常开发过程其实就是这样的(假设你已经Checkout并且已经工作了几天):Update(获得最新的代码) -->作出自己的修改并调试成功 --> Commit(大家就可以看到你的修改了)。
聪明的读者很快就要发问,如果两个程序员同时修改了同一个文件呢?SVN可以Merge这两个程序员的改动,对,合并,实际上SVN管理源代码是以行为单位的,就是说两个程序员只要不是修改了同一行程序,SVN都会自动合并两种修改。如果是同一行呢,SVN会提示文件Confict, 冲突,需要手动确认。
取出版本库到一个工作拷贝:
来到任意空目录下,在本例中是E:/svndemo/wc1,运行右键->Checkout,在URL of repository中输入svn://localhost/trunk,这样我们就得到了一份工作拷贝。
在工作拷贝中作出修改并提交:
打开readme.txt,作出修改,然后右键->Commit...,这样我们就把修改提交到了版本库,我们可以运行。
目前外网托管代码的主要有
1. Google项目托管http://code.google.com/p/support/
2. 还有http://www.oksvn.com/这个网站也支持代码托管
http://sourceforge.net/这个网站上有不少的开源文件
动画教程:http://www.subversion.org.cn/media/all.swf