1、蘋果電腦可以下載免費的svn嗎?
在Windows環境中,我們一般使用TortoiseSVN來搭建svn環境。在Mac環境下,由於Mac自帶了svn的伺服器端和客戶端功能,所以我們可以在不裝任何第三方軟體的前提下使用svn功能,不過還需做一下簡單的配置。
我們首先來看下,如何在Mac環境下搭建svn伺服器端環境。
創建代碼倉庫,用來存儲客戶端所上傳的代碼
我先在/User/apple目錄下新建一個svn目錄,以後可以在svn目錄下創建多個倉庫目錄
打開終端,創建一個mycode倉庫,輸入指令:svnadmin create /Users/apple/svn/mycode
指令執行成功後,會發現硬碟上多了個/Users/apple/svn/mycode目錄,目錄結構如下:
配置svn的用戶許可權
主要是修改/svn/mycode/conf目錄下的三個文件
1.打開svnserve.conf,將下列配置項前面的#和空格都去掉
[java] view plain copy
# anon-access = read
# auth-access = write
# password-db = passwd
# authz-db = authz
anon-access = read代表匿名訪問的時候是只讀的,若改為anon-access = none代表禁止匿名訪問,需要帳號密碼才能訪問
2.打開passwd,在[users]下面添加帳號和密碼,比如:
[java] view plain copy
[users]
mj = 123
jj = 456
帳號是mj,密碼是123
3.打開authz,配置用戶組和許可權
我們可以將在passwd里添加的用戶分配到不同的用戶組里,以後的話,就可以對不同用戶組設置不同的許可權,沒有必要對每個用戶進行單獨設置許可權。
在[groups]下面添加組名和用戶名,多個用戶之間用逗號(,)隔開
[java] view plain copy
[groups]
topgroup=mj,jj
說明mj和jj都是屬於topgroup這個組的,接下來再進行許可權配置。
使用[/]代表svn伺服器中的所有資源庫
[java] view plain copy
[/]
@topgroup = rw
上面的配置說明topgroup這個組中的所有用戶對所有資源庫都有讀寫(rw)許可權,組名前面要用@
如果是用戶名,不用加@,比如mj這個用戶有讀寫許可權
[java] view plain copy
[/]
mj = rw
至於其他精細的許可權控制,可以參考authz文件中的其他內容
4.啟動svn伺服器
前面配置了這么多,最關鍵還是看能否正常啟動伺服器,若啟動不來,前面做再多工作也是徒勞。
在終端輸入下列指令:svnserve -d -r /Users/apple/svn
或者輸入:svnserve -d -r /Users/apple/svn/mycode
沒有任何提示就說明啟動成功了
5.關閉svn伺服器
如果你想要關閉svn伺服器,最有效的辦法是打開實用工具裡面的「活動監視器」
綜合上述,我們就可以輕松搭建svn伺服器環境了
使用svn客戶端功能
1.從本地導入代碼到伺服器(第一次初始化導入)
在終端中輸入
svn import /Users/apple/Documents/eclipse_workspace/weibo svn://localhost/mycode/weibo --username=mj --password=123 -m "初始化導入"
我解釋下指令的意思:將/Users/apple/Documents/eclipse_workspace/weibo中的所有內容,上傳到伺服器mycode倉庫的weibo目錄下,後面雙引號中的"初始化導入"是注釋
2.從伺服器端下載代碼到客戶端本地
在終端中輸入svn checkout svn://localhost/mycode --username=mj --password=123 /Users/apple/Documents/code
我解釋下指令的意思:將伺服器中mycode倉庫的內容下載到/Users/apple/Documents/code目錄中
3.提交更改過的代碼到伺服器
在步驟2中已經將伺服器端的代碼都下載到/Users/apple/Documents/code目錄中,現在修改下裡面的一些代碼,然後提交這些修改到伺服器
1> 打開終端,先定位到/Users/apple/Documents/code目錄,輸入:cd/Users/apple/Documents/code
2> 輸入提交指令:svn commit -m "修改了main.m文件"
這個指令會將/Users/apple/Documents/code下的所有修改都同步到伺服器端,假如這次我只修改了main.文件
可以看到終端的列印信息:
[java] view plain copy
Sending weibo/weibo/main.m
Transmitting file data .
Committed revision 2.
4.更新伺服器端的代碼到客戶端
這個應該是最簡單的指令了,在終端中定位到客戶端代碼目錄後,比如上面的/Users/apple/Documents/code目錄,然後再輸入指令:svn update
5.至於svn的其他用法,可以在終端輸入:svn help
這里列出一大堆svn指令,後面括弧中的內容的一般代表著指令的簡稱,比如我們可以用svn ci代替svn commit,用svn co代替svn checkout
2、svn的賬號和密碼,是免費的嗎?
就是SVN伺服器上為你注冊的用戶的ID和密碼,這個具體是什麼你要去問SVN伺服器管理員
如果是你自己搭建的SVN伺服器,那麼你要在伺服器端添加用戶,具體添加用戶的方法要視你的用戶驗證機制而定,有基於Apache的用戶驗證機制,也有基於操作系統用戶的驗證機制,要看你的伺服器設置了。
如果是完全新手架設SVN伺服器,建議安裝Collabnet Subversion Edge版伺服器,安裝很簡單,重點是自帶了SVN伺服器端控制台,添加用戶、添加版本庫等操作都可以通過網頁實現,管理比較容易。
3、如何用騰訊雲伺服器搭建svn伺服器
Subversion 是一個受歡迎的開源的版本控制工具。他在互聯網免費提供並且開源。大多數 GNU/Linux 發行版系統自帶,所以它很有可能已經安裝在你的系統上了。可以使用下面命令檢查是否安裝了。
[jerry@CentOS ~]$ svn --version
如果 Subversion 客戶端沒有安裝,命令將報告錯誤,否則它將出現安裝的軟體版本
[jerry@CentOS ~]$ svn --version
-bash: svn: command not found
如果你使用基於 RPM 的 GNU/Linux,可以使用 yum 命令進行安裝,安裝成功之後,執行 svn --version 命令。
[jerry@CentOS ~]$ su -
Password:
[root@CentOS ~]# yum install subversion
[jerry@CentOS ~]$ svn --version
svn, version 1.6.11 (r934486)
compiled Jun 23 2012, 00:44:03
如果你使用基於 Debian 的 GNU/Linux,使用 apt 命令進行安裝。
[jerry@Ubuntu]$ sudo apt-get update
[sudo] password for jerry:
[jerry@Ubuntu]$ sudo apt-get install subversion
[jerry@Ubuntu]$ svn --version
svn, version 1.7.5 (r1336830)
compiled Jun 21 2013, 22:11:49
Apache 安裝
我們已經看到如何將 SVN 客戶端安裝到 GNU/Linux 上,讓我們看看如何創建一個新的版本庫讓使用者們訪問。
我們必須必須在伺服器上安裝 Apache httpd 模塊和 svnadmin 工具。subversion 從 /etc/httpd/conf.d/subversion.conf 讀取配置文件, subversion.conf 看起來像這個樣子
LoadMole dav_svn_mole moles/mod_dav_svn.so
LoadMole authz_svn_mole moles/mod_authz_svn.so
<Location /svn>
DAV svn
SVNParentPath /var/www/svn
AuthType Basic
AuthName "Authorization Realm"
AuthUserFile /etc/svn-users
Require valid-user
</Location>
讓我們創建 Subversion 用戶,授權他們訪問版本庫,htpasswd 命令用於創建和更新用來保存用戶名和密碼的純文本文件給 HTTP 用戶提供基本身份認證。-c 選項創建一個密碼文件,如果密碼文件已經存在了,它將會被覆蓋。這就是為什麼 -c 只在第一次使用。-m 選項用於設置是否啟用 MD5 加密密碼。
用戶安裝
讓我們創建 tom
[root@CentOS ~]# htpasswd -cm /etc/svn-users tom
New password:
Re-type new password:
Adding password for user tom
讓我們創建 jerry
[root@CentOS ~]# htpasswd -m /etc/svn-users jerry
New password:
Re-type new password:
Adding password for user jerry
[root@CentOS ~]#
創建一個 Subversion 父目錄保存所有的工作,(/etc/httpd/conf.d/subversion.conf)。
[root@CentOS ~]# mkdir /var/www/svn
[root@CentOS ~]# cd /var/www/svn/
版本庫安裝
創建一個名為 project_repo 的版本庫。svnadmin 命令用於創建一個新的版本庫和一些其他目錄保存數據。
[root@CentOS svn]# svnadmin create project_repo
[root@CentOS svn]# ls -l project_repo
total 24
drwxr-xr-x. 2 root root 4096 Aug 4 22:30 conf
drwxr-sr-x. 6 root root 4096 Aug 4 22:30 db
-r--r--r--. 1 root root 2 Aug 4 22:30 format
drwxr-xr-x. 2 root root 4096 Aug 4 22:30 hooks
drwxr-xr-x. 2 root root 4096 Aug 4 22:30 locks
-rw-r--r--. 1 root root 229 Aug 4 22:30 README.txt
讓我們更改版本庫的用戶和組所有權。
[root@CentOS svn]# chown -R apache.apache project_repo/
檢查是否啟用SELinux或沒有使用SELinux狀態工具
[root@CentOS svn]# sestatus
SELinux status: enabled
SELinuxfs mount: /selinux
Current mode: enforcing
Mode from config file: enforcing
Policy version: 24
Policy from config file: targeted
如果SELinux啟用了,我們必須更改安全的上下文。
[root@CentOS svn]# chcon -R -t httpd_sys_content_t /var/www/svn/project_repo/
如果允許通過 HTTP 進行提交,執行下面命令。
[root@CentOS svn]# chcon -R -t httpd_sys_rw_content_t /var/www/svn/project_repo/
更改這些配置後,我們重啟 Apache 伺服器。
[root@CentOS svn]# service httpd restart
Stopping httpd: [FAILED]
Starting httpd: httpd: apr_sockaddr_info_get() failed for CentOS
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
[ OK ]
[root@CentOS svn]# service httpd status
httpd (pid 1372) is running...
[root@CentOS svn]#
我們已經成功配置好了 Apache 伺服器,現在我們將配置版本庫,使用默認的授權文件給可信的用戶訪問,添加下列幾行到 roject_repo/conf/svnserve.conf 文件。
anon-access = none
authz-db = authz
照慣例,每個 SVN 項目都有主幹,標簽,分支在項目的 root 目錄。
主幹是主要開發和經常被開發者們查看的目錄。
分支目錄用於追求不同的開發方向。
讓我們在項目版本庫底下創建主幹,標簽,分支結構。
[root@CentOS svn]# mkdir /tmp/svn-template
[root@CentOS svn]# mkdir /tmp/svn-template/trunk
[root@CentOS svn]# mkdir /tmp/svn-template/branches
[root@CentOS svn]# mkdir /tmp/svn-template/tags
現在從 /tmp/svn-template 導入這些文件目錄。
[root@CentOS svn]# svn import -m 'Create trunk, branches, tags directory structure' /tmp/svn-template/
Adding /tmp/svn-template/trunk
Adding /tmp/svn-template/branches
Adding /tmp/svn-template/tags
Committed revision 1.
[root@CentOS svn]#
完成了!我們已經成功創建版本庫並允許 Tom 和 Jerry 訪問,從現在開始他們可以所有版本庫支持的操作了。
4、SVN伺服器的用途
Subversion是一個自由/開源的版本控制系統,一組文件存放在中心版本庫,記錄每一次文件和目錄的修改,Subversion允許把數據恢復到早期版本,或是檢查數據修改的歷史,Subversion可以通過網路訪問它的版本庫,從而使用戶在不同的電腦上進行操作。
5、想問一下,我們公司要裝一個SVN的伺服器,是否需要支付License的費用?SVN是完全免費么?
SVN軟體本身是開源免費的,但有些公司集成了一些方便管理控制用的功能進去,這些公司製作的安裝包有的就是收費的了
一般來說,我推薦使用collabnet公司的svn伺服器安裝包,目前最新的是Collabnet Subversion Edge 2.1.1版,內部集成了Aapche、ViewVC,還帶了一個控制台,可以通過網頁形式增加版本庫、添加用戶、配置許可權、備份管理,一個安裝包裝完就能用,安裝配置過程幾乎傻瓜化了,非常省心,而且也是免費的,可以到他們官網下載。
6、SVN伺服器是什麼
一軟體,就是版本控制器,根據你的操作,記錄你的代碼更改和版本,方便以後的查詢,出錯還原和多人合作時等使用。
7、免費雲空間如何做SVN伺服器,可以嗎?
collabnet就有,svn雲服務
另外還有些免費的svn伺服器,比如googlecode、新浪code就提供的有,但大都有容量限制,一般100-300m吧
8、免費svn伺服器MYSQl外界可以連接嗎
如果客戶端是TortoiseSVN的話,在隨便某文件夾下點擊滑鼠右鍵,執行checkout,在彈出的窗口的內Url處填寫SVN服務容器上版本庫的訪問地址,然後就可以把版本庫整個取下來了(中間可能需要你輸入SVN的用戶名密碼)
9、怎麼在自己的電腦上使用SVN,需要安裝什麼伺服器?
SVN分客戶端和伺服器端,如果已經有SVN伺服器了(比如公司已經架設了SVN伺服器),那麼你電腦上只要裝客戶端就可以了,最常用的客戶端是TortoiseSVN,另外也有用於Eclipse的SVN插件,看你平時用SVN來做什麼了。
如果沒有伺服器端,那就要自己架設SVN伺服器,那麼你的電腦上就客戶端、伺服器端都要安裝,伺服器端推薦Collabnet 的SVN Edge版伺服器安裝包,相對而言安裝配置比較簡單,自帶伺服器管理控制台,而且免費。
看我的百度文庫,有SVN伺服器架設與SVN使用相關的文檔。
10、如何把SourceAnywhere打造成免費SVN伺服器
配置運行
安裝SourceAnywhere Server的時候,進入到資料庫選項,如果沒有安裝SQL Server,可以選擇LocalDB
安裝完內成之後,容打開SourceAnywhere Client,登錄SourceAnywhere Server
創建一個倉庫test
打開SvnBridge的配置文件scconfig.ini,設置好SourceAnywhere伺服器IP,埠,臨時目錄,以及SVNBridge 服務IP。
[SourceControl]
SCIP=127.0.0.1
SCPort=7777
Repository=Default
TempPath=C:\svn_tmp\
SCBIP=127.0.0.1
SCBPort=808
運行SvnBridge.exe
現在可以使用TortoiseSVN了。在本地磁碟創建一個目錄,右鍵點擊checkout,輸入倉庫地址
現在倉庫已經獲取到本地,我們可以添加一些文件
Commit之後,可以看到server上已經有數據了
功能限制
目前版本的SVNBridge只做到簡單的代碼上傳,獲取。而要查看歷史,需要登錄到服務端來查看