您的位置:首页 > 其它

初识SVN

2014-01-09 09:45 190 查看
曾经一起合作月刊时,就觉得很不方便,每次做完后都需要将资料拷贝给别人,每改动一下就赶紧备份一次。当时有想过这也未必太麻烦了吧。可也只是这么一想,就没有下文了。机房收费合作开始了,首先接触到的就是SVN这个新东西,看了几集视频,真有种相见恨晚的感觉。差不多学习了两天,问题也遇到了,感觉理解得还是很浅,什么都是实践了之后才有实实在在的收获。

1.什么是SCM以及SCM与SVN之间是什么关系?

软件配置管理(SoftwareConfiguration Management,SCM)是一种标识、组织和控制修改的技术。软件配置管理应用于整个软件工程过程。我们知道,在软件建立时变更是不可避免的,而变更加剧了项目中软件开发者之间的混乱。SCM活动的目标就是为了标识变更、控制变更、确保变更正确实现并向其他有关人员报告变更,使错误降为最小并最有效地提高生产效率。

常用的软件配置管理工具有:VSS,ClearCase,TeamWare,CVS和SVN。SVN作为CVS的替代者出现。

2.什么是SVN以及SVN中的重要概念

SVN(subversion)确切地说是版本控制工具。
在Subversion管理下,文件和目录可以超越时空。Subversion将文件存放在中心版本库里。这个版本库很像一个普通的文件服务器,不同的是,它可以记录每一次文件和目录的修改情况。这样就可以籍此将数据恢复到以前的版本,并可以查看数据的更改细节。Subversion的版本库可以通过网络访问,从而使用户可以在不同的电脑上进行操作。从某种程度上来说,允许用户在各自的空间里修改和管理同一组数据可以促进团队协作。
用一张图来表示就是:



SVN中的核心是配置库(Repository)----在服务器上存储所有的数据。工作副本(WorkSpace)与中央配置库相对应的个人工作空间。程序员从配置库拿到源代码,放在本地作为工作副本,在工作副本上进行查看、修改、编译、运行、测试等操作。并把新版本的代码从这里提交会配置库中。
3.SVN中的基本操作
为了练手,在我的电脑上既装了服务器也装了客户端。由于这些操作都比较简单,这里就是列举一下基本操作,对笔记做进一步整理。
服务器:创建Repository;创建Users;修改权限(右击库属性);获取库的链接地址 ;更改服务器的IP地址(Authentication下的configure
authentication option)
客户端:
客户端与服务器建立链接:
右击桌面checkout(初次使用TortoiseSVN的时候,你需要将服务器的代码下载到本地,这就是SVNCheckout(SVN检出))

检出深度:1、Fully recursive——全递归:检出完整的目录树,包含所有的文件或子目录。2、Immediate children,including folders——直接子节点,包含文件夹:检出目录,包含其中的文件或子目录,但是不递归展开子目录。3、Only file chlidren——仅文件子节点:检出指定目录,包含所有文件,但是不检出任何子目录。4、Only thisitem——仅此项:只检出目录。不包含其中的文件或子目录。

处理冲突:

冲突的表现:当团队协同工作的时候,多为团队成员同时操作一个文件。团队成员A操作完成后,将该文件提交到SVN上。此时,其他团队成员的本地文件与SVN上的文件版本不一致。当团队成员B操作完成并对文件进行提交操作时,就会产生冲突。即SVN版本是低版本不能覆盖高版本的版本库。

解决:选择冲突文件,右击---编辑冲突;编辑好后,右击---revert

建议:1、修改文件之前,先进行一次update操作 2、修改完成后,及时commit,不要在本地停留过长的时间。3、管好自己的事情,别人的事情尽量不要管。

版本库的迁移:在实践这个功能的时候遇到了不少的问题,也让我收获了很多。

使用cmd进行处理,关键就是两个步骤:先dump(导出)配置库,然后再load(加载)目标库中。

svnadmin dump E:\Repositories\项目1 > D:\项目1.svn_dump (将">"前面的库导出到“>”后面的库中)

svnadmin load E:\Repositories\部门1 --parent-dir 项目1 < D:\项目1.svn_dump (将"<"后面的库导入到“<”前面的库中,--parent-dir是指导入到目标库中的详细的目录,具体到库下的某个文件夹)

首先我遇到的问题:关于svn 的任何命令都无效:显示不是内部或外部可执行命令。解决办法有两个:1将svn.exe的路劲加入到path环境变量里。(如果安装程序没有做得话)。2.不嫌麻烦,每次使用命令加上“C:\Program
Files\VisualSVN Server\bin”,也就是安装路径找到bin目录。

如果你不知道命令怎么用svn命令,可通过如下方式查询:svn/svnadmin help;知道了子命令,但是不知道子命令的用法,还可以查询:svn/svnadmin help ci
之前看视频不知道dump和load语法,这里通过命令就可以看到了,而且应有尽有。

其他基本操作:文件上传(add,commit,update)、文件删除、日志地查看(show log)、获得版本信息(revert to this version)

4.总结:这只是SVN学习的一个开始,随着合作的进行,相信对SVN还会进一步理解。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: