當前位置:首頁 » 操作系統 » subversion源碼安裝

subversion源碼安裝

發布時間: 2024-10-05 23:48:17

Ⅰ Windows系統搭建VisualSVN服務結合內網穿透實現公網訪問

SVN是subversion的縮寫,是一種開放源代碼的版本控制系統。它通過採用分支管理系統的高效管理,使多個人可以共同開發同一個項目,實現資源共享,最終實現集中式管理。作為一個通用的系統,Subversion可以用來管理任何類型的文件,包括程序源碼

SVN與CVS一樣,也是一個跨平台的軟體,支持大多數常見的操作系統。本文主要介紹SVN伺服器在Windows平台上的安裝和配置過程,以及如何結合cpolar內網穿透工具,實現隨時隨地公網遠程訪問內網本地服務。

1. VisualSVN安裝與配置
首先,到SVN的官方網站:visualsvn.com/downloads... 下載服務端安裝程序,下載好安裝程序後,雙擊進入安裝配置界面,點擊Next進行下一步。

接受勾選框打勾,點擊Next進入下一步,默認當前選擇,點擊Next進入下一步。

本界面中有四個選項,除了埠外的其他三個選項都可以點擊Browse進行路徑修改。Location:軟體的安裝位置,注意不要出現中文、空格或特殊字元。Repositories:默認版本倉庫位置,自己選擇。Server Port:埠號,443或者8443都可以。Backups:備份文件保存路徑。

我這里選擇了默認路徑與埠,點擊Next進入下一步,不打鉤,點擊Next進入下一步,默認第一個選項,點擊Next進入下一步。

點擊Install進行安裝,安裝進度條走完後,點擊Finish完成安裝。

2. VisualSVN Server管理界面配置
點擊Finish後,會彈出SVN Server的管理界面,點擊上方導航中的操作按鈕,點擊選項中的Properties。

在打開的窗口中,首先點擊左側的第三項:Network,然後點擊右側的Server name下方的選擇框,輸入伺服器名稱,這里我選擇填寫了localhost,也可以填寫本地區域網的ip。

服務埠默認選擇:80,然後把下方使用安全連接的勾選取消,點擊下方OK。

然後點擊左側SVN服務下方的Users,右鍵選擇新建user,在彈出的窗口中設置用戶名和密碼,並確認密碼,點擊OK。

創建好新用戶後,我們點擊左側SVN服務下方的Repositories,右鍵選擇新建Repository(項目),點擊Next進入下一步。

填寫項目名稱,這里我填寫了共享文件,大家可以自定義填寫,點擊Next進入下一步。

默認選擇即可,點擊Next進入下一步,默認選擇即可,點擊Next進入下一步。

打鉤選項默認即可,點擊Create開始創建,點擊Finish完成項目創建。

此時,在瀏覽器輸入localhost,在彈窗中輸入剛才在SVN服務時配置的用戶名admin和密碼123456,點擊登錄。

登錄後,即可在本地區域網看到剛才在SVN創建的項目:共享文件。

3. 安裝cpolar內網穿透
此時VisualSVN Server已經成功登錄並運行,不過只能在本地訪問,如果打算在公網環境隨時隨時訪問內網的VisualSVN服務,我們需要安裝cpolar內網穿透工具來實現。

3.1 注冊賬號
進入cpolar官網:cpolar.com/,點擊右上角的免費注冊,使用郵箱免費注冊一個cpolar賬號並登錄。

3.2 下載cpolar客戶端
登錄成功後,點擊下載cpolar到本地並安裝(一路默認安裝即可)本教程選擇下載Windows版本。

3.3 登錄cpolar web ui管理界面
在瀏覽器上訪問127.0.0.1:9200,使用所注冊的cpolar郵箱賬號登錄cpolar web ui管理界面(默認為本地9200埠)。

3.4 創建公網地址
登錄成功進入主界面後,我們點擊左側儀表盤的隧道管理——隧道列表,再點擊創建隧道。

點擊創建,此時,點擊左側狀態中的在線隧道列表,可以看到剛才創建的svn隧道,生成了兩個公網地址,有兩種訪問方式,分別是http和https,隨意復制一個地址,在公網電腦瀏覽器打開即可,如下圖所示即代表成功實現公網訪問本地內網的VisualSVN Server。

