svn入门

SVN

        版本号:指的是整个仓库中文件的版本号,并不是当初该文件的版本号。

        checkout:将服务端的项目整体捡出到本地。第一次将仓库(Repository)中的资源捡出到本地时才会用到。第一次checkout后,后面就是使用update和commit进行操作。

        export:跟checkout类似,也是将项目导出到本地。但checkout导出后受版本控件,而export导出后不受版本控件,相当于直接把服务端的文件复制到本地一份。可以发现checkout导出的项目,文件夹下有一个.svn的隐藏文件夹(用来控制版本的),而export导出的却没有。

        diff with previous version:与上个版本进行比较

        import:将本地的文件上传到服务器。与checkout对比。注意:对文件夹进行import时,只会将文件夹内的内容上传到服务器,并不包含该文件夹

        update:更新。假设本地删除某一资源,可以通过update将服务端的资源再次捡出到本地。不用担心本地资源的丢失。

        revert:还原。将本地的文件还原成服务器中的版本。

        update to version:更新到指定的版本。也是用来还原到指定的版本。其中HEAD指的就是最新版本。

        绿色对号:本地与服务端完美匹配。

        黄色感叹号:冲突时出现。

        红色感叹号:本地修改,尚未提交。使用commit提交图标就会变成绿色对号。

        蓝色问号:尚未添加到版本控制中。

        蓝色加号:已经通过add将文件添加到仓库(Repository),但尚未执行commit操作。此时仓库中并没有该文件。因此,添加一个文件到仓库(Repository)需要经过两步:首先add,再commit。当执行完commit后,图标会变成绿色对号。

        delete:本地删除一个文件。该父件所处的文件夹的图标会变成红色感叹号,还需要commit。这跟add一样,delete只是告诉服务端要删除,commit后服务端才会真正地删除该文件。

        branch/tag:建立分支。建立分支后,当前的文件夹仍旧处于旧分支中。需要通过switch进行切换。

        switch:切换分支。

        merge:合并分支

        get lock:锁定。一个文件被锁定后,自己在操作该文件时,别人无非进行操作。

        release lock:解锁。

备份

        先export到本地,然后压缩存储备份即可。

冲突

        不同人对同一文件进行了修改,后提交者提交时仓库中的版本已经发生变化,此时便会发生冲突。

        如果修改的位置不同,可以先update(此时svn会自动将先提交者修改的和后提交者修改的进行合并),再commit

        如果修改的是同一个地方,先update,此时本地会出现几个新文件——一个以.mine结尾,两个以".r版本号"结尾——其中mine文件指本地修改后的文件,版本号较低的是本地修改前的文件,版本号较高的指repository中最新的文件。而原来的文件则出现一些特殊符号,指明了冲突的地方。在原文件中手动解决冲突后再commit。至于新出来的几个文件(mine等三个)可以直接删掉。

早在2000年,CollabNet, Inc.就开始召集开发人员开发CVS的替代品。CollabNet 提供一套名为SourceCast协同工作套件,其中的一部分组件是版本控制。虽然SourceCast使用CVS作为其最初的版本控制系统,但是CVS的种种限制从一开始就处处可见,最后CollabNet明白必须要找到一个更好的解决方案。不幸的是,至少在免费license中,因为没有更好的选择,CVS已经广泛成为了开源世界中事实上的标准。所以CollabNet决定开发一个新的版本控制系统,保留CVS的基本特性但去除CVS的bug和不好的特性。   在2000年2月,他们联系《使用CVS开发开源项目》(Open Source Development with CVS)(Coriolis, 1999)的作者Karl Fogel,并征求了他是否愿意在这个新的项目中担任一个角色。巧合的是,当时Karl已经和他的朋友Jim Blandy讨论了一个关于新的版本控制系统的设计。在1995年,这两人就成立了Cyclic Software,一个提供CVS的商业支持的软件公司。虽然他们经营商业服务,但是仍然在每天都在工作中使用CVS。使用CVS的挫折感使得Jim认真思考更好的方法来管理数据,不但确定名字为“Subversion”,而且完成了Subversion档案库的基础设计。   当CollabNet的电话到来时,Karl立即答应了加入项目中,而且Jim让他的雇主RedHat Software同意让他在这个项目中不定期工作。CollabNet雇用了Karl和Ben Collins-Sussman,并在5月开始了详细设计工作。在得到了来自CollabNet的Brian Behlendorf、Jason Robbins和Greg Stein(当时是一名活跃在WebDAV/DeltaV规范过程的自由程序员)很多创意的帮助下,Subversion很快地引起了一个活跃开发者社区的注意。它找出并欢迎很多同样在CVS上受到挫折的社员能来为这个项目做点什么。   Subversion 最初的设计Team定下了几个简单的目标。 它必须在功能上可取代 CVS,也就是说, 所有 CVS 可做到的事, 它都要能够作到。 在修正最明显的瑕疵的同时, 还要保留相同的开发模式。 还有, Subversion 应该要和 CVS 很相像, 任何 CVS 使用者只要花费少许的力气, 就可以很快地上手。   经过十四个月的编码后, Subversion 于2001年8月31日开始实现 “自行管理”。 也就是说, 开发人员不再使用 CVS 来管理 Subversion 的代码, 而以 Subversion 自己来管理。   从启动这个项目到现在,虽然CollabNet提供了大部分的资金(它付出几位全职 Subversion 开发人员的薪水), 但这还是个开源项目, 由一组松散透明的规则所约定。 CollabNet 拥有代码的版权完全符合 Debian Free Software Guidelines。 换句话说, 每个人都可以随意地免费下载、修改、以及重新发布 Subversion; 完全不需要经过 CollabNet, 或是任何人的允许。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值