鄧希廉,崔雪艷,沈鳳明
(1.西北農(nóng)林科技大學(xué)網(wǎng)絡(luò)與教育技術(shù)中心,咸陽 陜西 712100;2.楊凌高新幼兒園,咸陽 陜西 712100)
幼兒園日常需要編輯和整理各類的多媒體文檔或者文字,這些資料在一次編輯完成以后,會保存在各個班級的電腦內(nèi)部,如果下次再次編輯新的文檔,需要重復(fù)一個新的過程,搜索素材、編輯文字、整合相關(guān)的資源到一個新的文檔,這樣工作方式存在的問題是:舊有的文檔就沒有充分得到利用,各個班級和任務(wù)產(chǎn)生的文檔之間沒有充分共享,產(chǎn)生不必要的工作量。比如:有些照片是幼兒園活動照片,能在具體的某個文檔中使用,但是,由于缺少一個公共的共享庫,只能通過群內(nèi)發(fā)送消息,或者詢問的方式,達(dá)到部分文檔的共享,特別是不能實(shí)現(xiàn)文檔的版本控制,沒有版本控制,文檔會產(chǎn)生大量的修改后保存的文檔,這些文檔只是一個在編輯文檔的副本。不利于文檔的編輯,并且一旦編輯后的文檔,想還原到以前的某個狀態(tài),需要作者在各個副本中搜索,編輯的效率很低下。以上的問題可以通過版本控制系統(tǒng)解決,文檔的編輯可以在班級或者幼兒園內(nèi)部共同完成,并且可以在各個文檔的版本之間實(shí)現(xiàn)轉(zhuǎn)換,提升文檔的編輯效率和共享效率。
版本控制系統(tǒng)最初的使用領(lǐng)域是軟件開發(fā),主要用于源代碼的管理以及項(xiàng)目代碼的版本控制,主要解決多個軟件開發(fā)人員之間的協(xié)調(diào),由于軟件規(guī)模的擴(kuò)展,越來越多的開發(fā)者之間的協(xié)調(diào)成為軟件開發(fā)的一種挑戰(zhàn),過去軟件開發(fā)人員需要保留自己的源代碼,一個簡單的方法是復(fù)制這個源代碼保存為一個副本,但是其源代碼中很多是重復(fù)的代碼,如果在其上隨意更新代碼會導(dǎo)致源代碼的副本版本錯誤。最具挑戰(zhàn)的是多個開發(fā)者源代碼的合并,假如開發(fā)者同時修改了同一個源代碼文件,導(dǎo)致了沖突,在沒有版本控制系統(tǒng),對照源代碼修改相關(guān)文件會特別麻煩。因此,版本控制系統(tǒng)是一種記錄一個或者多個文檔內(nèi)容變化,以便今后查閱特定版本修訂的系統(tǒng)。版本可以理解為一次文檔變化的修訂,它主要解決的問題是多個不同人工作之間協(xié)調(diào)。
版本控制系統(tǒng)一般都含有以下三個主要的功能:文件變更記錄功能;分支與合并功能;可追溯功能。文件變更記錄功能包括文件增刪改的變更;分支與合并功能用于各個開發(fā)人員各自獨(dú)立開發(fā),解決分支之間沖突,合并各個開發(fā)人員的開發(fā)文檔;可追溯功能用于標(biāo)定文件變更記錄,軟件出現(xiàn)Bug后追查相應(yīng)文檔。
現(xiàn)在的版本控制系統(tǒng)主要分為兩大類:集中化的版本控制系統(tǒng)(Centralized Version Control Systems)和分布式版本控制系統(tǒng)(Distributed Version Control System)。Subversion(SVN)屬于集中版本控制系統(tǒng),主要的特點(diǎn)是該系統(tǒng)有一個集中管理的服務(wù)器,協(xié)同工作的各個人員需要鏈接到服務(wù)器,服務(wù)器負(fù)責(zé)保存所有文檔的版本修訂,系統(tǒng)用戶主要負(fù)責(zé)提交文檔的更新。SVN開始是用于軟件文檔的版本控制,得到程序員群體的廣泛接受,但是,在其他領(lǐng)域由于其操作的特殊沒有得到推廣。SVN缺點(diǎn)是存在服務(wù)器故障導(dǎo)致文檔的丟失,所以對服務(wù)器的管理相對要求較高。
SVN使用的是樂觀鎖模型,屬于第二代版本控制系統(tǒng),主要的特征是用戶可以同時讀寫服務(wù)器上的文檔,SVN自動記錄文檔的變更。用戶可以同時編輯同一文件,提交以后發(fā)現(xiàn)有文件沖突,說明服務(wù)器上的內(nèi)容與本地修改的內(nèi)容產(chǎn)生不一致,執(zhí)行更新后,需要跟其他人員協(xié)調(diào)文檔并修改文檔,解決完文件沖突后可以將文檔重新提交。
SVN版本控制系統(tǒng)中核心的是倉庫,這里用戶可以理解成服務(wù)器,有所不同的是它使用文件系統(tǒng)樹存放信息。文件系統(tǒng)樹由文件和目錄組成,記錄了存儲文件的每一個版本,這樣,不僅可以訪問到最新的文件系統(tǒng)樹,還可以訪問文件系統(tǒng)樹的歷史。每接受一次提交(Commit),文件系統(tǒng)樹自動創(chuàng)建一個版本號(revision),需指出的是這個號是整個系統(tǒng)的,不是某個文件所有的,所以,是某個版本號下的某個文件,而不是某個文件的特定版本。
SVN在版本控制使用branch、tag和trunk來區(qū)別不同的版本變更。SVN branch、SVN tag和SVN trunk主要用于隔離不同版本之間的變更:branch就是分支,在軟件開發(fā)中用于新特性的開發(fā),優(yōu)點(diǎn)是不會使trunk主線上的版本存現(xiàn)bugs或者錯誤,只要開發(fā)者的新特性穩(wěn)定以后,使用merge(合并)回trunk主線;SVN tag(標(biāo)簽)標(biāo)識特定的版本,是某個時間點(diǎn)的快照,使用用戶可讀的命名方式,例如release-1.0。在合并的工作中,既可以將分支中的修改合并到trunk主線,也可以定制的版本變化合并到trunk主線。如果當(dāng)前的工作副本是主線,那么合并的是分支上的變動;如果當(dāng)前的工作副本是分支,那么合并的是trunk主線上的變動。
幼兒園的多媒體教研室是一個很好的部署環(huán)境,只需要布置一臺安裝SVN server的服務(wù)器,只需要安裝SVN client的客戶端,在服務(wù)器上建立倉庫,各個老師將自己的文檔使用SVN client軟件按照操作流程,就能實(shí)現(xiàn)文檔的共享。同時,我們將整個目錄結(jié)構(gòu)劃分為共享目錄和基于項(xiàng)目小組的目錄。共享目錄按照文檔用途,分為圖片、影像、聲音、文檔等,文檔的按照格式分為word等目錄?;陧?xiàng)目小組的目錄,分為項(xiàng)目小組1的目錄,其下面的目錄可以參看共享目錄的結(jié)構(gòu)。
圖1 系統(tǒng)部署圖
圖2 修改文檔的流程圖
SVN update主要用于將當(dāng)前目錄和子目錄下的文件同步到最新的版本SVN add,增加文件用于版本控制;SVN delete用于從版本控制庫刪除文件;SVN copy主要用于在版本控制復(fù)制文件;SVN move主要用于版本控制文件移動;SVN revert主要用于版本控制文件的恢復(fù)到某一個版本;SVN resolve用于版本控制沖突的解決;SVN commit用于提交當(dāng)前文件的修改。修改文檔的流程如下:①使用SVN update將工作目錄同步到最新的版本;②使用SVN /add /delete /copy /move等命令將需要同步到目錄下的文檔更改到當(dāng)前目錄;③如果需要恢復(fù)到某個版本使用SVN revert;④如果修改完的某個文件后出現(xiàn)文檔沖突,使用SVN resolve;⑤修改完所有的文檔以后,使用SVN commit將文檔同步到服務(wù)器。幼兒園的文檔種類繁多,對文檔進(jìn)行有效的管理是實(shí)現(xiàn)文檔共享的基礎(chǔ),本文利用SVN軟件工具設(shè)計(jì)了一種基于版本控制的文檔共享系統(tǒng),能有效解決幼兒園在文檔管理方面存在的問題,整合幼兒園內(nèi)部優(yōu)秀的素材資源和文檔資源,提升文檔的編輯效率和實(shí)現(xiàn)文檔版本的管理。