日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux下搭建SVN服务器及自动更新项目文件到web发布目录(www)

發布時間:2024/1/17 linux 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux下搭建SVN服务器及自动更新项目文件到web发布目录(www) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、linux服務器端配置

1 2 3 4 5 6 7 8 9 [root@server?~]#?rpm?-qa?|?grep?sub subversion-libs-1.7.14-10.el7.x86_64 subversion-1.7.14-10.el7.x86_64 [root@server?~]#?ps?-ef?|?grep?svn root??????21019??20613??0?21:57?pts/0????00:00:00?grep?--color=auto?svn [root@server?~]#?mkdir?-p?/opt/svn/repo [root@server?~]#?svnserve?--version svnserve,?version?1.7.14?(r1542130) ???compiled?Nov?20?2015,?19:25:09
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 Copyright?(C)?2013?The?Apache?Software?Foundation. This?software?consists?of?contributions?made?by?many?people;?see?the?NOTICE file?for?more?information. Subversion?is?open?source?software,?see?http://subversion.apache.org/ The?following?repository?back-end?(FS)?modules?are?available: *?fs_base?:?Module?for?working?with?a?Berkeley?DB?repository. *?fs_fs?:?Module?for?working?with?a?plain?file?(FSFS)?repository. Cyrus?SASL?authentication?is?available. [root@server?~]#?svnadmin?create?/opt/svn/repo/ [root@server?~]#?cd?/opt/svn/repo/ [root@server?repo]#?pwd /opt/svn/repo [root@server?repo]#?ls conf??db??format??hooks??locks??README.txt [root@server?repo]#?cd?conf/ [root@server?conf]#?pwd /opt/svn/repo/conf [root@server?conf]#?ls authz??passwd??svnserve.conf [root@server?conf]#?vim?authz? 注:authz最后加上以下兩行(這兩行解決了?SVN客戶端解決authorization?failed問題) [/] *?=?rw [root@server?conf]#?vim?passwd? 注:passwd修改為: [users]?? admin?=?123456????//這里的username和password自己設置?? [root@server?conf]#?vim?svnserve.conf? 注:配置如下: anon-access?=?none????????????#匿名訪問的權限,可以是read,write,none,默認為read auth-access?=?write???????????#使授權用戶有寫權限 password-db?=?passwd??????????#密碼數據庫的路徑? authz-db?=?authz??????????????#訪問控制文件? realm?=?/opt/svn/repo?????????#認證命名空間,subversion會在認證提示里顯示,并且作為憑證緩存???????????????????????????????#的關鍵字 [root@server?conf]#?cd [root@server?~]#?svnserve?-d?-r?/opt/svn/ -d?表示后臺運行? -r?指定根目錄是?/opt/svn/ [root@server?~]#?ps?-ef?|?grep?svn root??????21122??????1??0?22:21??????????00:00:00?svnserve?-d?-r?/opt/svn/ root??????21124??20613??0?22:21?pts/0????00:00:00?grep?--color=auto?svn [root@server?~]#?netstat?-antlp?|?grep?svn tcp????????0??????0?0.0.0.0:3690????????????0.0.0.0:*???????????????LISTEN??????21122/svnserve



二、linux客戶端使用介紹

1、將文件checkout到本地目錄?

1 2 3 4 5 6 7 [root@server?home]#?cd [root@server?~]#?cd?/home/ [root@server?home]#?ls [root@server?home]#?svn?checkout?svn://127.0.0.1/repo????????????????#簡寫:svn?co? Checked?out?revision?0. [root@server?home]#?ls repo

2、往版本庫中添加新的文件?

1 2 3 4 5 6 7 [root@server?home]#?cd?repo/ [root@server?repo]#?ls [root@server?repo]#?touch?test.txt [root@server?repo]#?ls test.txt [root@server?repo]#?svn?add?test.txt????? A?????????test.txt

3、將改動的文件提交到版本庫?

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 svn?commit?-m?“LogMessage“?[-N]?[--no-unlock]?PATH(如果選擇了保持鎖,就使用–no-unlock開關)? [root@server?repo]#?svn?commit?-m?"add?testing"?test.txt???????????????#簡寫:svn?ci? Adding?????????test.txt Transmitting?file?data?. Committed?revision?1. [root@server?repo]#?ls test.txt [root@server?repo]#?vim?test.txt? [root@server?repo]#?cat?test.txt? testing testing testing testing testing testing testing testing [root@server?repo]#?svn?commit?-m?"add?testing?something"?test.txt? Sending????????test.txt Transmitting?file?data?. Committed?revision?2.

4、刪除文件?

svn delete path -m “delete test fle“?

例如:第一步:svn delete svn://192.168.10.151/pro/domain/test.php -m “delete test file”

第二步:svn commit

第三步:svn update ??

或者直接svn delete test.php 然后再svn ci -m ‘delete test file‘,推薦使用這種?

簡寫:svn (del, remove, rm)?

5、更新到某個版本?

svn update -r m path?

例如:?

svn update如果后面沒有目錄,默認將當前目錄以及子目錄下的所有文件都更新到最新版本。?

svn update -r 200 test.php(將版本庫中的文件test.php還原到版本200)?

svn update test.php(更新,于版本庫同步。如果在提交的時候提示過期的話,是因為沖突,需要先update,修改文件,然后清除svn resolved,最后再提交commit)?

簡寫:svn up?

6、恢復本地修改?