4. 固定公網地址訪問
需要注意的是,本次教程中使用的是免費cpolar所生成的公網隨機臨時地址,該地址24小時內會發生變化,對於需要長期在外網環境使用VisualSVN Server的用戶來講,配置一個固定地址就很有必要。

因此我們可以為其配置二級子域名,該地址為固定地址,不會隨機變化【ps:cpolar.cn已備案】。

注意需要將cpolar套餐升級至基礎套餐或以上,且每個套餐對應的帶寬不一樣【cpolar.cn已備案】。

登錄cpolar官網,點擊左側的預留,選擇保留二級子域名,設置一個二級子域名名稱,點擊保留,保留成功後復制保留的二級子域名名稱。

以本次教程為例,地區選擇China VIP,二級域名填寫mysvn,描述填寫svntest,點擊保留。

保留成功後復制保留的二級子域名地址,登錄cpolar web UI管理界面,點擊左側儀表盤的隧道管理——隧道列表,找到所要配置的隧道:mysvn,點擊右側的編輯。

修改隧道信息,將保留成功的二級子域名配置到隧道中。

點擊更新,更新完成後,打開在線隧道列表,此時可以看到公網地址已經發生變化,地址名稱也變成了保留和固定的二級子域名名稱。

最後,我們使用固定的公網地址進行連接訪問,復制二級子域名:mysvn.vip.cpolar.cn到另一台公網電腦瀏覽器打開,無報錯和連接異常,輸入用戶名密碼後,可以看到連接成功,這樣一個固定不變的地址訪問就設置好了,您可以隨時隨地使用該域名來公網訪問內網VisualSVN Server。

轉載自cpolar極點雲文章:Windows系統搭建VisualSVN服務結合內網穿透實現公網訪問

Ⅱ openwrt編譯環境出現這個是什麼意思

Openwrt 官方正式的發行版是已編譯好了的映像文件(後綴名bin或trx、trx2),此映像文件可從Openwrt官方網站的下載頁面中輕松獲取到,連接地址為 OpenWrt官方網站。這些編譯好的映像文件是基於默認的配置設置,且只針對受支持的平台或設備的。因此,為什麼要打造一個自己的映像文件,理由有以下四點:
您想擁有一個個性化的配置OpenWrt(彰顯個性,在朋友圈子裡顯擺顯擺,開個玩笑);
您想在實驗性的平台上測試OpenWrt;
您參與測試或參與開發OpenWrt的工作;
或者,最簡單的目的就是為了保持自己的Openwrt為最新版本;
若想實現上述目的,其實很簡單,按下述文字即可成功編譯出一個您的Openwrt來。
准備工作
在開始編譯Openwrt之前需要您做些准備工作;與其他編譯過程一樣,類似的編譯工具和編譯環境是必不可少的:
一個構建OpenWrt映像的系統平台,簡單說就是准備一個操作系統(比如Ubuntu、Debian等);
確保安裝了所需的依賴關系庫, (在debian系統中就是安裝各種需要的軟體包)
OpenWrt源代碼副 本
首先, 開機登陸到支持編譯Openwrt的操作系統(廢話了)。實體機或者虛擬機(Vmware 或者 Qemu)里的操作系統都行,這里推薦使用Linux系統。 bsd和mac osx系統也可以編,但不推薦,且未驗證是否可編譯成功。下文假定您使用的是Debian操作系統,使用 apt-get 來管理包. 替代的選擇是 Ubuntu (分支 Kubuntu, Xubuntu 等即可)。
第二步, 就是安裝所需要的各種軟體包, 包括編譯器,解壓工具,特定的庫等. 這些工作可以簡單的通過鍵入以下命令 (通常需要root 或者是 sudo 許可權),以root許可權安裝下列軟體包(可能並不完整,會有提示,提示缺少即裝就可以了):
32位(x86)請執行下列命令:
# apt-get install build-essential asciidoc binutils bzip2 gawk gettext \
git libncurses5-dev libz-dev patch unzip zlib1g-dev

64位(x86_64)請執行下列命令(多裝了哪些庫或軟體包呢?請您仔細看一看哦):
# apt-get install build-essential asciidoc binutils bzip2 gawk gettext \
git libncurses5-dev libz-dev patch unzip zlib1g-dev ia32-libs \
lib32gcc1 libc6-dev-i386

