SVN基础使用以及心得

本文介绍了SVN的基础操作,包括安装配置、仓库创建、客户端使用、代码提交与更新、分支管理等内容。通过实例演示了如何高效地进行团队协作,分享了在实际工作中的一些使用心得。
摘要由CSDN通过智能技术生成
文章背景:个人在工作中使用SVN的时间不长,对于SVN的使用还处于初级阶段,开发中上传代码碰到了一些问题。写一篇关于SVN的基本使用,对于一些初学者应该是有帮助的。本文对于SVN的介绍相信在工作中使用已经足够了


为什么选择SVN:说起来SVN亦要说起git,本人没有使用过git,对于git的理解亦来自网络途径,下面大致整理了一下二者的特点。


git:
1.版本库本地化,支持离线提交,相对独立不影响协同开发。每个开发者都拥有自己的版本控制库,在自己的版本库上可以任意的执行提交代码、创建分支等行为。例如,开发者认为自己提交的代码有问题?没关系,因为版本库是自己的,回滚历史、反复提交、归并分支并不会影响到其他开发者。
2.更少的“仓库污染”。git对于每个工程只会产生一个.git目录,这个工程所有的版本控制信息都在这个目录中,不会像SVN那样在每个目录下都产生.svn目录。
3.把内容按元数据方式存储,完整克隆版本库。所有版本信息位于.git目录中,它是处于你的机器上的一个克隆版的版本库,它拥有中心版本库上所有的东西,例如标签、分支、版本记录等。
4.支持快速切换分支方便合并,比较合并性能好。在同一目录下即可切换不同的分支,方便合并,且合并文件速度比SVN快。
5.分布式版本库,无单点故障,内容完整性好。内容存储使用的是SHA-1哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。


SVN:
1.服务器公司统一控制管理,在很多情况下,一个集中式的数据仓库却是更合适的。例如,如果你有一些核心代码想只允许部分人能访问,把它放到git里必然是你不希望的。很多的企业都是将它们的代码集中管理的,如此说来所有(重要)政府项目估计都使用的是集中式数据仓库的版本控制系统。
2.安全机制, 不会每个人都拷贝一份, 可以对组员限制, 也可以分配不同组
3.团队合作开发起来传递的数据量不会过大, git因为都是镜像, 如果有个美工传个500mb的psd, 不相关的人员也要去下载, 很浪费流量和更新时间
4.subversion感觉搭建非常简单支持https, 可以外部网络访问, 可以让员工在家办公, 也不用担心传递数据的流量(好邪恶)
5.每个人的电脑大小不一定能装下特别大的项目, 对于svn来讲, 公司配备一个足够大的服务器硬盘就好了, 而且哪个项目完成, 直接删掉本地目录就好, 完全没有保留的必要
6.网游公司, 广告公司这些需要大量媒体设计混合到程序的项目中, 很需要svn这样的服务器.
7.svn相对于git分支确实弱爆了, 但是并不能通过鄙视svn就能把所有人的习惯改过来. 


两者思维上的比较:
Subversion的理念符合常规思维 这是说,很多人(特别是管理者或老板)对版本号有一种习惯的认识,把开发视作一种按时间的线性发展轨迹,这在他们脑子里根深蒂固。并不是找借口,Git的随意性并不是很容易去理解,客观的认识。 Subversion只提供一种途径...


结论:两者的区别还是比较大的,使用哪一种视情况而定


———————————




一.安装方法


1.安装之前将本机日期改为未来的某个日期,然后双击安装,按照指定流程操作即可
2.如果安装前忘记改日期,则只能通过修改plist的方式进行破解
    a.显示系统隐藏文件,打开终端,输入,回车
defaults
write ~/Library/Preferences/com.apple.finder AppleShowAllFiles -bool
    b.重启Finder 按住Command+Option+esc打开对话框,选中Finder,点击重新开启
    c.在Finder中前往~/Library/Preferences/ByHost,找到其中的GlobalPreferences.…….plist文件,删掉包含有"com.zennaware.Cornerstone"字样的这一行,即清除了安装记录
    d.清除安装记录之后,如果这时电脑中没有CornerStone,则按照1步骤进行安装,如果已经安装,则卸载后按照1过程再次安装,即得到永久破解版