svn revert: 恢復原始未改變的工作副本文件 (恢復大部份的本地修改)。revert:?

用法: revert PATH…?

注意: 本子命令不會存取網絡,并且會解除沖突的狀況。但是它不會恢復?

被刪除的目錄?

7、解決沖突?

svn resolved: 移除工作副本的目錄或文件的“沖突”狀態。?

用法: resolved PATH…?

注意: 本子命令不會依語法來解決沖突或是移除沖突標記;它只是移除沖突的?

相關文件,然后讓 PATH 可以再次提交。?


8、加鎖/解鎖?

svn lock -m “LockMessage“ [--force] PATH?

例如:svn lock -m “lock test file“ test.php?

svn unlock PATH?

9、查看文件或者目錄狀態?

1)svn status path(目錄下的文件和子目錄的狀態,正常狀態不顯示)?

【?:不在svn的控制中;M:內容被修改;C:發生沖突;A:預定加入到版本庫;K:被鎖定】?

2)svn status -v path(顯示文件和子目錄狀態)?

第一列保持相同,第二列顯示工作版本號,第三和第四列顯示最后一次修改的版本號和修改人。?

注:svn status、svn diff和 svn revert這三條命令在沒有網絡的情況下也可以執行的,原因是svn在本地的.svn中保留了本地版本的原始拷貝。?

簡寫:svn st?

10、查看日志?

svn log path?

例如:svn log test.php 顯示這個文件的所有修改記錄,及其版本號的變化?

11、查看文件詳細信息?

svn info path?

例如:svn info test.php?

12、比較差異?

svn diff path(將修改的文件與基礎版本比較)?

例如:svn diff test.php?

svn diff -r m:n path(對版本m和版本n比較差異)?

例如:svn diff -r 200:201 test.php?

簡寫:svn di?

13、將兩個版本之間的差異合并到當前文件?

svn merge -r m:n path?

例如:svn merge -r 200:205 test.php(將版本200與205之間的差異合并到當前文件,但是一般都會產生沖突,需要處理一下)?

14、SVN 幫助?

svn help?

svn help ci?


三、自動更新項目文件到web發布目錄(www)

1、檢出(checkout)到本地目錄是/home/repo

1 2 3 4 5 6 7 8 9 10 11 [root@server?repo]#?ls index.php??test.txt [root@server?repo]#?cd?.. [root@server?home]#?ls repo [root@server?home]#?mv?repo/?www/?????#將檢出到本地的版本目錄更名為web發布目錄 [root@server?home]#?ls www [root@server?home]#?cd?www/ [root@server?www]#?ls index.php??test.txt

2、通過腳本文件實現自動更新

使用SVN中post-commit實現自動實時從svn中檢出文件并同步到Web站點根目錄

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 [root@server?~]#?cd?/opt/svn/repo/ [root@server?repo]#?ls conf??db??format??hooks??locks??README.txt [root@server?repo]#?cd?hooks/ [root@server?hooks]#?pwd /opt/svn/repo/hooks [root@server?hooks]#?ls post-commit.tmpl??????????post-unlock.tmpl??pre-revprop-change.tmpl post-lock.tmpl????????????pre-commit.tmpl???pre-unlock.tmpl post-revprop-change.tmpl??pre-lock.tmpl?????start-commit.tmpl [root@server?hooks]#?cp?post-commit.tmpl?post-commit [root@server?hooks]#?ls post-commit???????post-revprop-change.tmpl??pre-lock.tmpl????????????start-commit.tmpl post-commit.tmpl??post-unlock.tmpl??????????pre-revprop-change.tmpl post-lock.tmpl????pre-commit.tmpl???????????pre-unlock.tmpl [root@server?hooks]#?cp?post-commit.tmpl?post-commit [root@server?hooks]#?vim?post-commit [root@server?hooks]#?>?post-commit [root@server?hooks]#?vim?post-commit

******************************************************************************************

1 2 3 4 5 6 7 8 輸入: #!/bin/sh export?LC_CTYPE="zh_CN.UTF-8" SVN=/usr/bin/svn WEB_PATH=/home/www?#要強制更新的目錄 SVN_USER=admin SVN_PASS=123456 $SVN?update?$WEB_PATH?--username?$SVN_USER?--password?$SVN_PASS????????????#執行更新

******************************************************************************************

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 [root@server?hooks]#?ll?post-commit -rw-r--r--.?1?root?root?220?Apr?13?00:21?post-commit [root@server?hooks]#?chmod?a+x?post-commit??#給予執行權限 [root@server?hooks]#?ll?post-commit -rwxr-xr-x.?1?root?root?220?Apr?13?00:21?post-commit [root@server?hooks]#?cat?post-commit #!/bin/sh export?LC_CTYPE="zh_CN.UTF-8" SVN=/usr/bin/svn WEB_PATH=/home/www?#要強制更新的目錄 SVN_USER=admin SVN_PASS=123456 $SVN?update?$WEB_PATH?--username?$SVN_USER?--password?$SVN_PASS????????????#執行更新 [root@server?hooks]#?pwd /opt/svn/repo/hooks

注:文件/opt/svn/repo/hooks(俗稱鉤子)/post-commit屬于自動執行。





? ? ? 本文轉自MQ_douer 51CTO博客,原文鏈接:http://blog.51cto.com/douer/1915293,如需轉載請自行聯系原作者




總結

以上是生活随笔為你收集整理的Linux下搭建SVN服务器及自动更新项目文件到web发布目录(www)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。