SVN版本庫 windows下操做

windows下SVN編輯
請先安裝php

TortoiseSVN 小烏龜。百度或是 https://tortoisesvn.net/downloads.html


建立工做目錄(檢出):


目的:項目文件從遠程服務器下載到本地工做目錄中。


新建工做目錄文件夾,在彈出菜單中選 SVN checkout


E66D0FAE4AC046C58BCF50A9A62EC2DC.jpg (12.72 KB, 下載次數: 0)html

下載附件 windows

2015-12-29 15:10 上傳服務器

710A783B9FBF47079CC44999CA4FD10C.jpg (18.33 KB, 下載次數: 0)svn

下載附件 測試

2015-12-29 15:10 上傳this




checkout directory 選 fully recursive


revision 選 head revision


svn會在目錄下建立個.svn目錄,記錄兩項信息:工做文件的基準版本和一個本地副本最後更新的時間戳。不要修改。不然本地的工做拷貝(靜態試圖)被破壞,沒法再進行操做。




2更新工做目錄:


目的:對工做目錄進行修改前,爲保證你的文件是最新的,須要進行更新操做;


工做目錄空白處點擊鼠標右鍵,選擇「SVN Update」。會顯示更新了哪些內容,庫版本是多少

2.jpg (8.74 KB, 下載次數: 0).net

下載附件 版本控制

2015-12-29 15:12 上傳日誌

2a.jpg (8.45 KB, 下載次數: 0)

下載附件

2015-12-29 15:12 上傳





3提交工做:


SVN commit,若是文檔有更新後,工做目錄空白處點擊鼠標右鍵,選擇「SVN commit」。會顯示更新了哪些內容,庫版本是多少。


選擇須要更新的文檔進行提交。


3.jpg (8.05 KB, 下載次數: 0)

下載附件

2015-12-29 15:13 上傳

3a.jpg (8.92 KB, 下載次數: 0)

下載附件

2015-12-29 15:13 上傳





4文件狀態


normal   正常的。 圖標1
綠色的對勾

  non-versioned   不在版本中  圖標4
藍色問號

conflicted    衝突   
圖標3
黃色感嘆號

modified  修改。  圖標2 紅色感嘆號


其它狀態:added deleted versioned 這些是指文件將要進行的操做。
查看狀態:
1 在版本控制列表中:可查看文件屬性中 subversion選項下的 status。
2 也可svn commit 選項中查看

4.jpg (18.28 KB, 下載次數: 0)

下載附件

2015-12-29 15:14 上傳




圖標介紹


狀態正常,綠色的對勾:

5a.jpg (1.47 KB, 下載次數: 0)

下載附件

2015-12-29 15:15 上傳



編輯文件後,紅色感嘆號:

5b.jpg (1.81 KB, 下載次數: 0)

下載附件

2015-12-29 15:15 上傳

  這裏表示上次更新工做複本被修改過,且須要提交。

狀態衝突,黃色感嘆號。

5c.jpg (1.36 KB, 下載次數: 0)

下載附件

2015-12-29 15:15 上傳


新建文件,藍色問號:

5d.jpg (1.43 KB, 下載次數: 0)

下載附件

2015-12-29 15:15 上傳

  表示手動新建文件,未加入版本控制中。右鍵文件,TortoiseSVN ---> add.加入版本控制。

新建文件,藍色加號:

5e.png (1.38 KB, 下載次數: 0)

下載附件

2015-12-29 15:15 上傳

  文件或者目錄已經被計劃加入到版本控制中。
5  新建文件(add):

新建一個b.txt文件,提交到版本庫的方法,2種:

1. 先提到變動列表中,再commit(提交)到配置庫中。右鍵新增文件,SVN菜單執行「Add「操做提交到」變動列表中」,而後執行」SVN Commit」提交到版本庫中。

  2. 不提交到變動列表中,而是直接commit配置庫中,選擇該文件,右鍵svn菜單執行」SVN Commit」操做。

6 刪除(Delete)

要刪除文件分兩種:

1 版本庫中,沒有這個文件 ,可直接刪除。 意思是,SVN update後,新建的文件,還未入庫(未作 svn commit)。

2 版本庫中 ,已有這個文件。也認爲 文件歸入版本庫管理。

   操做方法:右鍵文件,TortoiseSVN菜單中選 delete 操做。而後在空白處右鍵菜單執行 SVN commit ,在變動列表中選被刪除文件。文件14.txt

6.jpg (15.61 KB, 下載次數: 0)

下載附件

2015-12-29 15:18 上傳




7更名

修改文件名,右鍵文件,右鍵「TortoiseSVN」  菜單中 「Rename「。更改文件名後,文件會變爲藍色加號狀態。

注意此時,svn commit 提交版本時,必定要在空白處 選擇 svn commit ,不要在更改後文件的文件上選擇。

在文件狀態下可看到兩個文件,一個更改前的文件,一個更改後的文件。提交便可。以下圖


7.jpg (13.4 KB, 下載次數: 0)

下載附件

2015-12-29 15:18 上傳


8SVN文件版本(日誌)查看


右鍵 文件,TortoiseSVN下的」show log」設定好日期後查看歷史版本號:

注意若是日期不能選擇,請修改SVN服務文件 svnserve.conf 將下列選項設爲none

anon-access = none

8.png (12.52 KB, 下載次數: 0)

下載附件

2015-12-29 15:18 上傳



9SVN還原

右擊文件,TortoiseSVN菜單中」Update to reversion…」 在彈出窗口中選擇 show log 查看歷史版本,選擇想要的版本便可。

也可直接在Revision中填寫相應的版本號。

9.jpg (11.74 KB, 下載次數: 0)

下載附件

2015-12-29 15:18 上傳





