日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

部署和使用SVN

更新時(shí)間:
一鍵部署
我的部署

Subversion(簡(jiǎn)稱(chēng)SVN)是一個(gè)開(kāi)源的版本控制系統(tǒng),通過(guò)分支管理系統(tǒng),可以高效管理隨時(shí)間改變的數(shù)據(jù)。本文介紹如何基于ECS部署和使用SVN。

準(zhǔn)備工作

創(chuàng)建用于部署SVN的ECS實(shí)例,具體操作,請(qǐng)參見(jiàn)自定義購(gòu)買(mǎi)實(shí)例

該實(shí)例必須滿(mǎn)足以下條件:

  • 實(shí)例已分配公網(wǎng)IP地址或綁定彈性公網(wǎng)IP(EIP)。具體操作,請(qǐng)參見(jiàn)綁定EIP

  • 操作系統(tǒng):Alibaba Cloud Linux 3、Alibaba Cloud Linux 2、CentOS 7.x。

  • 實(shí)例規(guī)格:部署SVN服務(wù)所需的實(shí)例規(guī)格與項(xiàng)目規(guī)格和團(tuán)隊(duì)規(guī)模有關(guān),建議您使用4 vCPU、4 GiB以上的實(shí)例規(guī)格。

  • 實(shí)例安全組的入方向規(guī)則已放行22、80、443端口。具體操作,請(qǐng)參見(jiàn)添加安全組規(guī)則

    說(shuō)明

    svnserve模式還需要放行3690端口。

部署SVN

SVN有HTTP和svnserve兩種訪(fǎng)問(wèn)模式,兩種模式主要有以下區(qū)別。您可以根據(jù)業(yè)務(wù)需要,選擇以下其中一種部署方式。

功能

HTTP模式

svnserve模式

協(xié)議

使用HTTP協(xié)議進(jìn)行通信。

使用自定義的SVN協(xié)議進(jìn)行通信。

訪(fǎng)問(wèn)方式

支持通過(guò)Web瀏覽器或者SVN客戶(hù)端進(jìn)行訪(fǎng)問(wèn)。

僅支持通過(guò)SVN客戶(hù)端進(jìn)行訪(fǎng)問(wèn)。

端口

使用80端口進(jìn)行通信。

使用3690端口進(jìn)行通信。

安全性

通過(guò)HTTPS進(jìn)行加密通信。

默認(rèn)使用明文通信,可以通過(guò)啟用加密選項(xiàng)進(jìn)行加密通信。

配置

需要在Web服務(wù)器上進(jìn)行配置。

需要在SVN服務(wù)器上進(jìn)行配置。

功能支持

支持更多的功能,比如權(quán)限管理、日志查看等。

相對(duì)簡(jiǎn)單,功能較少。

部署HTTP訪(fǎng)問(wèn)SVN

步驟一:安裝SVN

  1. 遠(yuǎn)程連接安裝SVN的Linux實(shí)例。

    具體操作,請(qǐng)參見(jiàn)通過(guò)密碼或密鑰認(rèn)證登錄Linux實(shí)例

  2. 運(yùn)行以下命令,安裝SVN。

    sudo yum install -y subversion
  3. 運(yùn)行以下命令,查看SVN版本。

    svnserve --version

    當(dāng)回顯類(lèi)似如下所示時(shí),說(shuō)明SVN已安裝。

    查看SVN版本

步驟二:安裝Apache

  1. 運(yùn)行以下命令,安裝httpd。

    sudo yum install httpd -y
  2. 運(yùn)行以下命令,查看httpd版本。

    httpd -version

    返回下圖所示信息時(shí),表示httpd服務(wù)已安裝。

    image.png

步驟三:安裝mod_dav_svn

mod_dav_svn是一個(gè)Apache HTTP服務(wù)器的模塊,用于提供SVN(Subversion)版本控制系統(tǒng)的Web訪(fǎng)問(wèn)功能。

運(yùn)行以下命令,安裝mod_dav_svn。

sudo yum install mod_dav_svn -y