二.配置
1.打开后点击左侧栏中REPOSITORY那一栏的+选择添加repository
2.如果公司的repository地址为svn://开头,则选择SVN Server,如果为Http://或https://开头,则选择HTTP Server
3.假设你公司svn地址为:svn://192.168.1.111/svn/ios,用户名:svnserver,密码:123456




1:填写主机地址
2:如果你的主机地址中有端口号,如为192.168.1.111:8080,则2中填写8080
3:填写主机后面的路径
4:自动生成,如果你填写完之后不是这种svn://用户名@主机地址:端口号/路径的格式,则说明填写有误
5:也会自动生成,将会在侧边栏显示为5中的名称,可以自定义名称
6:用户名
7:密码


2.HTTP配置
与svn一样,只有一个地方需要注意,如果地址是https://,则需修改pro选项为HTTPS,否则也会添加失败


三.使用


1.上传项目到repository


    可以直接拖动到repository的子文件夹中,或是选择软件上方的Import按钮上传,会弹出选项填写所在位置及名称,然后选择Import即可


2.下载项目


   下载分为两种:Export和Check Out,区别在于,Export后的项目不会与repository中的源文件相关联,是一个独立的版本,而Check Out下来的文件会创建一个working copy,此文件与库中源文件相关联,当有新版本(他人修改)或是本地修改(自己修改)时,working copy会显示修改数量,白色数量为他人修改数量,灰色数量为本人修改数量
    所以如果你是项目中的开发人员,可以选择check out,如果只是下载查看,不希望自己的修改影响到整个项目,最好是选择Export


3.版本管理


    每一次提交会创建一个新版本,在repository中会保存所有历史版本,可通过修改人及提交信息进行检索版本,所以用svn开发可以很好的控制项目出现不可解决及未知bug时代码的修复问题


4.先更新后提交


在提交之前先点中check out下的项目,点击LOG看一下,在看到有新版本(即同伴已经提交代码时),先更新代码,直至working copy不再显示白色圈,然后运行代码确定可运行且功能无误之后再commit自己的代码,否则,将错误代码提交就笑了,在提交的时候不要忘记写上说明,即干了什么


5.完成独立功能后再提交,且务必填写提交信息


每完成一个独立的功能,或解决一个bug之后再提交代码,不要连续多次重复提交,造成版本过多过杂,且提交时务必填写提交信息,交代本次完成了什么功能,方便上图中可以进行message的搜索来查看历史版本


6.冲突文件


原则上同一组开发人员最好不要在同一文件中进行操作,但有时候必须去其他文件中进行操作,或者是误操作,如果同时多人在同一文件的同一位置修改代码,后提交的人会出现版本冲突文件,一般会有三个同样名称不同后缀的文件:.mine文件,本人所做修改;两个.r0XX文件:XX为数字,数字较小的为更改前的文件,较大的为更改后的文件,在文件中会有<<<< mine .r0XX  >>>>>等字样包含起来的代码,即冲突的地方,和同事商议解决。如果没有新建类或者添加图片,即新加文件,可以删掉工程文件再update一下,快速安全


7.新添加文件


提交时新增加的文件显示为问号状态的,请选中右击后 选择Add to Working Copy之后再commit,否则提交不上


8. update中断


网络不好的情况下update过长,SVN会有提示,等网络好的时候再更新就行了。在更新过程中因为一些未知原因或者人为强制关掉SVN再次更新则会报错,此时选择左侧相应的项目右键点击clean一下,解决冲突重新update


9.SVN默认.a文件无法上传或下载


点击菜单栏Cornerstone下的preferences中的subversion,将拦截.a文件的操作去掉


结束语:本文借鉴网络内容以及自己使用的一些心得写出,文章等级不高,希望能够帮到看到的人
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值