Subversion在多媒体素材库建设中的应用
2016-05-14张更新
摘 要多媒体素材库的建设需要多个人共同合作完成,因此在素材库的建设过程中存在文件频繁的变更,共享文件最新一致数据,可能需要回溯到某个版本等管理问题。利用Subversion的特点,结合多媒体素材库建设中文档管理的特点,本文阐述了有效解决文档版本控制的 Subversion 管理方法。
【关键词】Subversion(SVN) 版本控制 多媒体素材库
1 问题的提出
多媒体素材库的开发需要许多个人共同合作完成,开发过程中项目组成员需要共享各专业数据库中数据,为了保证素材库的正常建设,项目组成员需要保证每个人拿到的文件都是最新的、一致的,且可以根据需要回溯到之前的某个节点,这就需要在项目过程中做好数据的版本管理。 素材库的文件版本管理是一个素材库建设的基础,它不仅可以提高素材库的建设效率,而且可以提高素材库的共享性,为多媒体素材库的长期发展保驾护航。
多媒体素材库的文件数据是其建设的核心,如果忽略对其版本控制管理的重要性,会给其带来许多问题。
(1)缺少版本规划,时间久了容易引起版本混乱;
(2)版本没有进行生命周期管理,维护成本很大;
(3)版本升级测试通过后,没有及时归档(包括中间产生/更新的各种过程文档);
(4)归档后的版本,下发文件人员没有及时发布出去;
(5)由于没有做好文档数据版本管理,经常出现同一项目组的开发人员的版本不一致,此时想回溯到之前的版本变得困难重重,从而对项目造成严重影响。
2 版本控制的概念
版本库Repository是 Subversion的核心部分,它是数据的中央仓库,版本库以典型的文件和目录结构形式文件系统树来保存信息。任意数量的客户端连接到版本库读取修改这些文件。客户端通过写数据将信息分享给其他人,通过读数据获取别人共享的信息。一个数据仓库对应的可以是一个项目,也可以是多个项目。SVN是基于数据仓库进行管理的。
它的主要特征有:
(1)“提交(commit)”实现了真正意义上的单个文件操作。
(2)版本号依据每次提交而改变,日志信息也是针对每次提交而设置。
(3)具有创建分支(Branch)和标签(tag)的功能。
3 SVN应用
SVN Repository 是多媒体素材库的版本库核心,所有的数据都以一定的数据格式存放在这个仓库。用户根据权限可以访问版本库。
3.1 简述
(1)建立项目的数据仓库,并导入项目的最初版本(由管理员完成)。
svn://10.232.201.102/多媒体素材库/护理学
(2)从仓库获取一个“工作副本”(svn checkout,可以获取最新版本也可以获取以前的某个版本),在这个“工作副本”中进行项目开发,修改完毕将变动提交到仓库。
svn checkout svn://10.232.201.102/多媒体素材库/护理学。
在团队开发中,进入已有的“工作副本”进行编辑前,应该先使用"svn update"命令将当前“工作副本”更新到仓库中的最新版本。
3.2 Subversion常用命令
典型的工作周期是这样的:
3.2.1 更新你的工作拷贝
· svn update
将当前“工作副本”更新到仓库中的最新版本。
3.2.2 做出修改
· svn add
· svn delete
· svn copy
· svn move
如果要在项目中增加或删除某一文件或目录(包括复制和移动),必须使用svn的相关命令进行标记。
for example: 增加 doc 文件,用命令 touch doc , svn add doc
3.2.3 检验修改
svn status
· svn diff
· svn revert ( 把文件恢复到未修改的状态)
3.2.4 合并别人的修改到工作拷贝
·svn update
· svn resolved
3.2.5 提交你的修改
· svn commit
检查确认无误后,便可提交此次更改,同时要附加此次更改的说明注释信息。
冲突发现与解决:
Subversion打印C标记,并且标记这个文件已冲突。
对于每一个冲突的文件,Subversion放置三个额外的未版本化文件到你的工作拷贝:
filename.mine
你更新前的文件,没有冲突标志,只是你最新更改的内容。
filename.rOLDREV
这是你的做更新操作以前的BASE版本文件,就是你在上次更新之后未作更改的版本。
filename.rNEWREV
这是你的Subversion客户端从服务器刚刚收到的版本,这个文件对应版本库的HEAD版本。
如果你遇到冲突,三件事你可以选择:
(1) “手动”合并冲突文本(检查和修改文件中的冲突标志)。
(2) 用某一个临时文件覆盖你的工作文件。
(3) 运行svn revert 来放弃所有的修改。
一旦你解决了冲突,你需要通过命令svn resolved让Subversion知道,这样就会删除三个临时文件,Subversion就不会认为这个文件是在冲突状态了。
3.3 标签
相应的svn库都有tag 文件夹,tag只可读,不可写,tag是开发文档目录主干的一个快照,根据开发的阶段,可以在重要的阶段打 tag,以便于以后对文档的查找和恢复。
在多媒体素材库的数据搜集完后可以打一个tag,当编辑初稿后可以打一个tag, 当初审完成后可以再打一个tag,当然在最终发布时,也要打tag。
4 小结
如今在多媒体素材库的建设体系中,文档管理始终是一个难题。利用SVN的特点可以有效解决对文档的版本控制。将维护人员与开发人员相互分离,开发人员更新文件,而维护人员在工作时总能拿到最新的文件,不但提高了效率,更减少了误操作的可能性。同时,维护人员通过SVN更新文档,使得开发人员能够更好地对素材库文件进行改进。此外,对于团队中不同人员的权限控制,也保证了文档的安全性,避免了被无关人员的篡改。
参考文献
[1]许林.医院网络环境中软件在线升级技术的研究与实现[D].中国石油大学, 2011(08).
作者简介
张更新(1981-),男,河北省衡水市人。硕士研究生学历。现为衡水卫生学校文化教学部讲师。
作者单位
衡水卫生学校 河北省衡水市 053000