步驟四:配置SVN

  1. 依次運(yùn)行以下命令,創(chuàng)建SVN版本庫(kù)。

    sudo mkdir /var/svn
    cd /var/svn
    sudo svnadmin create /var/svn/svnrepos
  2. 運(yùn)行以下命令,將SVN倉(cāng)庫(kù)的用戶(hù)組修改為apache。

    sudo chown -R apache:apache /var/svn/svnrepos
  3. 依次運(yùn)行以下命令,查看自動(dòng)生成的版本庫(kù)文件。

    cd svnrepos
    ls

    查看版本庫(kù)文件

    Subversion目錄說(shuō)明如下表:

    目錄

    說(shuō)明

    db

    存放所有的版本控制數(shù)據(jù)文件。

    hooks

    放置hook腳本文件。

    locks

    用來(lái)追蹤存取文件庫(kù)的客戶(hù)端。

    format

    一個(gè)文本文件,文件中只包含一個(gè)整數(shù),表示當(dāng)前文件庫(kù)配置的版本號(hào)。

    conf

    SVN版本庫(kù)的配置文件(版本庫(kù)的訪(fǎng)問(wèn)賬號(hào)、權(quán)限等)。

  4. 運(yùn)行以下命令,增加SVN版本庫(kù)的用戶(hù)和密碼。

    SVN默認(rèn)使用明文密碼,而HTTP并不支持明文密碼,所以需要單獨(dú)生成passwd文件。本示例中,增加用戶(hù)userTest,密碼設(shè)置為passWDTest。請(qǐng)根據(jù)實(shí)際情況選擇并運(yùn)行以下命令:

    • 如果您第一次增加用戶(hù),運(yùn)行命令時(shí)需要帶上參數(shù)-c生成文件。

      sudo htpasswd -c /var/svn/svnrepos/conf/passwd userTest
    • 如果您已經(jīng)增加過(guò)用戶(hù),當(dāng)后續(xù)還需要增加用戶(hù)時(shí),請(qǐng)運(yùn)行以下命令。

      sudo htpasswd /var/svn/svnrepos/conf/passwd userTest

    根據(jù)提示設(shè)置用戶(hù)的密碼。

  5. 運(yùn)行以下命令,進(jìn)入conf目錄下。

    cd /var/svn/svnrepos/conf/
  6. 設(shè)置賬號(hào)的讀寫(xiě)權(quán)限。

    1. 運(yùn)行以下命令,打開(kāi)權(quán)限控制文件。

      sudo vim authz
    2. i鍵進(jìn)入編輯模式。

    3. 移動(dòng)光標(biāo)至文件末尾,并添加如下代碼(其中,userTest表示賬號(hào),r表示讀權(quán)限,w表示寫(xiě)權(quán)限)。

      [/]
      userTest=rw

      svn-4

    4. Esc鍵后,輸入:wq保存并退出文件。

  7. 修改SVN服務(wù)配置。

    1. 運(yùn)行以下命令,打開(kāi)SVN服務(wù)配置文件。

      sudo vim svnserve.conf
    2. i鍵進(jìn)入編輯模式。

    3. 移動(dòng)光標(biāo)找到如下配置行,刪除行前面的注釋符#和空格。

      說(shuō)明

      每行不能以空格開(kāi)始,且等號(hào)兩端要有一個(gè)空格。

      anon-access = read
      auth-access = write
      password-db = passwd
      authz-db = authz
      realm = /var/svn/svnrepos

      image

    4. Esc鍵后,輸入:wq保存并退出文件。

  8. 運(yùn)行以下命令,啟動(dòng)SVN版本庫(kù)。

    本文示例中,啟動(dòng)命令直接指定到版本庫(kù)。

    sudo svnserve -d -r /var/svn/svnrepos/
    說(shuō)明

    運(yùn)行killall svnserve命令可停止SVN服務(wù)。

  9. 運(yùn)行命令,查看SVN服務(wù)是否開(kāi)啟。

    ps -ef |grep svn

    返回下圖所示信息時(shí),表示SVN服務(wù)已經(jīng)開(kāi)啟。查看SVN服務(wù)狀態(tài)

