0.簡介
在Windows中原探,我們常用TortoiseSVN這個軟件來進行搭建SVN環(huán)境,那么在macOS中顽素,我們應(yīng)當如何去搭建SVN環(huán)境呢咽弦?在以前的老版本的macOS中,macOS中Xcode已經(jīng)為我們提供了SVN的服務(wù)端和客戶端胁出。但是在如今的新版本當中型型,已經(jīng)沒有SVN了,我們可以使用Homebrew進行安裝SVN全蝶。
1.安裝
如何安裝呢闹蒜?我們使用Homebrew進行安裝,關(guān)于Homebrew的安裝抑淫,可以從參考我往期的文章绷落,下面直接講述安裝之后的安裝命令
brew install subversion
我們使用如下的命令進行檢查是否安裝了這個軟件
brew list
得到如下的結(jié)果
如果你也安裝了cakebrew,可以打開這個軟件也可以看到始苇。
我們使用
svn help
命令查看svn是否可以全局訪問砌烁,如圖所示,則安裝成功催式!
2.安裝之后的配置
使用如下命令創(chuàng)建一個SVN的代碼倉庫(目錄改成你想要創(chuàng)建的目錄):
svnadmin create /Users/wanna/Desktop/Code/SVN
之后函喉,你會在自己的目錄下看到如圖所示的項目結(jié)構(gòu):
我們的配置文件在哪里呢?如果經(jīng)常寫代碼并且經(jīng)常折騰的話荣月,我們可以很清楚的知道在conf/文件夾下管呵。
打開conf/,我們可以看到圖中的1哺窄、2撇寞、3三個配置文件顿天。
為了保留一份原始的配置文件堂氯,避免意外蔑担,我這里將3個文件都備份了一遍!
我們需要依次編輯3咽白、2啤握、1三個文件:
2.1 svnserve.conf文件的配置:
將1、2晶框、3排抬、4四個地方前面的#注釋去掉。
這里對配置進行說明:
1.anon-access = read 代表匿名訪問可讀授段,可以將其進行修改修改為anon-access = none代表不允許匿名訪問蹲蒲。
2.auth-access = write 代表認證之后可寫
3.passwd-db = passwd 代表密碼數(shù)據(jù)庫是passwd文件
4.authz-db = authz 代表授權(quán)數(shù)據(jù)庫為authz文件
2.2 passwd文件的配置
在圖中的位置添加用戶名和密碼,格式為
username = password
在這里我設(shè)置了兩個用戶:
wanna = 123456
jjc = 123456
2.3 authz文件的配置
文件的第一個框中侵贵,創(chuàng)建組wannagroup届搁,可以更方便地進行賬號權(quán)限的統(tǒng)一管理。
在文件的第二個框中窍育,給用戶/組授予權(quán)限
[/] #允許訪問全部目錄卡睦,也可以自己修改
@wannagroup = rw #允許wannagroup組訪問全部,組前要加@
wanna = rw #允許rw訪問全部漱抓,用戶前不加@
3.啟動svn服務(wù)器/關(guān)閉svn服務(wù)器
3.1 啟動SVN服務(wù)器
svnserve -d -r /Users/wanna/Desktop/Code/SVN
也有其他的方式去啟動SVN
在App Store搜索 Simple SVN Server下載這個軟件表锻。不過這個軟件只能用來開啟服務(wù)
將圖中的Server Root改為自己創(chuàng)建的路徑即可!
點擊下方的三角形運行即可乞娄,復(fù)制鏈接瞬逊,這個鏈接為你的服務(wù)器鏈接!
3.2 關(guān)閉SVN服務(wù)器
使用最粗暴的方式仪或,打開聚焦(Command+Space)-活動監(jiān)視器确镊,搜索活動監(jiān)視器
選中svnserve,點擊左上角的x溶其,直接刪掉這個進程就可以關(guān)閉骚腥。
4.SVN的客戶端
4.1 從本地導(dǎo)入代碼到SVN服務(wù)器
使用如下的命令進行導(dǎo)入:
svn import /Users/wanna/Desktop/Code/C svn://localhost --username=wanna --password=123456 -m "First Commit"
從 /Users/wanna/Desktop/Code/C文件夾,上傳到svn://localhost服務(wù)器瓶逃。-m 后跟備注束铭,必須有-m參數(shù),且必須寫備注厢绝,不然會報錯契沫!
4.2 從SVN服務(wù)器下載到本地
svn checkout svn://localhost /Users/wanna/Desktop/test
從svn服務(wù)器svn://localhost下載到本地路徑/Users/wanna/Desktop/test。
4.3 提交更新過的代碼到SVN服務(wù)器
svn commit -m "First Commit"
4.4 更新服務(wù)器端代碼到客戶端
svn update
4.5 刪除在服務(wù)器上的文件
刪除服務(wù)器上的文件的命令為(得具有相應(yīng)的權(quán)限才行喲)
svn delete svn://xxx.xxx.xxx.xxx/文件的路徑 -m "備注"
比如昔汉,我想刪除svn://localhost上的main文件懈万,并且添加備注"刪除了main文件",則命令如下
svn delete svn://localhost/main -m "刪除了main文件"
4.6 查看svn服務(wù)器的信息
命令如下:
svn info
根據(jù)這個信息,我們也可以看出我們檢出的路徑叫做工作副本路徑(這個名詞得記下來)会通,svn服務(wù)器的URL為svn://localhost口予,也可以看到最后更新的版本號
4.7 版本回退
在進行更新之前,可以使用svn info
命令查看版本號涕侈。
使用如下命令重新進行檢出沪停,恢復(fù)到之前的版本
svn checkout -r [version] svn://localhost /Users/wanna/Desktop/test
[version]為版本號,這樣我們就可以回退到之前的版本裳涛。
比如我上面刪除了main文件之后是版本2木张,而我之前是版本1,我就可以使用如下命令恢復(fù)我之前刪掉的main文件
svn checkout -r 1 svn://localhost ./
#由于我已經(jīng)在檢出的路徑下了端三,因此我可以使用./表示當前目錄舷礼,若不是需要修改為對應(yīng)的檢出路徑
我們可以看到,我刪除的文件main已經(jīng)被恢復(fù)回來了=即场妻献!
那如果我只想恢復(fù)一個文件,而不是整個項目到某個版本呢虚婿?
使用如下的命令
svn update -r [version] filename
5. 遇到常見的錯誤
5.1 svn: E155007: “/xxx/xxx/xxx”不是工作副本
出現(xiàn)這個問題的原因是旋奢,你沒有在你檢出的目錄下,你應(yīng)當先檢出
svn checkout svn://localhost /Users/wanna/Desktop/test
并且切換到你檢出的路徑下
cd /Users/wanna/Desktop/test