摘 要多媒體素材庫的建設需要多個人共同合作完成,因此在素材庫的建設過程中存在文件頻繁的變更,共享文件最新一致數據,可能需要回溯到某個版本等管理問題。利用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