步驟五:配置Apache

  1. 運(yùn)行以下命令,新增并編輯httpd配置文件。

    sudo vim /etc/httpd/conf.d/subversion.conf
  2. i鍵進(jìn)入編輯模式。

  3. subversion.conf文件中輸入以下配置信息。

    <Location /svn>
    DAV svn
    SVNParentPath /var/svn
    AuthType Basic
    AuthName "Authorization SVN"
    AuthzSVNAccessFile /var/svn/svnrepos/conf/authz
    AuthUserFile /var/svn/svnrepos/conf/passwd
    Require valid-user
    </Location>
  4. Esc鍵后,輸入:wq保存并退出文件。

  5. 運(yùn)行以下命令,啟動(dòng)Apache服務(wù)。

    sudo systemctl start httpd.service

部署svnserve訪(fǎng)問(wèn)SVN

步驟一:安裝SVN

  1. 遠(yuǎn)程連接安裝SVN的Linux實(shí)例。

    具體操作,請(qǐng)參見(jiàn)通過(guò)密碼或密鑰認(rèn)證登錄Linux實(shí)例

  2. 運(yùn)行以下命令,安裝SVN。

    sudo yum install -y subversion
  3. 運(yùn)行以下命令,查看SVN版本。

    svnserve --version

    當(dāng)回顯類(lèi)似如下所示時(shí),說(shuō)明SVN已安裝。

    查看SVN版本

步驟二:配置SVN

  1. 依次運(yùn)行以下命令,創(chuàng)建SVN版本庫(kù)。

    sudo mkdir /var/svn
    cd /var/svn
    sudo svnadmin create /var/svn/svnrepos
  2. 依次運(yùn)行以下命令,查看自動(dòng)生成的版本庫(kù)文件。

    cd svnrepos
    ls

    查看版本庫(kù)文件

    Subversion目錄說(shuō)明如下表:

    目錄

    說(shuō)明

    db

    存放所有的版本控制數(shù)據(jù)文件。

    hooks

    放置hook腳本文件。

    locks

    用來(lái)追蹤存取文件庫(kù)的客戶(hù)端。

    format

    一個(gè)文本文件,文件中只包含一個(gè)整數(shù),表示當(dāng)前文件庫(kù)配置的版本號(hào)。

    conf

    SVN版本庫(kù)的配置文件(版本庫(kù)的訪(fǎng)問(wèn)賬號(hào)、權(quán)限等)。

  3. 設(shè)置SVN版本庫(kù)的賬號(hào)和密碼。

    1. 運(yùn)行以下命令,打開(kāi)用戶(hù)配置文件。

      cd conf/
      sudo vim passwd
    2. i鍵進(jìn)入編輯模式。

    3. 移動(dòng)光標(biāo)至[users]下,添加用戶(hù)賬號(hào)和密碼。

      說(shuō)明

      添加賬號(hào)和密碼的格式為:賬號(hào) = 密碼。例如,userTest(賬號(hào)) = passWDTest(密碼),如下圖所示(注意等號(hào)兩端要有一個(gè)空格)。

      svn-3

    4. Esc鍵退出編輯模式,并輸入:wq保存并退出。

  4. 設(shè)置賬號(hào)的讀寫(xiě)權(quán)限。

    1. 運(yùn)行以下命令,打開(kāi)權(quán)限控制文件。

      sudo vim authz
    2. i鍵進(jìn)入編輯模式。

    3. 移動(dòng)光標(biāo)至文件末尾,并添加如下代碼(其中,userTest表示賬號(hào),r表示讀權(quán)限,w表示寫(xiě)權(quán)限)。

      [/]
      userTest=rw

      svn-4

    4. Esc鍵后,輸入:wq保存并退出文件。

  5. 修改SVN服務(wù)配置。

    1. 運(yùn)行以下命令,打開(kāi)SVN服務(wù)配置文件。

      sudo vim svnserve.conf
    2. i鍵進(jìn)入編輯模式。

    3. 移動(dòng)光標(biāo)找到如下配置行,刪除行前面的注釋符#和空格。

      說(shuō)明

      每行不能以空格開(kāi)始,且等號(hào)兩端要有一個(gè)空格。

      anon-access = read
      auth-access = write
      password-db = passwd
      authz-db = authz
      realm = /var/svn/svnrepos

      image

    4. Esc鍵后,輸入:wq保存并退出文件。

  6. 運(yùn)行以下命令,啟動(dòng)SVN版本庫(kù)。

    本文示例中,啟動(dòng)命令直接指定到版本庫(kù)。

    sudo svnserve -d -r /var/svn/svnrepos/
    說(shuō)明

    運(yùn)行killall svnserve命令可停止SVN服務(wù)。

  7. 運(yùn)行命令,查看SVN服務(wù)是否開(kāi)啟。

    ps -ef |grep svn

    返回下圖所示信息時(shí),表示SVN服務(wù)已經(jīng)開(kāi)啟。查看SVN服務(wù)狀態(tài)