參考 本列表中 所列的編譯環境所需要軟體包或庫。
某些依賴的為庫或軟體包也許操作系統中已經安裝過,此時apt-get會作出提示(提示您忽略或重新安裝的),別緊張,放輕鬆些,編譯Openwrt不會像編譯DD-WRT那樣難的(至少本人是體會到了編譯DD-WRT的難)。
最後下載一份完整的 Openwrt 源碼到編譯環境中。關於Openwrt的源代碼下載,途徑有二,一是通過 svn ,一是通過 git,建議使用 svn ,因為Openwrt主要以 svn 來維護Openwrt系統的版本。另外,請注意Openwrt中不同的分支版本,一個是用得較多的開發快照,俗稱 trunk,二是穩定版,俗稱 backfire。
安裝Subversion
若你想通過svn下載源代碼,你需安裝 Subversion。Subversion,或稱SVN, 是OpenWrt的project中用來控製版本的系統,它非常類似的 CVS的界面和使用條款。 執行下述命令即可安裝SVN,很容易的:
# apt-get install subversion

Subversion安裝完畢,通過SVN命令可獲取得到一份OpenWrt純凈源代碼。您還得創建一個目錄以便存放獲取得到的Openwrt源代碼,要獲取源代碼你還得輸入subversion命令來獲取 (svn里這種操作稱之為'check out') 。命令很簡單的,繼續看下去就能見到了,別著急,耐心點兒。
編譯流程
編譯專屬於您的設備的特定Openwrt固件以一下五個步驟:
通過Subversion命令獲得源代碼;
更新(或安裝) package feeds〔package feeds無法確切翻譯,待譯吧);
創建一個默認配置以檢查編譯環境是否搭建好了 (假如需要的話);
用Menuconfig來配置即將編譯生成的固件映像文件的配置項;
最後開始編譯固件;
下載源代碼
最後,下載一份完整的OpenWrt源代碼。你可選擇:
下載穩定發行版,或
下載開發版 (俗稱"trunk"版)。
使用發行版的源碼
截止本文時, Openwrt公開發行的穩定版為 OpenWrt 10.03 "backfire"。此版本是最穩定的,但也許不包括最新更新的補丁或最新編寫的出的新功能。
下述代碼即舉例說明了通過svn從brandkfire獲得backfire源代碼(此版本意思是從trunk分支的補丁也在backfire版本中了,即包含修復補丁):
# mkdir OpenWrt/
# cd OpenWrt/
# svn co svn://svn.openwrt.org/openwrt/branches/backfire

註解: 上述svn命令將在當前目錄創建一個 OpenWrt/backfire/ 子目錄,此目錄包含此命令獲取到的源代碼。
您也可以通過下述命令,下載不含修復補丁的backfire的原版源碼:
# svn co svn://svn.openwrt.org/openwrt/tags/backfire_10.03
使用開發版源代碼
當前的開發版本分支(trunk)已包含最新的實驗補丁。此分支或許還突破了Openwrt原來所不支持的硬體設備的限制哦,驚喜的同時也有風險存在。因此,編譯trunk版,慎之~
# mkdir OpenWrt/
# cd OpenWrt/
# svn co svn://svn.openwrt.org/openwrt/trunk/

更多詳細資料詳見: dev.openwrt.org/wiki/GetSource.
跟進並更新源代碼
因Openwrt的源代碼隨時都會變動,故此命令將確保您所獲取得到的源碼的最新性。下述假設您用的是backfire版本的源碼:
## Here, backfire is the directory name of the current release branch you're tracking
# cd OpenWrt/backfire/
# svn up