10 檢查更新:

TortoiseSVN菜單中 Check for modifications  選項。

顯示所作的修改有哪些尚未提交,此功能不光能看到對文件的修改變化,全部的變化都能看到,包括增長文件或者目錄,刪除文件或者目錄,移動文件或者目錄等,若是你點擊了檢查版本庫,那你還能夠看到版本庫裏的改動,既別人提交了哪些文件的改動,你還沒更新到本地,


10.jpg (18.71 KB, 下載次數: 0)

下載附件

2015-12-29 15:18 上傳


11 解決衝突文件

版本控制和
衝突文件。

使用的軟件,通常發佈時都標有版本號。好比說我當前使用的有道筆記,這個是發佈後版本號。那麼相似的在開發環境中,確定存在不少版本進行測試修改。如何標明控制版本,以及恢復,或是修改某個版本。都須要在版本控制軟件下進行操做。

 

11.jpg (2.77 KB, 下載次數: 0)

下載附件

2015-12-29 15:24 上傳



所謂的衝突文件,簡單舉例:

假如當前測試環境下版本號爲100,版本服務器上svn庫中有一個文件 1.txt ,A和B 都準備修改他。

首先,兩人在各自的TortoiseSVN客戶端同時進行更新,各自取得了版本號100的文件 1.txt.

而後,A先修改完畢後,進行了提交,併成功。此時1.txt 版本號變爲101.而B仍然在編輯版本號爲100的1.txt

最後,當B修改完畢時,進行提交,此時不會成功,並報錯 版本衝突。主要緣由:B修改的是基於版本號100的1.txt,他提交的不是在當前最新的101版本上做的修改。服務器沒法對新的文件更新。


打個比方:一張A4紙,正反兩面均可以打印,正面打印完,反面是空白。此時A和B都知道,他們都有打印需求。A先打印反面,此時B不知道。假如,B用這張紙去打印,就會把A打印的覆蓋,此時就產生了衝突。

固然這個比方不是太恰當。

如下面爲例:s1和svn1都指向同一個庫,版本同樣。庫中有兩個文件18.txt和 test212.txt


11a.jpg (19.37 KB, 下載次數: 0)

下載附件

2015-12-29 15:24 上傳

11b.jpg (5.76 KB, 下載次數: 0)

下載附件

2015-12-29 15:24 上傳


同時更新18.txt,但不提交。

11c.jpg (25.54 KB, 下載次數: 0)

下載附件

2015-12-29 15:24 上傳



先提交 svn1下的18.txt,此時再提交s1下的18.txt文件。會提示報錯。

11d.jpg (14.18 KB, 下載次數: 0)

下載附件

2015-12-29 15:24 上傳



update後會在文件夾下產生三個文件。

11e.jpg (4.25 KB, 下載次數: 0)

下載附件

2015-12-29 15:24 上傳



其中:18.txt.r22是衝突前的版本。18.txt.r23是現有服務器上的版本。18.txt.mine是本機對18.txt.r22版本修改後產生的分支。

18.txt 打開後,會發現多出衝突內容:以下

11f.jpg (8.4 KB, 下載次數: 0)

下載附件

2015-12-29 15:24 上傳



其中:<<<<<<< .mine 以前是未產生衝突以前的代碼:

到====== 是本機修改的代碼:

========到>>>>>>>.r23 是別人與我衝突的代碼。


解決方法:

1 使用 revert(回滾) 操做: 這表示 用戶放棄這次更新的代碼:把服務器上的最新代碼 r23版本更新到本機。而後從新添加 用戶的添加 再提交。

上面文檔最後會變爲

14sdf

23


2種:右鍵文件,
TortoiseSVN下的 Editconficts (編輯)選項,通過協商後更改後再提交文檔。


11g.jpg (50.14 KB, 下載次數: 0)

下載附件

2015-12-29 15:24 上傳


紅色是衝突代碼. theirs 表示服務器最新代碼,mine 表示本身修改代碼。 merged表示合併 後代碼。

點擊紅色的代碼,可選擇 use this text block ,表示將該代碼做爲合併後的代碼。


11h.jpg (8.34 KB, 下載次數: 0)

下載附件

2015-12-29 15:24 上傳


最後保存: save 有兩個選項,一個修改狀態爲modified(修正),另外一個仍保持爲conflict(衝突)。

save as  有三個選項:left file ,right file ,bottom file.

此處保存爲:save --> modified。而後經過commit 提交

12c.jpg (1.41 KB, 下載次數: 0)

下載附件

2015-12-29 15:27 上傳

便可。18.txt文檔的版本會增長到24.

11i.jpg (12.99 KB, 下載次數: 0)

下載附件

2015-12-29 15:24 上傳

11j.jpg (12.54 KB, 下載次數: 0)

下載附件

2015-12-29 15:24 上傳




12 版本上鎖。版本庫瀏覽

右鍵文件 選擇
TortoiseSVN--> get lock 。會將文件上鎖,此時版本庫中此文件處於非編輯狀態。

可經過,

12a.jpg (3.72 KB, 下載次數: 0)

下載附件

2015-12-29 15:24 上傳

查看 文件信息及上鎖用戶。



下降衝突解決的複雜度:


一、當文檔編輯完成後,儘快提交,頻繁的提交/更新能夠下降在衝突發生的機率,以及發生時解決衝突的複雜度。

二、在提交時,寫上明確的message,方便之後查找用戶更新的緣由,隨着時間的推移,對當初更新的緣由有可能會遺忘 。

三、養成良好的使用習慣,使用SVN時每次都是先提交,後更新。天天早上打開後,首先要從版本庫獲取最新版本。天天下班前必須將已經編輯過的文檔都提交到版本庫。
相關文章
相關標籤/搜索