03 客戶端訪問SVN伺服器

2022-07-15 03:36:14 字數 4096 閱讀 7539

①首先進入自己的工作目錄,例如:d:\devworkspace\svnspace

②執行svn checkout命令,命令格式如下

格式舉例

svn checkout svn://localhost/erp myerp

執行結果

取出版本 0

③工作副本

執行checkout命令後進入myerp目錄,看到裡面什麼都沒有。真的什麼都沒有嗎?不是的。檢出命令會在這一目錄下建立乙個隱藏目錄.svn,用來儲存與伺服器互動的重要資訊,其中包括從伺服器端取回的最新版本資訊、檔案狀態、更新時間等。svn正是以此為依據判斷當前目錄中檔案的狀態。所以這個隱藏目錄千萬不要刪除或修改其中的內容——完全無視它的存在吧。如果伺服器端儲存的檔案可以視為乙個「正本」,那麼每個開發人員檢出到本地目錄的檔案可以視為「副本」,通常稱為工作副本。

①進入d:\devworkspace\svnspace\myerp目錄

②建立乙個檔案test.txt

③執行svn commit命令,執行結果是

d:\devworkspace\svnspace\myerp>svn commit test.txt

svn: e200009: 提交失敗(細節如下):

svn: e200009: 「d:\devworkspace\svnspace\myerp\test.txt」 尚未納入版本控制

說明乙個檔案必須納入版本控制才可以提交到伺服器端。

④執行svn add命令,將test.txt納入版本控制

d:\devworkspace\svnspace\myerp>svn add test.txt

輸出結果:a test.txt【a就代表剛加入版本控制】

⑤再次執行svn commit命令

d:\devworkspace\svnspace\myerp>svn commit test.txt

svn: e205007: 提交失敗(細節如下):

svn: e205007: 無法使用外部編輯器獲得日誌資訊;考慮設定環境變數 $svn_editor,或者使用 --message (-m) 或 --file (-f) 選項

svn: e205007: 沒有設定 svn_editor,visual 或 editor 環境變數,執行時的配置引數中也沒有 「editor-cmd」 選項

此時要求附加日誌資訊

⑥使用-m引數附加日誌資訊

d:\devworkspace\svnspace\myerp>svn commit -m "my first commit" test.txt

svn: e170001: 提交失敗(細節如下):

svn: e170001: 認證失敗

原因是沒有許可權

⑦暫時先開啟匿名訪問許可權

[1]進入對應的版本庫目錄下的conf目錄:d:\devrepository\subversion\erp\conf

[2]開啟svnserve.conf

[3]將第19行的# anon-access = read改為anon-access = write,也就是去掉「# 」,將read改為write。注意前面不要留空格,一定要頂格寫。

[4]不需要重啟svn服務,甚至命令列視窗都不需要重新開啟。

⑧重新執行提交命令

d:\devworkspace\svnspace\myerp>svn commit -m "my first commit" test.txt

正在增加 test.txt

傳輸檔案資料.

提交後的版本為 1。

說明提交成功了。

⑨其實svn commit命令最後可以不指定具體檔案,此時表示提交當前工作副本中的所有修改。

①將伺服器端檔案檢出到乙個新的目錄,模擬另外乙個終端

d:\devworkspace\svnspace>svn checkout svn://localhost/erp tomerp

a tomerp\test.txt

取出版本 1。

d:\devworkspace\svnspace>svn checkout svn://localhost/erp tomerp

a tomerp\test.txt

取出版本 1。

②回到myerp目錄,對test.txt檔案修改後提交。

③進入tomerp目錄

④執行svn update命令

d:\devworkspace\svnspace\tomerp>svn update

正在公升級 '.':

u test.txt

更新到版本 2。

這樣我們就可以在tomerp目錄下看到myerp目錄下提交的修改。

⑤思考:更新和檢出的相同點和不同點分別是什麼?

檢出更新

相同點不同點1

不同點2

建立.svn目錄,使檢出目錄成為工作副本

依賴.svn目錄

不同點3

只能操作1次

可以操作多次

①假設當前版本為12,想要取回版本9

②執行svn update命令

格式svn update --revision 想要取回的版本號

舉例svn update --revision 1

執行結果

正在公升級 '.':

d pp.txt

u test.txt

更新到版本 1。

③這裡需要注意的是,svn版本號並不是對某乙個檔案進行編號,而是對應整個版本庫總體狀態的乙個「快照」,取回某個版本不是取回版本號對應的某個檔案,而是整個專案的乙個快照。

①假設想要取回pp.txt在版本10時的狀態

②執行svn update命令

格式svn update 檔名 --revision 想要取回的版本號

舉例svn update pp.txt –revision 10

執行結果

正在公升級 'pp.txt':

u pp.txt

更新到版本 10。

③綜合這兩個例子,我們可以認為版本號和檔名構成了乙個橫縱座標系,通過檔案路徑和版本號定位其在某乙個時刻的狀態。

①沒有修改,現行版本

本檔案在工作目錄中沒有被修改,而且自當前版本之後,其他終端也沒有任何該檔案的修改被提交到伺服器,即當前工作副本的版本和伺服器端最新版本是一致的。對它執行svn commit和svn update都不會發生任何事。

②本地修改, 現行版本

這個檔案被修改過,但這個修改還沒有提交到伺服器,而且自當前版本之後,其他終端也沒有任何該檔案的修改被提交到伺服器,所以當前工作副本的版本和伺服器端最新版本仍然是一致的。由於有尚未送交回去的本地修改,所以對它的 svn commit會成功提交你的修改,而 svn update 則不會作任何事。

③沒有修改,過時版本

這個檔案沒有修改,但是版本庫中有其他終端提交的修改。此時當前工作副本的版本比伺服器端的版本落後了,我們稱之為「過時」。對當前檔案的 svn commit 不會發生任何事,而 svn update 會讓工作目錄中的檔案更新至最新版本。

④本地修改,過時版本

伺服器端存在沒有更新到本地的修改,導致當前版本過時。如果這個檔案在本地有未提交的修改,則無法提交,對它執行svn commit 會產生「out-of-date」錯誤。

此時應該先嘗試更新本地檔案。更新時svn會嘗試將伺服器端的更新與本地檔案進行合併,合併的結果有兩種可能:乙個是伺服器端和本地修改位於檔案的不同位置,合併成功;另乙個是伺服器端的修改正好和本地修改位於同乙個位置,發生衝突。

雙擊,下一步下一步安裝即可

svn帳戶配置

去除https

在瀏覽器訪問truck目錄

訪問路徑:

注意ip位址改成你本機的ip位址

安裝svn伺服器與svn客戶端

centos安裝svn centos安裝svn伺服器 yum install subversion 檢視安裝位置 which svn 檢視svn版本 windows安裝svn svn伺服器與svn客戶端最佳搭配是visualsvn server 服務端和 tortoisesvn客戶端搭配使用。安裝s...

SVN伺服器與客戶端安裝。

1.can t connect to host 由於目標機器積極拒絕,無法連線。2.no repository found in svn localhost svn repos 這兩個問題弄得我都快崩潰了!最後才發現,原來是svn的3690埠 未開啟。在命令列裡測試 telnet localhost...

oracle客戶端訪問伺服器端

1.客戶端工具 可以使用sqlplus,oacle sql developer,pl sql developer 最近專案用到了oracle,使用的是oracle10g,因為小組內有多人使用資料庫,並且oracle資料庫很佔內 存,就放在單獨的一台伺服器上,所以最好每個人都裝乙個oracle10g的...