碼云SVN支持

現(xiàn)在碼云目前支持使用 Subversion 對(duì)倉(cāng)庫(kù)進(jìn)行操作,以下是使用指南和注意事項(xiàng)。

使用前注意

倉(cāng)庫(kù)體積超過(guò)300 MB不建議使用 Subversion 操作倉(cāng)庫(kù),存儲(chǔ)庫(kù)容量達(dá)到 400 MB,或者 300 MB 并且存儲(chǔ)大量非文本數(shù)據(jù)時(shí),我們將關(guān)閉倉(cāng)庫(kù)的 Subversion 支持。

由于 GIT 不支持空目錄的提交,在存儲(chǔ)機(jī)器上,無(wú)論是普通倉(cāng)庫(kù)還是開啟 Subversion 接入的倉(cāng)庫(kù)存儲(chǔ)時(shí)都是 GIT 倉(cāng)庫(kù),Subversion 的 commit 是提交到 git 倉(cāng)庫(kù)上的,所以碼云的 Subversion不支持空目錄的提交。

第一次開啟 Subversion, 操作一個(gè)倉(cāng)庫(kù),如果倉(cāng)庫(kù)體積較大或者提交次數(shù)較多,由于緩存的緣故,響應(yīng)時(shí)間會(huì)比較長(zhǎng)。

不支持 Subversion 的 Hook 機(jī)制,請(qǐng)使用 WebHook 替代。

Subversion 屬性不完全支持。

客戶端需要開啟 SASL 支持,不支持的客戶端無(wú)法訪問。

部分 svn 命令不支持??梢圆榭?b>Subversion 客戶端的兼容性

版本號(hào)的映射,目前 Subversion 的版本號(hào)計(jì)算依據(jù)為本分支所有的commit 數(shù)目減一 不包括 merge ,如果使用了在 git 中強(qiáng)制回退等操作,請(qǐng)重新檢出。

WARNING:

由于 git 在設(shè)計(jì)上就沒有考慮空文件Kernel.org: Git FAQ

我們?cè)O(shè)計(jì)的原則就是不破壞,不主動(dòng)修改用戶的倉(cāng)庫(kù),我們的后端存儲(chǔ)的完全是一個(gè) git 倉(cāng)庫(kù),如果我們添加了,一次提交內(nèi)容也不會(huì)一致了,建議你在添加目錄的時(shí)候添加 .keep 之類的占位文件,空文件即可。

Git 與 SVN 混用時(shí)盡量不要使用 Git 強(qiáng)制推送。Git 與 SVN 混用注意事項(xiàng)

關(guān)于改版

Subversion 功能的最終解釋權(quán)歸 OSChina.NET 所有。Subversion 接入的規(guī)則可能在下一次改版中發(fā)生改變。

開啟方式

在項(xiàng)目的設(shè)置界面開啟

如果是空倉(cāng)庫(kù):

使用指南

碼云 支持的是 svn 協(xié)議。? 對(duì)于 svn 而言,獲取一個(gè)倉(cāng)庫(kù)的代碼通常是 checkout,在項(xiàng)目主頁(yè)我們通??梢垣@得 URL:

這個(gè)倉(cāng)庫(kù)地址為:

svn://git.oschina.net/svnserver/newos

1.獲取倉(cāng)庫(kù)代碼:

svn checkout svn://git.oschina.net/svnserver/newos newos

注意信息碼云的 SVN 接入后端是通過(guò) git 存儲(chǔ)庫(kù)實(shí)現(xiàn),URL 規(guī)則為 svn://域名/用戶名/項(xiàng)目名 .

使用上述命令,我們將得到項(xiàng)目默認(rèn)分支的代碼。并將本地的工作目錄命名為newos

如果最后不帶 newos,svn 默認(rèn)把本地工作目錄命名為 項(xiàng)目名

svn checkout svn://git.oschina.net/svnserver/newos

如果要獲得任意分支代碼,例如獲取newos的dev分支,請(qǐng)輸入近似如下的命令:

此時(shí)地址為:svn://域名/用戶名/項(xiàng)目名/branches/分支名.

svn checkoutsvn://git.oschina.net/svnserver/newos/branches/dev

特別的說(shuō)明,獲取主干分支,也就是 master 分支可以使用下面的分支格式

svn checkoutsvn://git.oschina.net/svnserver/newos/trunknewos

svn trunk 分支對(duì)應(yīng) master 分支 用戶應(yīng)當(dāng)盡量不使用下面格式

svn checkout svn://git.oschina.net/svnserver/newos

操作說(shuō)明

如果部分檢出倉(cāng)庫(kù),并且倉(cāng)庫(kù)根目錄下包含 branches/tags/trunk 這樣的目錄,請(qǐng)使用完整的路徑 layout,如下:

svn://git.oschina.net/username/example/trunk/tags/hellosvn://git.oschina.net/username/example/branches/dev/trunksvn://git.oschina.net/username/example/branches/dev/branches

如果沒有 master 分支,也就沒有 trunk 分支,檢出的 URL 不能省略分支名。比如只有一個(gè) dev 分支,必須使用下列格式,否則會(huì)提示倉(cāng)庫(kù)不存在。

svn cosvn://git.oschina.net/svnserver/newos/branches/dev? svnserver_dev

