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

圖1 系統部署圖

圖2 修改文檔的流程圖
SVN update主要用于將當前目錄和子目錄下的文件同步到最新的版本SVN add,增加文件用于版本控制;SVN delete用于從版本控制庫刪除文件;SVN copy主要用于在版本控制復制文件;SVN move主要用于版本控制文件移動;SVN revert主要用于版本控制文件的恢復到某一個版本;SVN resolve用于版本控制沖突的解決;SVN commit用于提交當前文件的修改。修改文檔的流程如下:①使用SVN update將工作目錄同步到最新的版本;②使用SVN /add /delete /copy /move等命令將需要同步到目錄下的文檔更改到當前目錄;③如果需要恢復到某個版本使用SVN revert;④如果修改完的某個文件后出現文檔沖突,使用SVN resolve;⑤修改完所有的文檔以后,使用SVN commit將文檔同步到服務器。幼兒園的文檔種類繁多,對文檔進行有效的管理是實現文檔共享的基礎,本文利用SVN軟件工具設計了一種基于版本控制的文檔共享系統,能有效解決幼兒園在文檔管理方面存在的問題,整合幼兒園內部優秀的素材資源和文檔資源,提升文檔的編輯效率和實現文檔版本的管理。