svn使用簡單教程

svn使用簡單教程(http://blog.csdn.net/adcxf/archive/2008/09/21/2957878.aspx)
你是否正在參與團隊合作項目?

你是否遇到過這樣的情況:當你正在修改一個文件,卻出現另一個人作了同樣的事情。你是否曾因爲這種巧合而導致了你的修改付之東流?

你是否曾經在文件保存之後,又想恢復到文件保存之前?你是否想過要去查看一個文件幾天前的內容?

當你發現一個項目中的bug,你是否想知道它是何時出現在你的代碼中?

如果你對上面任何一個問題回答“Yes”,那麼TortoiseSVN就是你所需要的!你得仔細閱讀TortoiseSVN的說明,學會如何解決上面的問題。這並不難~

這份說明是寫給那些希望使用Subversion去管理他們的資料,卻又不習慣於命令行的操作的人。因爲TortoiseSVN就像是一個windows的擴展外殼,用戶可以像使用“我的電腦”那樣使用這個軟件。

TortoiseSVN是自由軟件,你不需要花錢就可以使用它,並且可以隨意使用。它的開發遵循GPL協議。

以上是從TortoiseSVN的幫助文檔摘錄出來的。簡單的說,TortoiseSVN可以看作一個代碼版本控制工具,方便多人合作編寫代碼。現在有不少開源的作品是使用SVN作爲源碼管理工具的,學會了TortoiseSVN就可以很方便的拿到這些代碼。

TortoiseSVN功能豐富,但是我們只需要學會2個簡單的操作即可,第一就是下載代碼,第二是上傳。下面針對各個功能作出說明。

Export...

因爲開源的項目大都是可以直接下載的,而上傳可能還需要開通某些權限,所以先說代碼的下載。

1、下載TortoiseSVN的安裝版本並安裝。你不會看到任何可執行的程序,因爲TortoiseSVN是嵌在windows裏面的。
2、新建一個空的文件夾,右鍵點擊它,可以看到TortoiseSVN菜單以及上面的SVN Checkout。
3、不用管這個Checkout,我們選擇TortoiseSVN菜單下的Export...,接着它會讓你輸入url。
4、比如輸入【迷宮探寶】的SVN地址是:http://game-rts-framework.googlecode.com/svn/trunk/
5、其他選項不需要更改,Omit externals不要勾選,HEAD Revision選中表示最新的代碼版本,接着點擊OK即可將代碼導出到這個目錄中:)

就像解壓縮一樣,不是麼?你還可以嘗試從這裏下載TortoiseSVN的源碼:
http://tortoisesvn.tigris.org/svn/tortoisesvn/
這裏可能需要登錄,用戶名是guest,密碼留空即可。

Checkout...

Checkout的意思簽出,雖然和Export的效果一樣是把代碼從服務器下載到本地,但是Checkout有驗證的功能,Checkout到某處的代碼,將會被TortoiseSVN監視,裏面的文件可以享受各種SVN的服務。

選擇那個Checkout的話,就表示這個目錄將與這個SVN地址關聯,這裏的修改可以提交到SVN服務器。由於這表示將參與代碼的編寫,往往需要開通權限纔可以。

可以到http://code.google.com/hosting/,選擇create new project,獲得一個由google提供的SVN空間,上傳你的代碼。我就不在這裏詳細講申請過程了,填一個簡單的表格就可以。

現在,我假設你已經得到某個SVN的賬戶和密碼,譬如我們的RTG項目:
https://game-rts-framework.googlecode.com/svn/trunk/
注意前面是https://,多了一個s表示security,意思需要校驗。
假設用戶名是guest,密碼是abc(這個用戶名和密碼可以由項目管理者分配給你)

1、在某目錄上右鍵單擊SVN Checkout...出現鏈接輸入。填入上放的url,其他選項依舊不要更改,和Export類似。
2、在要求輸入用戶名和密碼的時候填寫正確的內容,接着會出現代碼下載畫面。
3、全部文件checkout之後,目錄上會有一個綠色的勾,表示代碼在最近一次update只好未被修改。

這時,目錄中的文件都會有綠色的勾,如果你修改了他們,就會出現紅色的驚歎號表示這個文件已經被修改。這個目錄中所有帶勾的文件目前都在Tortoise的監視之下了,可以嘗試右鍵單擊文件,你會發現可以執行很多操作。接下來我會挑選一些比較常用的來講解。

Commit,Revert,Add,Delete...

假如你更新了目錄中的文件,那麼就可以用到commit功能。這個功能就是將你本地的文件修改記錄上傳到服務器上面,可以理解爲上傳。

但是commit的功能不僅僅是上傳,他會和服務器上面的文件進行對比,假如你更新了某個文件而服務器上面也有人更新了這個文件,並且是在你checkout之後做的更新,那麼它會嘗試將你的更新和他人的更新進行融合(merge),假如自動merge不成功,那麼報告conflict,你必須自己來手動merge,也就是把你的更新和別人的更新無衝突的寫在一起。

commit的時候,最好填寫Log信息,這樣保證別人可以看到你的更新究竟做了寫什麼。這就相當於上傳文件並且說明自己做了那些修改,多人合作的時候log非常重要。

TortoiseSVN的commit只會上傳原先checkout然後又被修改了的文件,假如你新加入了某些文件,需要右鍵點擊文件選擇Add,然後文件上面會出現一個加號,在下次commit的時候它就會被upload並且被標記爲綠色對勾。沒有綠色對勾的文件不會被commit。

假如你需要給帶有綠色對勾文件改名或者移動它的位置,請不要使用windows的功能,右鍵點擊它們,TortoiseSVN都有相應的操作。想象這些文件已經不在是你本地的東西,你的一舉一動都必須讓Tortoise知道。

假如修改了某個文件但是你後悔了,可以右鍵點擊它選擇Revert,它將變回上次checkout時候的情況。或者Revert整個工程到任意一個從前的版本。

Update
假如是多人合作的項目,自己不做修改的話別人也要修改,這時候就需要使用update來同步本地和服務器上的代碼。同樣是右鍵選擇update,所有的更改就會從服務器端傳到你的硬盤。注意,假如別人刪除了某個文件,那麼更新之後你在本地的也會被刪除。

如果本地的代碼已經被修改,和commit一樣會先進行merge,不成功的話就會報告conflict。

其他……
假如有的文件不想讓別人修改,還可以進行Lock操作。
還有用於查看所有log的show log菜單,現實版本更新圖示的Revision graph,查看服務器端目錄結構的Repo-browser。
另外還有創建tag操作,相當於把當前的代碼版本複製一份到其他地方,然後以這個地方爲出發點進行新的開發,與原來位置的版本互不干擾。

這些屬於比較高級的應用,詳細的請自己查看幫助文檔http://tortoisesvn.net/docs/release/TortoiseSVN_zh_CN/吧。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章