打開終端,輸入上述命令,出現(xiàn)以下下面提示。其中第一個(gè)認(rèn)證領(lǐng)域是用戶的密碼,這個(gè)可以留空。而用戶名是用戶在 GIT@OSC 登陸時(shí)使用郵箱地址。密碼則是用戶登陸 碼云 所使用的密碼一般而言,svn 會(huì)加密緩存用戶的用戶名密碼,所以,對(duì)倉(cāng)庫(kù)的操作只需要第一次輸入用戶郵箱和密碼。清除密碼緩存,用戶目錄下的.subversion/auth/svn.simple文件夾下的文件。

下圖則是成功的拉取了項(xiàng)目代碼。

查看本地工作目錄信息:

svninfo

cdhelloworldecho"test"> SVNReadMe.md#svn add SVNReadMe.md#svn add * --force類似于git add -Asvn add * --forcesvn update .svn commit -m"first svn commit"

Subversion 在提交前建議先使用 svn update 更新工作拷貝。也就相當(dāng)于 git pull 后再 git push。

Subversion 的提交是在線的,如果機(jī)器已經(jīng)離線,那么提交會(huì)失敗,這個(gè)過(guò)程用git的方式理解就是 git commit+git push。

用戶使用 svn 提交代碼同樣會(huì)有動(dòng)態(tài)顯示。

列出版本庫(kù)中的目錄內(nèi)容:

svn listsvn://git.net/svnserver/newos/trunk

導(dǎo)出倉(cāng)庫(kù)指定分支的所有文件,不含版本控制信息:

svn exportsvn://git.net/svnserver/newos/trunknewos

備注

安裝 Subversion 客戶端

在 Apache 基金會(huì)的 Subversion 官網(wǎng):

http://subversion.apache.org二進(jìn)制下載提示頁(yè)面:

http://subversion.apache.org/packages.html

Windows 系統(tǒng):

與資源管理起集成的 SVN 客戶端:TortoiseSVN,通常被叫做"海龜",為 msi 安裝包??梢允褂?a target="_blank" rel="nofollow">ExtractMSI解壓縮。很詭異的是,在 Apache 上并沒有推薦 TortoiseSVN。另外還有 SlikSVN,下載地址:https://sliksvn.com/download/其他的也就不一一介紹了。

Linux 系統(tǒng)

一般而言 Linux 系統(tǒng)自帶的包控制軟件能夠安裝 Subversion,如果版本低于1.8,就建議用戶下載預(yù)編譯的二進(jìn)制或者自己動(dòng)手編譯 Subversion。這里不做過(guò)多說(shuō)明。

OS X

XCode 自帶的 Subversion 版本為1.7.x,太老,而 GIT@OSC 只支持1.8以上的 SVN 客戶端。

如果安裝了 Homebrew

brew install subversion

或者使用WANdisco的預(yù)編譯版本http://www.wandisco.com/subversion/download#osx

Subversion 客戶端的兼容性

我們支持 Apache Subversion 1.8 或者更高的版本,當(dāng)你安裝一個(gè) Subversion 客戶端時(shí),如果錯(cuò)誤提示是“無(wú)法協(xié)商驗(yàn)證驗(yàn)證方式” 請(qǐng)確保你的客戶端支持 SASL 驗(yàn)證,比如在 Ubuntu 上,你可以安裝 libsasl2-dev 然后編譯 Subversion, 這樣的話客戶端是支持 SASL 驗(yàn)證的。

sudo apt-get install libsasl2-dev

當(dāng)你使用 svnkit 或者 SubversionJavaHl 這類 IDE 集成客戶端,請(qǐng)確保支持 SASL 驗(yàn)證。

關(guān)于 GIT 與 SVN 的轉(zhuǎn)換

如果用戶存在一個(gè)基于 Subversion 托管的項(xiàng)目,要遷移到 GIT@OSC,可以使用 git-svn 將項(xiàng)目轉(zhuǎn)變?yōu)榛?git 的倉(cāng)庫(kù),然后推送到 GIT@OSC,這樣你依然能夠使用SVN對(duì)項(xiàng)目進(jìn)行操作。請(qǐng)記得先在 GIT@OSC 上新建一個(gè)項(xiàng)目

git svnclonehttp://myhost/repo -T trunk -b branches -t tagsgit remote add oscgit https://git.oschina.net/user/repogit push -u oscgit --all

通常來(lái)說(shuō),如果本地存在 SVN 倉(cāng)庫(kù),則可以:

git svn clone file:///tmp/svn-repo -T trunk -b branches -t tagsgit remote add oscgit https://git.oschina.net/user/repogit push -u oscgit? --all

將項(xiàng)目轉(zhuǎn)移到 GIT@OSC 上以后,使用 svn 命令 checkout 即可對(duì)項(xiàng)目進(jìn)行操作。

高級(jí)指南:http://git-scm.com/book/zh/ch8-2.html

安裝 git,git-svn

Windows

msysgit 官網(wǎng)http://msysgit.github.io/,版本比較低。

Github for Windows 提供的 git 工具和 msysgit 一致。

MSYS2 git 下載地址:http://sourceforge.net/projects/msys2,然后啟動(dòng)終端,安裝 git,目前版本為2.4.3。

pacman -S git

Cygwin git 下載地址:http://www.cygwin.com/,然后使用包管理軟件或者直接下載 git 源碼編譯 git。

makeconfigure./configure --prefix=/usr/localmakemakeinstall

Linux

有包管理器的直接用包管理器安裝。

如 Ubuntu

sudoapt-get install git git-svn

也可以手動(dòng)編譯。

Mac OSX

下載地址:http://git-scm.com/download/mac

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容