2007年11月23日 星期五

版本控制系統(svn) - client版本

subversion(svn)是我近年來使用得最密集的功能之一, 透過這個系統可以讓我跟研究室的成員進行多人開發,因此跟其他人之間不再需要去注意文件版本與同步的問題,因此特別寫下這個筆記...

checkout
說明:這是使用svn系統的第一步驟, 透過這個步驟可以從檔案庫取回檔案副本。
svn checkout svn+ssh://[username]@[host id]/[repos path]/
svn checkout file:///[repos path]/


update
說明:當每次開始要修改前,先透過這個指令取回最新版本的檔案。下面的兩個用法,第一種用法會把所在位置的目錄,以及其下的子目錄所有檔案,一併更新。第二種用法只是單純把某個特定檔案,或是某個特定目錄更新。
svn update
svn update [filename]

commit
說明:當這一次完成修改之後,使用這個指令來將修改送回檔案庫記錄,成為一個新的版本。
svn commit -m "[commit command]"

status
說明:查詢檔案狀態。可以在副本的任何一個目錄內執行這個指令,以下兩種用法也如同svn update一樣,所以我不再敘述一遍。
svn status
svn status [filename]

M filename1 (已修改檔案)
? filename2 (尚未加入svn系統管理)
A filename3 (已經透過svn add加入svn系統,但是尚未以svn commit送至檔案庫)
D filename4 (
將已納入管理的檔案,以svn delete刪除,但是尚未以svn commit送至檔案庫)

add
說明: 將尚未納入管理的檔案,透過svn add將檔案納入管理,從此檔案庫就會多出這個檔案
svn add [filename]

delete
說明: 將已納入管理的檔案,透過這個指令來刪除這個檔案(備註:若直接用rm的方式來刪除檔案,他會被認為檔案遺失,所以下一次update時,會再次取回),從此檔案庫就不再有這個檔案的存在。當然,透過svn update [先前版本],還是可以把這個檔案取回。另外,若這個檔案有修改過,系統不會允許直接刪除,必須加上--force的強制指令,才能刪除掉這個檔案。
svn delete [filename]
svn delete [filename] --force

0 意見: