登入  |  English
感謝您對「自由軟體鑄造場」的支持與愛護,十多年來「自由軟體鑄造場」受中央研究院支持,並在資訊科學研究所以及資訊科技創新研究中心執行,現已完成階段性的任務。 原網站預計持續維運至 2021年底,網站內容基本上不會再更動。本網站由 Denny Huang 備份封存。
也紀念我們永遠的朋友 李士傑先生(Shih-Chieh Ilya Li)。

4.鑄造場提供的版本控制服務


名詞縮寫

  • 版本控制系統version control system以下稱"vcs"
  • Subversion ,一種opensource版本控制軟體,以下稱"svn"
  • Concurrent Versions System ,一種opensource版本控制軟體,以下稱"cvs"
  • OSSF OpenFoundry 鑄造場專案開發平台以下稱"鑄造場"
  • 鑄造廠專案開發平台使用者以下稱"使用者"

選擇版本控制系統

鑄造場所提供的版本控制系統有Subversion 及 CVS,而在選擇版本控制時有以下五種選項:

  1. Subversion(讀寫)
  2. 使用站內提供的svn(subversion)版本控制系統,專案則提供viewvc(專案的版本控制頁面)的web瀏覽。
  3. CVS(讀寫)
  4. 使用站內提供的cvs(Concurrent Versions System)版本控制系統,專案則提供viewvc(專案的版本控制頁面)的web瀏覽。
  5. 站外(讀寫) => Subversion(唯讀)
  6. 使用站外版本庫,並複製到站內版本庫(唯讀)提供專案viewvc(專案的版本控制頁面)的web瀏覽,請輸入「站外版本庫」欄位的版本庫網址。
    ps.目前停止複製到站內,因此和使用「站外版本庫」選項是相同的。
  7. 站外版本庫
  8. 使用站外版本庫,並請輸入「站外版本庫」欄位的版本庫網址。
  9. (請選擇)
  10. 不使用版本庫的意思

透過命令列存取SVN檔案庫

鑄造場所使用的svn版本為1.4,svn的安裝方式請參閱svn官方網站。使用者有兩種方式連結svn檔案庫,一種為 http,此種方式可供讀取及寫入(read & write)。 也可匿名讀取(anonymous read),不需要帳號密碼,連結網址: https://svn.openfoundry.org/[專案名稱]。

範例: 從鑄造場取出檔案至工作複本
以下 [專案名稱],'/home/checkout' 為範例文字,使用者可自行變更
我們可以透過 svn指令 checkout (簡寫: co ) 取出專案的工作複本
指令: svn co https://svn.openfoundry.org/[專案名稱] /home/checkout

範例: 檢視鑄造場svn檔案庫
以下 [專案名稱],[路徑] 為範例文字,使用者可自行變更
透過svn指令 list ( 簡寫: ls ) 檢視鑄造場svn檔案庫[路徑]下的內容。
指令: svn list https://svn.openfoundry.org/[專案名稱]/[路徑]
另一種為https,此種方式讀取寫入皆可(read & write),連結網址: https://svn.openfoundry.org/[專案名稱]。
注意:寫入檔案庫需要輸入帳號密碼,此組帳號密碼與鑄造場相同。變更密碼需稍待5分鍾後才會生效。
注意:在此建議使用者以https的方式存取svn檔案庫,https是經過加密的連線,安全性較http高。原來使用http的工作複本也可以使用relocate指令重新指定檔案庫位址到https上,詳見FAQ。
注意:在此之前請先匯入中研院資訊所的憑證,以免出現警示訊息。

範例: 提交工作複本到鑄造場svn檔案庫裡
提交svn工作複本不需要給額外的連結網址,svn會自動使用取出的時候的連結。
我們可以透過 svn指令 commit (簡寫: ci ) 把工作複本的更動寫進鑄造場svn檔案庫
以下 '/home/checkout'為範例文字,使用者可自行變更
加上 --username [帳號] 指定帳號,--password [密碼] 指定密碼
指令:svn ci /home/checkout

範例: 傳送未納入版本控制的專案到鑄造場svn
透過svn指令 import 檢視鑄造場svn儲存槽
以下 [專案名稱],[路徑],'/home/myprog' 為範例文字,使用者可自行變更
加上 --username [帳號] 指定帳號,--password [密碼] 指定密碼
指令:svn import /home/myprog https://svn.openfoundry.org/[專案名稱]/[路徑]

簡介SVN視窗化應用程式- TortoiseSVN

安裝TortoiseSVN詳細步驟請參閱官方網站。

範例:取出工作複本
操作01:在空白目錄下叫出右鍵選單,選"SVN Checkout..."

操作02:在"URL of respository"欄打上連結路徑"https://svn.openfoundry.org/testproject04",其中testproject04為範例專案。

操作03:完成,看的到取出的版本號

 

範例:新增檔案至工作複本
操作01:在欲加入版本控制的檔案上叫出右鍵選單,選取"TortoiseSVN"->"Add"。

操作02:勾選要加入的檔案或目錄後,按下"OK"。

 

操作03:完成,顯示加入了哪些檔案。

 

範例:把對工作複本所作的變更寫回檔案庫
操作01:在工作複本的目錄中叫出右鍵選單,選"SVN Commit..."。

操作02:輸入版本更動的明細(可留白),按下"OK"。

操作03:因為是寫入,需要填入帳號密碼。

操作04:完成,顯示改了哪些檔案及目前的版本號。

透過命令列存取CVS檔案庫

使用者連結cvs僅提供ssh連線方式,此種方式讀取寫入皆可(read and write),也可匿名讀取(anonymous read),鑄造場cvs檔案庫的匿名帳號: "cvs"。
基本指令: cvs -d :ext:[帳號]@cvs.openfoundry.org:/cvs [cvs指令]

