安装及下载client端
TortoiseSVN客户端安装包和语言包的官网下载地址:http://tortoisesvn.net/downloads.html
什么是SVN(Subversion)?
有一个简单易于理解的比喻:SVN=版本控制+备份服务器。
你可以把SVN当成备份服务器,它可以帮你记住每次上传到这个服务器的档案内容,并且自动的赋予每次的变更一个版本(也就是自动生成版本信息)。 我们称用来存放上传档案的地方就做Repository,也就是档案仓库的意思。基本上,第一次我们需要有一个新增add档案的动作,将想要备份的档案放到Repository上面。日后,当你有任何修改时,都可以上传到Repository上面,上传已经存在且修改过的档案就叫做commit,也就是提交修改给SVN
server的意思。针对每次的commit,SVN server都会赋予他一个新的版本,也会把每次上传的时间记录下来。日后某些因素,如果你需要从Repository下载曾经提交的档案,你可以直接选择取得最新的版本,也可以取得任何一个之前的版本。
SVN运行方式
集中式代码管理的核心是服务器,所有开发者在开始新一天的工作之前必须从服务器获取代码,然后开发,最后解决冲突,提交。所有的版本信息都放在服务器上。如果脱离了服务器,开发者基本上可以说是无法工作的。我们每天到公司开始新一天的工作:
1、从服务器下载项目组最新代码。
2、进入自己的分支,进行工作,每隔一个小时向服务器自己的分支提交一次代码(很多人都有这个习惯。因为有时候自己对代码改来改去,最后又想还原到前一个小时的版本,或者看看前一个小时自己修改了哪些代码,就需要这样做了)。
3、下班时间快到了,把自己的分支合并到服务器主分支上,一天的工作完成,并反映给服务器。
这就是经典的SVN工作流程。
为什么要用SVN
1.
备份工作档案是十分重要的。你永远不知道计算机上的硬盘何时会坏掉。而坏事情往往都发生在最重要的时刻。例如,要release东西的前一刻,硬盘完全坏掉,无法修复。所以,常常备份工作数据是非常重要的。大部分公司的server都会有专门的备份机制,甚至是异地备援,绝对比放在自己的计算机里头,或是随身碟上面来的安全。
2.
版本控管非常重要。你无法保证手头上最新版本永远都是对的。很多时候,在经过数天努力工作后,你才发现走错方向。需要将所有的修改回复到数天前版本。没有几个人能够完全记住自己修改过什么东西。如果没有做好版本控管,那么,最糟糕的状况就是要全部重来。
3. 伙伴间的数据同步也是非常重要的。很多时候,除了你个人外,还有其它的伙伴也需要您的档案。怎么把最新的档案提供给伙伴呢?用e-mail?用e-mail是个糟糕的主意。到了最后,根本就不知道哪一封e-mail才是新的。
4. 如果没有一个好的办法,备份不同版本是很耗费硬盘空间的。例如:你有一个总共10MB的目录,使用单纯的档案备份。如果有10个版本就会变成100MB。20个版本就有200MB。如果,不想备份这么多版本,势必就是要减少备份的次数。拉长备份周期将会导致数据遗失的危险性增高。把旧的不需要的备份删除?根据经验,只要时间一拉长,你跟本就不知道一个月以前的版本是重要或者是不重要。
SVN使用步骤
1 简单的初步使用:
按照默认设置安装完成后,重启电脑,点击右键会有如下两个选项!选择当前选项即打开SVN目录!
点击Repo-browser,填入自己服务器的SVN地址:
然后就可以看见工作目录了,所有工程文件都可以共享:
------------------------------------------------------------------------------------------------------------------------------------
2 迁出源代码到本地机:
新建一个文件夹(就是你想把SVN上down下的数据放在哪),右键文件夹如上图,点击SVN Checkout。
在URL of Repository:下的文本框中输入svn server中的代码库的地址,其他默认,点击OK按钮,就开始签出源代码了。
在Checkout Depth,有4个选项,分别是迁出全部(Full Recursive)、只签出下一级子目录和文件、只签出文件、只签出空项目,默认的是第一项。
Reversion处,“HEAD revision”是指最新版,也可以指定Revision为任意一个版本。
确定后开始下载源代码:
3提交修改过的文件和更新本机代码:
在本地存放代码的文件夹(也就是down下代码且已经更改代码所在文件夹)右键,选择SVN Update是更新本机代码与SVN服务器上最新的版本一致,选择SVN Commit...是提交修改过的文件到SVN服务器。
【提交修改和更新操作可能会因为版本冲突而失败,这是可以使用合并Merge或其他方法解决;也可能因为锁定Get Lock而失败,这是需要先解锁Release Lock】
4 签入源代码到SVN服务器和添加新文件到SVN服务器暂时木有用到,以后更新,其实也很简单的。在SVN更新过程中主要是要注意安全性!!
参考学习文章:
(*)http://wenku.baidu.com/link?url=5nptTWMEU8blWrewEi0P3ER7n73htNqF2rUZG6E_SPQwc8rMi2pJI7GaPNWTyRiLOPxXw80V6oH_hDvm0vBMBT5w2L9cCDFNaAyDmWUEgCy
(*)http://www.cnblogs.com/xilentz/archive/2010/05/06/1728945.html
Tortoise SVN入门学习