使用SVN

使用SVN管理代碼的常見(jiàn)流程為:

  1. Checkout(您提取源代碼到本地)。

  2. 其他人修改并提交源代碼到Repository。

  3. Update(您獲得最新的代碼)。

  4. 您修改并調(diào)試成功源代碼。

  5. Commit(提交修改后的代碼到Repository,其他程序員即可看到您的修改)。

提取源代碼到本地(Checkout)

  1. 在本地Windows環(huán)境中下載并安裝TortoiseSVN客戶(hù)端

  2. 在本地項(xiàng)目文件夾內(nèi)的空白區(qū)域單擊鼠標(biāo)右鍵。

    本示例中,項(xiàng)目文件夾為C:\Test

  3. 在彈出菜單中,選擇SVN Checkout...

    snv-1

  4. 填寫(xiě)如下信息后,單擊OK

    • URL of repository:版本庫(kù)URL,源代碼統(tǒng)一存放的地址。

      • HTTP訪(fǎng)問(wèn)模式:URL格式為http://<ECS實(shí)例公網(wǎng)IP>/svn/<SVN版本庫(kù)名>

      • svnserve訪(fǎng)問(wèn)模式:URL格式為svn://實(shí)例公網(wǎng)IP地址/

        說(shuō)明

        當(dāng)在版本庫(kù)的上層目錄啟動(dòng)SVN服務(wù)時(shí),SVN檢出的URL要對(duì)應(yīng)加上版本庫(kù)的名稱(chēng)。

    • Checkout directory:檢出到本地的目錄,本文示例中,目錄為C:\Test

    svn-2

    說(shuō)明

    第一次登錄需要輸入賬號(hào)和密碼,即您在passwd文件中設(shè)置的用戶(hù)名和密碼。

    檢出完成示例如下。svn-5

獲取更新(Update

SVN服務(wù)端系統(tǒng)庫(kù)上的項(xiàng)目更新后,您可在本地項(xiàng)目文件空白處單擊右鍵,選擇SVN Update,即可自動(dòng)完成下載最新項(xiàng)目,并會(huì)顯示所有更新內(nèi)容。

image.png

說(shuō)明

在原項(xiàng)目文件夾內(nèi)選擇SVN更新,會(huì)自動(dòng)覆蓋原有內(nèi)容。建議您先備份,再更新,防止自己原有的項(xiàng)目?jī)?nèi)容丟失。