'svn up' 命令用於更新SVN上更新了,但本地尚未更新的這部分源代碼(本人實踐證明此命令會將本地源碼與SVN上的源碼先比較,若SVN有更新才會下載更新的部分,很實用的一個命令)。如果未指定目標路徑,則此命令將更新當前目錄及當前目錄的子目錄內的源碼。
Feeds下載
Feeds即為包含到你的OpenWrt環境中的額外軟體包的索引之類的。(feed譯名很多,莫衷一是,至2008年底為止,還沒有一個十分通用而備受認可的中文譯名;所以此文當中我們用英文feed來稱呼)。 最主要的Feeds有以下三個:
'packages' - 路由的基本功能,
'LuCI' - OpenWrt默認的GUI(WEB管理界面), 及
'Xwrt' - 其他的GUI。
一般情況,你至少需要含 'packages' 和 'LuCI'兩個Feeds。
下載完feeds之後, (為編譯OpenWrt的recipies額外的預定義包) 您可以檢查哪些feeds要包括在內。編輯在你的編譯環境的根目錄下的'feeds.conf.default'文件。
然後使用下列命令開始下載(註:可能你需要先運行cd trunk進入trunk目錄才能成功執行下列命令):
# ./scripts/feeds update -a

在此之後,下載的軟體包需要安裝。亦即指的下邊的命令啦。若路過下邊的install命令則後續make menuconfig將無法成功執行!(註:可能你需要先運行cd trunk進入trunk目錄才能成功執行下列命令):
# ./scripts/feeds install -a

只需編輯Feeds的配置文件或運行更新命令,即可很方便地更新或添加新的實驗性的packages到源碼中並編譯到OpenWrt固件去。
注意:請老壇友及舊的新聞組成員們注意了,這一步取代了創建符號鏈接symlinks的老辦法哦。
更新Feeds
諸如此類源碼,你得定期更新Feeds。 通過如上相同的命令:
# ./scripts/feeds update -a
# ./scripts/feeds install -a

注意:若你清楚地知道你不需添加新的packages到menuconfig中去,那麼你可在更新Feeds時跳過這一步。
生成配置
You may not have to make configration always after updating sources and feeds, but making it ensures that all packages from source and feeds are correctly included in your build configuration.
Defconfig
下一步是檢查編譯環境,若可進行編譯則生成默認配置:
# make defconfig

若defconfig回顯提示缺少軟體包或編譯庫等依賴,則按提示安裝所缺軟體包或庫等即可,不難的,細心點就行。
Menuconfig
menuconfig是一個基於文本的工具,它處理選擇的目標(需要還是不需要)、編譯生成軟體包(openwrt下是IPKG格式)以及內核選項(編譯成模塊還是內核)等等
# make menuconfig

在你離開並保存配置文件(默認都是.config)後,將自動配置依賴關系,讓你可以著手編譯更新的固件。
大眾可通過'menuconfig'這一簡單的圖形化的配置環境,非常輕松地編譯出專屬您本人的OpenWrt固件。
可以用'menuconfig',以開發的意圖來編譯OpenWrt的固件,為自己(個人)創造一個結構簡單但是功能強大的環境。(上句實在難翻譯,只能意譯。並且也請大家都學習下編譯OP固件,讓以OP固件盈利的人丟掉那骯臟的飯碗!)
Menuconfig或多或少有些難以說明的地方,即使是最專業的配置,也可以尋求幫助並加以解決。 需要你指定何種目標平台,要包含的package軟體包和內核模塊等均需要你指定,配置標準的過程中會包括修改:
目標平台(即路由器何種架構,BCM呢還是AR均可選擇)
選擇要包含的package軟體包
構建系統設置
內核模塊
Target system is selected from the extensive list of supported platforms, with the numerous target profiles – ranging from specific devices to generic profiles, all depending on the particular device at hand. Package selection has the option of either 'selecting all package', which might be un-practical in certain situation, or relying on the default set of packages will be adequate or make an indivial selection. It is here needed to mention that some package combinations might break the build process, so it can take some experimentation before the expected result is reached. Added to this, the OpenWrt developers are themselves only maintaining a smaller set of packages – which includes all default packages – but, the feeds-script makes it very simple to handle a locally maintained set of packages and integrate them in the build-process.
假如你需要LuCI, 要到Administration 菜單里,在LuCI組件的子菜單下, 並選擇: luci-admin-core, luci-admin-full, and luci-admin-mini組件包。
假如你不需要PPP,你可到Network菜單下取消對它的選擇,以便編譯時不包含此組件。
Menuconfig用法: 確保這些組件包是以 '*'星號標記而不是 'M'標記。
如果你是以星號 '*'標記該組件包, 則該組件包將編譯進最終生成的OpenWrt固件中。
如果你僅以 'M'標記該組件包, 則該組件包將不會編譯進最終生成的OpenWrt固件中。
The final step before the process of compiling the intended image(s) is to exit 'menuconfig' – this also includes the option to save a specific configuration or load an already existing, and pre-configured, version.
Exit and save.
Source Mirrors
The 'Build system settings' include some efficient options for changing package locations which makes it easy to handle a local package set:
Local mirror for source packages
Download folder
In the case of the first option, you simply enter a full URL to the web or ftp server on which the package sources are hosted. Download folder would in the same way be the path to a local folder on the build system (or network). If you have a web/ftp-server hosting the tarballs, the OpenWrt build system will try this one before trying to download from the location(s) mentioned in the Makefiles . Similar if a local 'download folder', residing on the build system, has been specified. The 'Kernel moles' option is required if you need specific (non-standard) drivers and so forth – this would typically be things like moles for USB or particular network interface drivers etc.
編譯固件
萬事具備,只欠東風,通過下面簡單的make命令來編譯:
# make

在多核電腦中編譯
具有多核CPU處理器的電腦進行編譯,使用下述參數可令編譯過程加速。 常規用法為 <您cpu處理器的數目 + 1> – 例如使用3進程來編譯 (即雙核CPU), 命令及參數如下:
# make -j 3

後台編譯
若你在這個系統內編譯OpenWrt的同時還處理其他,可以讓閑置的I/O及CPU來在後台編譯固件 (雙核CPU):
# ionice -c 3 nice -n 20 make -j 2

編譯簡單的基本的軟體包
當你為OpenWrt開發或打包軟體包,編譯簡單的基本的軟體包可以很輕易地編譯該軟體包 (例如, 軟體包cups):
# make package/cups/compile V=99

一個在Feeds里的軟體包大約是這樣子的:
# make package/feeds/packages/ndyndns/compile V=99

編譯錯誤
如果因某種不知道的原因而編譯失敗,下面有種簡單的方法來得知編譯到底錯在哪裡了:
# make V=99 2>&1 |tee build.log |grep -i error

上述編譯命令意為:V99參數,將出錯信息保存在build.log,生成輸出完整詳細的副本(with stdout piped to stderr),只有在屏幕上顯示的錯誤。
舉例說明:
# ionice -c 3 nice -n 20 make -j 2 V=99 CONFIG_DEBUG_SECTION_MISMATCH=y 2>&1 \
|tee build.log |egrep -i '(warn|error)'

The above saves a full verbose of the build output (with stdout piped to stderr) in build.log and outputs only warnings and errors while building using only background resources on a al core CPU.
一鍵編譯
即使用腳本來編譯Openwrt固件。許多朋友編譯Openwrt是用的腳本來編譯的,詳見: forum.openwrt.org/viewtopic.php?id=28267
生成的固件在哪
編譯成功後所生成的固件文件位於bin目錄下,可用如下命令查看:
# cd bin/
# ls */

清理
編譯OpneWrt時你可能需要一個清潔干凈的編譯環境。 以下操作有利用編譯工作:
清潔
清潔trunk/ 目錄,在編譯過程中使用「make clean」命令即可。 此命令將刪除bin目錄和build_dir目錄下的所有文件及文件夾
## See CAUTION below
# make clean

Ⅲ 怎樣在windows上設置svn伺服器

工具/原料
操作系統:Windows2003,32位
SVN Server版本:svn-win32-1.6.16
SVN Client版本:TortoiseSVN-1.6.16.21511
方法/步驟
一、准備工作
1、SVN伺服器:解壓縮包,可以從官方網站下載最新版本。
2、SVN客戶端:TortoiseSVN,即常說的小烏龜,是一個客戶端程序,用來與伺服器端通訊。
二、安裝伺服器和客戶端程序
1、SVN伺服器:直接解壓縮到某個文件夾下即可。示例路徑:c:\svn\
備註:如果下載的是msi程序,直接運行按提示安裝即可。
2、SVN客戶端:直接運行按提示安裝即可。示例路徑:C:\Program Files\Subversion
三、建立版本庫(Repository):示例路徑:e:\svnroot。建立版本庫有兩種方法:
方法一,建立空目錄e:\svnroot\repos1,進入repos1文件夾,在空白處點擊右鍵,選擇「TortoiseSVN->Create Repositoryhere...」,
方法二,建立空目錄e:\svnroot\repos2,進入DOS命令行,輸入如下命令:
svnadmincreate e:\svnroot\repos2

