❶ svn提交的時候,如何處理才能同時提交到兩太伺服器上
首先要確定的一點,這兩台SVN伺服器中只能有一台可以進行讀寫操作,另一台只能做備份用(你可以從上面讀取數據,但不能修改上面的數據)。
這樣的話,可以使用SVN自帶的同步機制,也就是svnsync命令,將源SVN伺服器上的內容同步到備份SVN伺服器上。一般是把svnsync指令放到源SVN伺服器的post-commit鉤子中,這樣每次commit成功後,源SVN伺服器就會自動調用這個鉤子,執行一次與備份伺服器之間的同步。
svnsync的具體用法稍微有點復雜,你搜索一下吧,很多這方面介紹。
因為不了解你為什麼要同時上傳到兩台SVN伺服器,所以只能暫時給出這樣一個方案,如果你能詳細描述你要達成的目的,那可能還會有其它的方案。
❷ 一個項目在多台SVN伺服器上同步問題
你原來的想法是不能實現的,SVN自身的同步機制svnsync中,只能對源伺服器進行commit操作,對同步伺服器只能checkout、update而不能commit的,否則會導致svnsync失敗。也就是說要在多台SVN伺服器之間保持數據一致的話,只能設置其中某一台伺服器可寫,其它伺服器都必須只讀。
建議你換個思路,為什麼不直接將第三方公網的SVN空間作為主伺服器呢?所有的checkout、update、commit操作都對這個serverC進行操作,反正你在公司和家裡都能直接訪問serverC。如果出於數據安全、編譯部署方面的考慮,可以將公司或家裡的SVN伺服器都作為備份伺服器,使用svnsync方式將serverC上的內容同步到serverA或serverB,但不對直接serverA、serverB進行寫操作。
❸ svn如何一次提交到兩個伺服器
svn提交只能直接提交到一個主伺服器,但是可以在主伺服器上增加一個hook腳本,處罰另外一個鏡像伺服器執行svnsync來同步本次提交
❹ 2台SVN伺服器,我目前某個工程連在其中一台上,如何把源碼提交到另一台上
用一台作為SVN伺服器就OK,之後版本庫瀏覽,填入連接地址,輸入用戶名和密碼,將資料上傳到伺服器上。
具體操作步驟:
如何快速建立Subversion伺服器,並且在項目中使用起來,這是大家最關心的問題,與CVS相比,Subversion有更多的選擇,也更加的容易,幾個命令就可以建立一套伺服器環境,可以使用起來,這里配套有動畫教程。
本文是使用Subversion最快速的教程,在最短的時間里幫助您建立起一套可用的伺服器環境,只需略加調整就可以應用到實際項目當中。
本教程分為以下幾個部分,為了說明簡單,教程是在windows下使用的方式,以方便資源有限的項目使用。在UNIX環境下,只是安裝方式不同,命令執行並無太大區別。
軟體下載
伺服器和客戶端安裝
建立版本庫(Repository)
配置用戶和許可權
運行獨立伺服器
初始化導入
基本客戶端操作
1,軟體下載
下載Subversion伺服器程序。
到官方網站的下載二進制安裝文件,來到二進制包下載部分,找到 Windows NT, 2000, XP and 2003部分,然後選擇Apache 2.0 或者 Apache 2.2,這樣我們可以看到許多下載的內容,目前可以下載Setup-Subversion-1.5.3.msi 。
下載Subversion的Windows客戶端TortoiseSVN。
TortoiseSVN是擴展Windows Shell的一套工具,可以看作Windows資源管理器的插件,安裝之後Windows就可以識別Subversion的工作目錄。
官方網站是TortoiseSVN ,下載方式和前面的svn伺服器類似,在Download頁面的我們可以選擇下載的版本,目前的最高穩定版本的安裝文件為TortoiseSVN-1.5.5.14361-win32-svn-1.5.4.msi。
2,伺服器和客戶端安裝
伺服器安裝,直接運行Setup-Subversion-1.5.3.msi ,根據提示安裝即可,這樣我們就有了一套伺服器可以運行的環境。
安裝TortoiseSVN,同樣直接運行TortoiseSVN-1.5.5.14361-win32-svn-1.5.4.msi按照提示安裝即可,不過最後完成後會提示是否重啟,其實重啟只是使svn工作拷貝在windows中的特殊樣式生效,與所有的實際功能無關,這里為了立刻看到好的效果,還是重新啟動機器。
3,建立版本庫(Repository)
運行Subversion伺服器需要首先要建立一個版本庫(Repository),可以看作伺服器上存放數據的資料庫,在安裝了Subversion伺服器之後,可以直接運行,如:
svnadmin create E:\svndemo\repository就會在目錄E:\svndemo\repository下創建一個版本庫。
我們也可以使用TortoiseSVN圖形化的完成這一步:
在目錄E:\svndemo\repository下"右鍵->TortoiseSVN->Create Repository here...「, 然後可以選擇版本庫模式, 這里使用默認即可, 然後就創建了一系列目錄和文件。
4,配置用戶和許可權
來到E:\svndemo\repository\conf目錄,修改svnserve.conf:
# [general]
# password-db = passwd
改為:
[general]
password-db = passwd
然後修改同目錄的passwd文件,去掉下面三行的注釋:
# [users]
# harry = harryssecret
# sally = sallyssecret
最後變成:
[users]
harry = harryssecret
sally = sallyssecret
在passwd文件中,「=」前的字元就是用戶名,後面的就是密碼。還要注意「[users]」前面的注釋「#」一定要刪除掉。
5,運行獨立伺服器
在任意目錄下運行:
svnserve -d -r E:\svndemo\repository 我們的伺服器程序就已經啟動了。注意不要關閉命令行窗口,關閉窗口也會把svnserve停止。
6,初始化導入
來到我們想要導入的項目根目錄,在這個例子里是E:\svndemo\initproject,目錄下有一個readme.txt文件:
右鍵->TortoiseSVN->Import...
在URL of repository輸入「svn://localhost/trunk」
在Import Message中輸入你的日誌信息
完成之後目錄沒有任何變化,如果沒有報錯,數據就已經全部導入到了我們剛才定義的版本庫中。
需要注意的是,這一步操作可以完全在另一台安裝了TortoiseSVN的主機上進行。例如運行svnserve的主機的IP是133.96.121.22,則URL部分輸入的內容就是「svn://133.96.121.22/trunk」。
7,基本客戶端操作
取出版本庫到一個工作拷貝:
來到任意空目錄下,在本例中是E:\svndemo\wc1,運行右鍵->Checkout,在URL of repository中輸入svn://localhost/trunk,這樣我們就得到了一份工作拷貝。
在工作拷貝中作出修改並提交:
打開readme.txt,作出修改,然後右鍵->Commit...,這樣我們就把修改提交到了版本庫,我們可以運行。
察看所作的修改:
readme.txt上右鍵->TortoiseSVN->Show Log,這樣我們就可以看到我們對這個文件所有的提交。在版本1上右鍵->Compare with working ,我們可以比較工作拷貝的文件和版本1的區別。
❺ SVN伺服器如何創建多個文件夾滿足不同的客戶端訪問呢
你的概念有些混淆。你需要理解幾個概念:
1、版本庫:這個比較好理解,就是svnadmin創建出來的,存放在伺服器端,可以從客戶端checkout出來。
2、父版本庫:這個是伺服器端存放各版本庫的父文件夾,客戶端不能checkout這一層,但如果是集成了apache的話,可以用瀏覽器查看這一層,能看到所有的版本庫列表。
3、文件夾:這個是版本庫內的子文件夾,是由客戶端創建後,add、commit到伺服器端。順便提一下,可以直接checkout某個文件夾。
許可權文件有多種方式,如果是集成了apache,而且在httpd.conf 中關於SVN是指向父版本庫的話,一般是同一個父版本庫下的所有庫的許可權都在同一個文件中進行規定,如果在httpd.conf 中關於SVN是指向版本庫的話,則許可權文件只規定這個版本庫的訪問許可權。
trunk、brances、tags這層文件夾,一般是放在版本庫根目錄下面,是由客戶端創建並commit到伺服器上。
❻ 如何通過svn更新多台伺服器
看了半天,大致明白了你的目的:
一台伺服器上新版本更新後,其他伺服器能自動更新(這個是最關鍵的),不用一台一台登陸手動操作。
-----------------------
用SVN確實有點麻煩了,SVN的優點是在多人協同版本開發上。
對於你這種多台伺服器同時部署的,建議你用專業的網管軟體或鏡像軟體。
例如:HP OPENVIEW ;LANDESK ; ROSE MIRROR 等
❼ svn如何使用
svn(subversion)是近年來崛起的版本管理工具,是cvs的接班人。目前,絕大多數開源軟體都使用svn作為代碼版本管理軟體。如何快速建立Subversion伺服器,並且在項目中使用起來,這是大家最關心的問題,與CVS相比,Subversion有更多的選擇,也更加的容易,幾個命令就可以建立一套伺服器環境,
本文是使用Subversion最快速的教程,在最短的時間里幫助您建立起一套可用的伺服器環境,只需略加調整就可以應用到實際項目當中。
本教程分為以下幾個部分,為了說明簡單,教程是在windows下使用的方式,以方便資源有限的項目使用。在UNIX環境下,只是安裝方式不同,命令執行並無太大區別。
工具/原料
Subversion伺服器程序安裝包
Subversion的Windows客戶端TortoiseSVN安裝包
方法/步驟
1軟體下載
<1>、下載Subversion伺服器程序
到官方網站的下載二進制安裝文件,來到二進制包下載部分,找到 Windows NT, 2000, XP and 2003部分,然後選擇Apache 2.0 或者 Apache 2.2,這樣我們可以看到許多下載的內容,目前可以下載Setup-Subversion-1.7.12.msi 。
<2>、下載Subversion的Windows客戶端TortoiseSVN。
TortoiseSVN是擴展Windows Shell的一套工具,可以看作Windows資源管理器的插件,安裝之後Windows就可以識別Subversion的工作目錄。
官方網站是TortoiseSVN ,下載方式和前面的svn伺服器類似,在Download頁面的我們可以選擇下載的版本,目前的最高穩定版本的安裝文件為TortoiseSVN-1.5.5.14361-win32-svn-1.5.4.msi。
2svn伺服器和客戶端安裝
<1>、安裝Subversion,直接運行Setup-Subversion-1.5.3.msi ,根據提示安裝即可,這樣我們就有了一套伺服器可以運行的環境。
<2>、安裝TortoiseSVN,同樣直接運行TortoiseSVN-1.5.5.14361-win32-svn-1.5.4.msi按照提示安裝即可,不過最後完成後會提示是否重啟,其實重啟只是使svn工作拷貝在windows中的特殊樣式生效,與所有的實際功能無關,這里為了立刻看到好的效果,還是重新啟動機器。
<3>、安裝svn的客戶端程序,需要的話還可以安裝svn的語言包,注意語言包的版本也必須與客戶端程序的版本一致
3建立版本庫(Repository)
運行Subversion伺服器需要首先要建立一個版本庫(Repository),可以看作伺服器上存放數據的資料庫,在安裝了Subversion伺服器之後,可以直接運行,如:
svnadmin create E:\svndemo\repository
就會在目錄E:\svndemo\repository下創建一個版本庫。
我們也可以使用TortoiseSVN圖形化的完成這一步:
在目錄E:\svndemo\repository下"右鍵->TortoiseSVN->Create Repository here...「, 然後可以選擇版本庫模式, 這里使用默認即可, 然後就創建了一系列目錄和文件。
步驟閱讀 .4SVN配置用戶和許可權
來到E:\svndemo\repository\conf目錄,修改svnserve.conf:
# [general]
# password-db = passwd
改為:
[general]
password-db = passwd
然後修改同目錄的passwd文件,去掉下面三行的注釋:
# [users]
# harry = harryssecret
# sally = sallyssecret
最後變成:
[users]
harry = harryssecret
sally = sallyssecret
在passwd文件中,「=」前的字元就是用戶名,後面的就是密碼。還要注意「[users]」前面的注釋「#」一定要刪除掉。
步驟閱讀 .5運行獨立伺服器
在任意目錄下運行:
svnserve -d -r E:\svndemo\repository 我們的伺服器程序就已經啟動了。注意不要關閉命令行窗口,關閉窗口也會把svnserve停止。
6初始化導入
來到我們想要導入的項目根目錄,在這個例子里是E:\svndemo\initproject,目錄下有一個readme.txt文件:
右鍵->TortoiseSVN->Import...
在URL of repository輸入「svn://localhost/trunk」
在Import Message中輸入你的日誌信息
完成之後目錄沒有任何變化,如果沒有報錯,數據就已經全部導入到了我們剛才定義的版本庫中。
需要注意的是,這一步操作可以完全在另一台安裝了TortoiseSVN的主機上進行。例如運行svnserve的主機的IP是133.96.121.22,則URL部分輸入的內容就是「svn://133.96.121.22/trunk」。
步驟閱讀 .7基本客戶端操作
取出版本庫到一個工作拷貝:
來到任意空目錄下,在本例中是E:\svndemo\wc1,運行右鍵->Checkout,在URL of repository中輸入svn://localhost/trunk,這樣我們就得到了一份工作拷貝。
在工作拷貝中作出修改並提交:
打開readme.txt,作出修改,然後右鍵->Commit...,這樣我們就把修改提交到了版本庫,我們可以運行。
察看所作的修改:
readme.txt上右鍵->TortoiseSVN->Show Log,這樣我們就可以看到我們對這個文件所有的提交。在版本1上右鍵->Compare with working ,我們可以比較工作拷貝的文件和版本1的區別。
最後,所有的內容都已經錄制為動畫文件,大家可以參考。
關於本教程大家有什麼意見,可以這里討論 。
如果更新文件以後,有兩個人或者多個人同時修改了某個文件的某個位置,是否沖突,(一般不會這樣子,因為上傳的版本是可以編譯通過的,而且每個人負責自己的模塊,不會多人獨立修改同一個文件,別人也是先更新,後上傳修改,,,,)
開發者習慣性動作。早上上班第一件事就是更新svn版本庫,再開始一天的工作。
晚上下班,或者其他時候要上傳東西可以直接上傳因為你負責的東西沒人去修改。
沖突是怎麼產生的呢:因為不同的人,同時修改了同一個文件的同一個地方,這個時候,他提交了,你沒有提交,你就提交不了,這個時候,你要先更新,更新就會出現代碼沖突問題。最好不要多人同時修改一個文件,公用的文件,更改之前要和大家溝通一下,或者解決沖突 呵呵
先更新,沒有沖突,再提交。有沖突,解決沖突再提交。否則也提交不了。
對於一些處於沖突狀態下的文件 ,右鍵TortoiseSVN ->Resolved,解決沖突。解決沖突: http://www.blogjava.net/jasmine214--love/archive/2011/04/07/347769.html
更新-解決沖突-刪掉以下三個文件-提交(如果自己沒有修改的文件有沖突,刪除再更新即可,自己修改的文件解決沖突)
test.php.mine 是沖突前自己的文件
test.php.版本號 是沖突前本地的版本文件
test.php.伺服器的版本號 是沖突後伺服器版本文件
END注意事項
如果修改文件後提交不了,大多是因為版本不一致造成的。更新一下,不產生沖突的情況,就可以提交了。
更新文件,如果出現沖突的情況,打開沖突文件test.php會看到類似以下的內容
<<<<<<<<<<<<<<<
asdfadfadfadf
11111111111111
=======
asdfadfadfadf
111111111111111
222222222222
>>>>>>>>>>>>>>>>
結合別人修改的內容和自己修改的內容,然後把文件中的<<<<<,=====,>>>>>>>這類沖突符號去掉。去掉後,還是不能提交的,為什麼?因為沖突時會產生三個文件,有這三個文件存在肯定提交不了。
客戶端用的tortoisesvn(這個估計程序員用的最多),沖突時會多產生,三個文件
test.php.mine 是沖突前自己的文件
test.php.版本號 是沖突前本地的版本文件
test.php.伺服器的版本號 是沖突後伺服器版本文件
提交的時候,把這三個文件刪除掉就可以提交了。
產生覆蓋的原因。
a),在修改沖突文件test.php時,把別人代碼都刪除掉了,只留下了自己的代碼。這樣就會產生覆蓋了。
b),把test.php.mine中的內容直接到test.php文件,這樣也會產生代碼覆蓋。
上面二種情況都是我親眼看到新手這樣操作的,要避免這二種操作方法。
❽ 兩個SVN伺服器同步怎麼操作
svn自帶了svnsync同步機制,但不確定能否滿足你們的使用要求。因為svnsync的同步,只能實現源伺服器向目標伺服器的單向同步,也就是說對目標伺服器上的內容,只能進行update操作,而不能進行commit操作。
如果你們只是想把總部伺服器上的數據取過來,而不用修改後傳回總部伺服器,那麼用svnsync就可以
了;若還想傳回去,那就要另想辦法了。
關於svnsync的同步設置,網上搜索一下吧,不是一兩句話能說清的。