提交修改(Commit

完成以下操作,提交本地修改到服務(wù)端系統(tǒng)庫(kù)中。

  1. 在項(xiàng)目文件空白處單擊右鍵,選擇SVN Commit...

    image.png

  2. 輸入本次提交的版本更新信息(所做修改的注釋?zhuān)x中要提交的操作內(nèi)容,單擊OK

    即可將本地項(xiàng)目提交到SVN服務(wù)器資源庫(kù),覆蓋資源庫(kù)項(xiàng)目從而實(shí)現(xiàn)更新。

    image.png

    說(shuō)明
    • 如果發(fā)生提交沖突,即兩人都提交修改,后提交者由于版本落后會(huì)提交失敗。這時(shí),您可以先備份自己的項(xiàng)目,然后從服務(wù)端下載最新的項(xiàng)目,并將自己的項(xiàng)目覆蓋到本地項(xiàng)目文件夾,再單擊SVN提交即可成功提交。

    • 若您提交的項(xiàng)目中刪除了某個(gè)文件,則會(huì)顯示如下圖所示的信息。顯示刪除文件

還原文件

完成以下操作,還原SVN中被刪除的文件。

  1. 打開(kāi)本地項(xiàng)目文件夾,右鍵單擊選擇SVN Checkout...來(lái)檢出數(shù)據(jù)。

  2. 刪除其中一個(gè)文件。

  3. 根據(jù)您是否已提交修改選擇相應(yīng)的操作:

    • 未提交時(shí),右鍵單擊空白處,選擇TortoiseSVN > Revert...

      image.png

    • 已提交時(shí),服務(wù)端系統(tǒng)庫(kù)中數(shù)據(jù)已得到同步,系統(tǒng)也會(huì)將其保存的數(shù)據(jù)刪除。此時(shí),您需要采取以下方法還原數(shù)據(jù):

      1. 右鍵單擊空白處,選擇TortoiseSVN > Show log查看操作日志。

      2. 在日志中,單擊刪除的日志行,下方會(huì)顯示已刪除的數(shù)據(jù)。

        image.png

      3. 右鍵單擊已刪除的數(shù)據(jù),然后單擊Save revision to...

        image.png

      4. 在保存對(duì)話(huà)框,設(shè)置文件名,單擊保存(S),將已刪除的文件保存版本至刪除前的位置。image.png

  4. 打開(kāi)原文件夾,單擊SVN Commit...,即可同步文件和系統(tǒng)庫(kù)中的數(shù)據(jù)。

常見(jiàn)問(wèn)題

為什么使用TortoiseSVN訪(fǎng)問(wèn)SVN服務(wù)器時(shí)服務(wù)連接,提示“主機(jī)沒(méi)有反應(yīng)”?

image

出現(xiàn)“主機(jī)沒(méi)有反應(yīng)”可能有以下原因:

  • SVN服務(wù)器未啟動(dòng)

  • 安全組中未開(kāi)放SVN服務(wù)器所需端口

  • ECS實(shí)例開(kāi)啟了firewalld防火墻,但是未放行SVN服務(wù)器所需的端口

您可以按照以下步驟排查:

  1. 查看SVN服務(wù)狀態(tài)。

    ps -ef |grep svn

    返回下圖所示信息時(shí),表示SVN服務(wù)已經(jīng)開(kāi)啟。如果未返回以下信息,請(qǐng)執(zhí)行sudo svnserve -d -r /var/svn/svnrepos/啟動(dòng)SVN服務(wù)。查看SVN服務(wù)狀態(tài)

  2. 查看ECS實(shí)例所在安全組規(guī)則是否滿(mǎn)足SVN服務(wù)器要求。

    1. HTTP模式:開(kāi)放22、80、443

    2. svnserve模式:開(kāi)放22、80、443、3690

  3. 查看firewalld防火墻

    1. 查看firewalld防火墻狀態(tài)。

      sudo firewall-cmd --state 
      • 回顯信息為not running說(shuō)明firewalld防火墻未開(kāi)啟,對(duì)SVN服務(wù)器無(wú)影響。

      • 回顯信息為running說(shuō)明firewalld防火墻已開(kāi)啟,請(qǐng)繼續(xù)執(zhí)行下一步驟。

    2. 在firewalld規(guī)則中放行SVN服務(wù)器所需端口(例如3690)。

      sudo firewall-cmd --add-port=3690/tcp --per
    3. 重新加載firewalld服務(wù)配置,使配置生效。

      sudo systemctl reload firewalld