四、運行SVN伺服器,啟動服務。啟動服務有兩種方法:
方法一,臨時啟動服務,在DOS下輸入如下命令:
svnserve -d -r e:\svnroot\repos1 --listen-host ip地址 --listen-port=埠號
說明:「listen-host」和「listen-port」可選。默認埠是3690,如果埠已經被佔用,可以通過選項listen-port指定埠號。
注意:請不要關閉命令行窗口,關閉窗口會把 svn服務就停止了。
方法二,啟動SVN服務為後台運行程序:
sc create svnserve binPath= "c:\svn\bin\svnserve.exe --service -r e:\svnroot\repos1" displayname= "Subversion" depend=Tcpip start= auto
說明一:
(1)sc是windows自帶的服務配置程序。svnserve是服務的名稱,可根據需求取名。
(2)參數binPath表示svnserve可執行文件的安裝路徑。
(3)--service表示以windows服務的形式運行,--r指明svnrepository的位置,service參數與r參數都作為binPath的一部分,因此與svnserve.exe的路徑一起被包含在一對雙引號當中。
(4)displayname表示在windows服務列表中顯示的名字,depend=Tcpip表示svnserve服務的運行需要tcpip服務,start=auto表示開機後自動運行。安裝服務後,svnserve要等下次開機時才會自動運行。
說明二:
(1)binPath的等號前面無空格,等號後面有空格。displayname、depend、start也一樣,service前面是--,不是- ,而r前面是-。
(2)若要卸載svn服務,則執行 sc delete svnserve 即可。
(3)從「sc」到「auto」是在同一個命令sc,必須寫在同一行。
(4)啟動服務命令:netstart svnserve,停止服務命令:net start svnserve,也可以進入Windows提供的界面操作SVNService服務了,即控制面板—>服務。
(5)如果路徑中包括空格,一定要用「\」處理「"」號,例如上面的例子中如果svnserve.exe在「c:\programfiles\svn\」中,則命令應該寫為「binpath="\"c:\programfiles\svn\bin\svnserve.exe\"

五、配置用戶和許可權
(1)修改svnserve.conf,在e:\svn\repos1\conf目錄下,用文本編輯器打開svnserve.conf:
將:
# anon-access = read
# auth-access = write
# password-db = passwd
改為
anon-access = read
auth-access = write
password-db = passwd
注意說明:
anon-access等列前面是沒有空格的。
anon-access = read表示沒通過用戶名密碼登錄的訪問只有讀的許可權,如果改為none則沒有用戶名密碼不能訪問
auth-access = write表示通過用戶名密碼登錄的有寫的許可權(當然讀的許可權也就有了)
password-db = passwd表示可以通過 用戶名 = 密碼 的方式在passwd文件中添加用戶
(2)修改同目錄的passwd文件,增加用戶帳號:
將:
[users]
# harry = harryssecret
# sally = sallyssecret
添加帳號:
[users]
# harry = harryssecret
# sally = sallyssecret
admin = admin
添加一個admin賬戶,密碼是admin。
六、初始化SVN,導入數據
選中要上傳SVN的文件夾,「右鍵 ->TortoiseSVN -> Import...」 ,在彈出對話框的「URL of repository」輸入「svn://localhost/project1/」。在「Importmessage」輸入注釋,點擊OK,要求輸入帳號,輸入賬戶admin和密碼admin。
七,測試SVN
本地測試:新建一空文件夾test1,單擊右鍵,選擇「SVN Checkout」,在「URL of repository」中輸入「svn://localhost/project1」。
其他機器測試:如果運行svnserve的主機IP地址是1.2.3.4,則URL輸入的內容就是「svn://1.2.3.4/project1」。

Linux SVN 伺服器配置以及客戶端使用
2010-09-23 11:32:07
標簽:Linux 伺服器 SVN 休閑 客戶端
SVN簡介
SVN是一種版本管理系統,前身是CVS,是開源軟體的基石。即使在溝通充分的情況下,多人維護同一份源代碼的一定也會出現混亂的情況,版本管理系統就是為了解決這些問題。
SVN中的一些概念 :
a. repository(源代碼庫)
源代碼統一存放的地方
b. Checkout (提取)
當你手上沒有源代碼的時候,你需要從repository checkout一份
c. Commit (提交)
當你已經修改了代碼,你就需要Commit到repository
d. Update (更新)
當你已經Checkout了一份源代碼, Update一下你就可以和Repository上的源代碼同步,你手上的代碼就會有最新的變更

日常開發過程其實就是這樣的(假設你已經Checkout並且已經工作了幾天):Update(獲得最新的代碼) -->作出自己的修改並調試成功 --> Commit(大家就可以看到你的修改了)
如果兩個程序員同時修改了同一個文件呢?SVN可以Merge這兩個程序員的改動,對,合並,實際上SVN管理源代碼是 以行為單位的,就是說兩個程序員只要不是修改了同一行程序,SVN都會自動合並兩種修改。如果是同一行呢,SVN會提示文件Confict, 沖突,需要手動確認。
TortoiseSVN簡介

TortoiseSVN 是 Subversion 版本控制系統的一個免費開源客戶端,可以超越時間的管理文件和目錄。文件保存在中央版本庫,除了能記住文件和目錄的每次修改以外,版本庫非常像普通的文件 伺服器。你可以將文件恢復到過去的版本,並且可以通過檢查歷史知道數據做了哪些修改,誰做的修改。這就是為什麼許多人將 Subversion 和版本控制系統看作一種「時間機器」。

SVN的配置

1,配置好yum,檢查subversion安裝包
[root@svn ~]# yum list |grep subversion
subversion.i386 1.4.2-4.el5_3.1 base
subversion-devel.i386 1.4.2-4.el5_3.1 base
subversion-javahl.i386 1.4.2-4.el5_3.1 base
subversion-perl.i386 1.4.2-4.el5_3.1 base
subversion-ruby.i386 1.4.2-4.el5_3.1 base
[root@svn ~]# yum -y install subversion
測試安裝是否成功:
#svnserve --version 回車顯示版本說明安裝成功
[root@svn ~]# netstat –nat 查看默認TCP 3690埠是否監聽.

2,創建svn版本庫
[root@svn /]# mkdir -p /data/svndata
[root@svn /]# svnadmin create /data/svndata/winne winne為版本庫名稱

3,svnserve配置文件概述
svnserve.conf -- svn服務配置文件,該文件版本庫目錄的conf目錄下。
passwd -- 用戶名口令文件,該文件名在文件svnserve.conf中指定,預設為同目錄下的。
authz -- 許可權配置文件,該文件名也在文件svnserve.conf中指定,預設為同目錄下的。

conf/svnserve.conf 文件

配置項分為以下5項:
anon-access 控制非鑒權用戶訪問版本庫的許可權。
auth-access 控制鑒權用戶訪問版本庫的許可權。
password-db 指定用戶名口令文件名。
authz-db 指定許可權配置文件名,通過該文件可以實現以路徑為基礎的訪問控制。
realm 指定版本庫的認證域,即在登錄時提示的認證域名稱。若兩個版本庫的
認證域相同,建議使用相同的用戶名口令數據文件

注:1.4版本anon-access = read 參數的bug .
anon-access = read時
客戶端Checkout(提取)的時候會有Not authorized to open root of edit operation"錯誤,改為none參數正常,
conf /Passwd 文件
user1 = user1
user2 = user2

conf /authz 文件
[groups] 設置組
admin = user1
[/] 根目錄許可權設置(就是「svndata」這個文件夾)
user1 = rw 用戶1許可權是:可讀寫
user2 = r 用戶2許可權是:可讀,不可寫
@admin = rw 設置組許可權
[svndata:/winne] 設置根目錄下「winne」文件夾的許可權
user1 = rw
user2 = r
…以此類推

4,啟動和停止SVN服務
啟動SVN服務:
[root@svn ~]# svnserve -d -r /data/svndata/
-d表示後台運行
-r 指定根目錄是 /data/svndata/
停止SVN服務:
ps -aux |grep svn
kill -9 進程殺掉

客戶端使用
Windows客戶端TortoiseSVN的使用
1, TortoiseSVN 客戶端的安裝

測試選擇的是TortoiseSVN 1.6.5客戶端 付中文漢化包.

