①首先進入自己的工作目錄,例如: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 tomerpd:\devworkspace\svnspace>svn checkout svn://localhost/erp tomerpa tomerp\test.txt
取出版本 1。
a tomerp\test.txt
取出版本 1。
②回到myerp目錄,對test.txt檔案修改後提交。
③進入tomerp目錄
④執行svn update命令
d:\devworkspace\svnspace\tomerp>svn update這樣我們就可以在tomerp目錄下看到myerp目錄下提交的修改。正在公升級 '.':
u test.txt
更新到版本 2。
⑤思考:更新和檢出的相同點和不同點分別是什麼?
檢出更新
相同點不同點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的...