範例: 從鑄造場取出檔案至工作複本
以下 [專案名稱],'/home/checkout' 為範例文字,使用者可自行變更
我們可以透過cvs指令 checkout (簡寫: co,get ) 取出專案的工作複本
注意: 帳號"cvs"為匿名帳號。
指令: cvs -d :ext: 這個 E-mail 地址已經被防止灌水惡意程式保護,您需要啟用 Java Script 才能觀看 :/cvs co [專案名稱]

範例: 檢視鑄造場cvs檔案庫
以下 [專案名稱],[路徑] 為範例文字,使用者可自行變更
透過cvs指令 list ( 簡寫: ls ) 檢視鑄造場cvs檔案庫
注意: 帳號"cvs"為匿名帳號。
指令: cvs -d :ext: 這個 E-mail 地址已經被防止灌水惡意程式保護,您需要啟用 Java Script 才能觀看 :/cvs ls [專案名稱]/[路徑]

範例: 提交工作複本到鑄造場cvs檔案庫裡
提交cvs工作複本不需要給額外的連結網址,cvs會自動使用取出的時候的連結。
我們可以透過 cvs指令 commit (簡寫: ci ) 把工作複本的更動寫進鑄造場cvs檔案庫
指令: cvs ci /home/checkout

範例: 傳送未納入版本控制的專案到鑄造場
透過cvs指令 import 檢視鑄造場svn檔案庫
指令:  cvs -d :ext:[帳號]@cvs.openfoundry.org:/cvs import [專案名稱]/[路徑]

簡介CVS視窗化應用程式- WinCVS

安裝WinCVS的詳細步驟請參閱官方網站 。

範例:取出工作複本
操作01:選取選單"Remote"->"Checkout module..."。

操作02:在"Module name(s) and path on the server"欄填入專案名稱,在此為測試專案testcvs,接著勾選"CVSROOT",填入":extssh: 這個 E-mail 地址已經被防止灌水惡意程式保護,您需要啟用 Java Script 才能觀看 :/cvs",請"kaworu"將換成您的帳號名稱。

操作03:輸入密碼。

 

操作04:完成,取出工作複本。

 

範例:新增檔案至工作複本
操作01:先左鍵選擇欲加入的檔案,接著按下工具列按鈕上的"Add selected"。

操作02:輸入密碼。

操作03:新增完成,顯示檔案版本號0。

範例:把對工作複本所作的變更寫回檔案庫
操作01:左鍵選取欲寫入的檔案,按下工具列的按鈕"Commit selected"。

 

操作02:輸入版本變更的明細(可以空白),按下"確定"。

操作03:輸入密碼。

操作04:成功,顯示版本號1.1。

使用VIEWVC瀏覽鑄造場檔案庫

使用者欲使用viewvc瀏覽各個版本,可透過網址 https://viewvc.of.openfoundry.org/viewvc

範例: 瀏覽svn檔案庫

操作:使用瀏覽器開啟網址"https://viewvc.of.openfoundry.org/viewvc",接著在"Repository"中選擇欲瀏覽的專案。

操作: 在"Sticky Revision"可輸入版本號。

範例: 瀏覽cvs檔案庫
操作:使用瀏覽器開啟網址"https://viewvc.of.oopenfoundry.org/viewvc",並在"Repository"欄選"cvs",再選擇欲瀏覽的專案。

可在"Sticky Tag"中選擇版本號。

 

FAQ

Q1:
我使用的是svn檔案庫,我原本專案是從https://...的連結抓出來,如果我想改用https://...的連結比較安全,我該怎麼操作呢?
A1:
假設你想將連結從https://svn.openfoundry.org/alert,搬到https://svn.openfoudnry.org/alert,那麼請在你的工作複本的目錄底下打: svn switch --relocate FROM TO 。其中的FROM即是https://svn.openfoundry.org/alert,TO即是https://svn.openfoudnry.org/alert. 你可以試著打svn info可以看到工作複本的路徑已經變更。 更詳細的說明請參考指令svn help switch。
Q2:
我已經在鑄造場網頁上更改了密碼,為什麼在登入svn/cvs檔案庫時卻還是使用舊密碼呢?
A2:
在鑄造場網頁上更改密碼之後,請稍等5分鍾,待資料庫更新完畢,即可使用新密碼。
Q3:
我想將鑄造場上的檔案庫搬到其他地方,或是從其他地方搬版本資料到鑄造場,我該怎麼做呢?
A3:
如果你是想要匯入或是匯出尚未納入版本資訊的檔案的話,請參閱Q4。 如果你是想要將檔案連同版本資訊一併搬動的話,建議的做法是將檔案庫轉存成文字檔,再將此文字檔存回其他檔案庫即可。 真的有需要的話,請聯絡鑄造場的維護人員,我們會為您操作。
Q4:
我原本有在自己的電腦裡寫程式,想要試試鑄造場提供的檔案庫,我該怎麼將程式放入檔案庫裡?
A4:
以svn 為例,假設你的程式放在/myprog/裡面,尚未納入版本控制,想要將目錄下所有檔案都放入檔案庫,指令: svn import /myprog https://svn.openfoundry.org/[專案名稱],但是要記住,還要從檔案庫裡再取出一份有版本資訊的工作複本,你對工作複本所做 的變更才會有紀錄留下。
而cvs為例,指令為: cvs -d :ext:[帳號]@cvs.openfoundry.org:/cvs import /myprog/
Q5:
請問鑄造場有上的資料有備份嗎?
A5:
有的,鑄造場系統的維護時間是UTC+8時區的3:00~4:00am,會備份當天的資料差異,那段時間之內的鑄造場系統操作會稍微慢一點。





分類: Subversion