2,客戶端的文件更新至伺服器(user1操作)
新建一個空目錄,右鍵Checkout (提取)
svn://192.168.103.26/winne
輸入passwd文件中的授權用戶帳號就可以了

在目錄中加入一些文件測試. 然後在空白地方右鍵點TortoiseSVN-> ADD 添加列表到伺服器端.此時並沒有真正拷貝到伺服器上,需再在Commit(提交)操作才會拷貝

在版本庫瀏覽器中就可以看到剛才提交的文件了,此時提交的版本為1.

3,客戶端在伺服器上拉讀取數據(user2操作)
User2 在機器上新建一個空目錄user2 , 右鍵Checkout (提取)
填入地址: svn://192.168.103.26/winne 輸出至G:\user2 確定
增加一個new.txt的文件,然後Commit (提交)之後提示許可權出錯,user2沒有寫的許可權,換成user1 的身份才可以提交成功.

Linux客戶端的使用
客戶端操作流程一般是:
用戶A: checkout (提取) -> add (添加新文件) -> commit (提交)
用戶B: SVN log(查看更新) -> update(更新版本)
1,SVN的安裝
yun –y install subversion
2,Linux svn的常用命令
()內為命令簡寫.
checkout (co) 提取
commit (ci) 提交
update (up) 更新
list (ls) 列表

3, checkout (co) 提取 svn伺服器上的文件
(user1)操作流程
[root@TEST ~]# svn co svn://192.168.103.26/winne
Authentication realm: <svn://192.168.103.26:3690> My First Repository
Password for 'root':

Authentication realm: <svn://192.168.103.26:3690> My First Repository
Username: user1 /輸入用戶名
Password for 'user1': /輸入密碼
A winne/Cosmic Ride - BeFour.lrc
A winne/20070716171657126.pdf
A winne/svnbook.pdf
revision 1. / checkout (co) 提取成功,看到Checked out版本為1
注:可以使用帶用戶名和密碼的訪問:
svn co --username user1 --password user1 svn://192.168.103.26/winne
[root@TEST ~]# ll
drwxr-xr-x 3 root root 4096 Sep 23 09:02 winne /winne目錄是SVN自動生成的
drwxr-xr-x 2 root root 4096 Jul 30 02:06 tasks
[root@TEST ~]# cd winne
[root@TEST winne]# ll
total 2868
-rw-r--r-- 1 root root 1566968 Sep 23 08:53 20070716171657126.pdf
-rw-r--r-- 1 root root 2397 Sep 23 08:53 Cosmic Ride - BeFour.lrc
-rw-r--r-- 1 root root 1354300 Sep 23 08:53 svnbook.pdf

4,user1修改文件並提交
[root@TEST winne]# vi testsvn.txt
[root@TEST winne]# svn add testsvn.txt /將testsvn.txt添加到庫中
A testsvn.txt
[root@TEST winne]# svn commit -m "test" testsvn.txt /注釋為test
Adding testsvn.txt
Transmitting file data .
Committed revision 2. /版本更新為2了

5,user2回window客戶端更新版本
回到Windows的客戶端看日誌, 版本已經更新為2了,注釋test,客戶端update就可以更新到新的版本了.

6, Windows客戶端的版本回滾
選中菜單中的update to verisiom ,選擇版本1即可.

7,Linux版本回滾操作:
[root@TEST winne]# svn up -r 1

熱點內容
linux是實時系統嗎 發布:2024-11-24 07:23:17 瀏覽:142
java數據挖掘演算法 發布:2024-11-24 07:18:59 瀏覽:853
我的世界伺服器怎麼重開指令 發布:2024-11-24 07:14:13 瀏覽:155
python刪除dataframe 發布:2024-11-24 07:05:38 瀏覽:734
安卓機藍牙怎麼傳東西 發布:2024-11-24 06:58:34 瀏覽:108
android疊效果 發布:2024-11-24 06:58:33 瀏覽:991
富士通電腦伺服器設置u盤啟動 發布:2024-11-24 06:56:21 瀏覽:716
delphipython 發布:2024-11-24 06:51:24 瀏覽:866
安卓手機如何添加文字 發布:2024-11-24 06:50:54 瀏覽:567
小米存儲位置設置 發布:2024-11-24 06:45:10 瀏覽:207