天天看點

Mac OS SVN配置使用以及沖突解決建立代碼倉庫配置svn的使用者權限Mac OS更新svn用戶端

<code>$mkdir svn</code>

建立一個倉庫,名稱随意,我的名字是<code>mycode</code>

<code>$svnadmin create ~/svn/mycode</code>

目錄結構應該如下所示:

<code>$ ls svn/mycode/</code>

<code>readme.txt conf/ db/ format hooks/ locks/</code>

修改<code>~/svn/mycode</code>目錄下的3個檔案

1.打開<code>svnserve.conf</code>,将下列配置項的前面的#和空格去掉

<code>anon-access = read</code>

<code>auth-access = write</code>

<code>password-db = passed</code>

<code>authz-db = author</code>

<code>anon-access = read</code>代表匿名通路的時候是隻讀的,若改為<code>anon-access = none</code>代表禁止匿名通路,需要帳号密碼才能通路

2.打開<code>passwd</code>,在<code>[users]</code>下面添加帳号和密碼,比如:

<code>[users]</code>

<code>benjamin=abc</code>

賬号是benjamin 密碼是abc

3.打開<code>authz</code>,配置使用者組和權限

我們可以将在passwd裡添加的使用者配置設定到不同的使用者組裡,以後的話,就可以對不同使用者組設定不同的權限,沒有必要對每個使用者進行單獨設定權限。在<code>[groups]</code>下面添加組名和使用者名,多個使用者之間用逗号<code>(,)</code>隔開

<code>[groups]</code>

<code>mygroup = benjamin</code>

說明benjamin是屬于mygroup這個組的,接下來再進行權限配置。使用[/]代表svn伺服器中的所有資源庫

<code>[/]</code>

<code>@mygroup = rw</code>

上面的配置說明mygroup這個組中的所有使用者對所有資源庫都有讀寫(rw)權限,組名前面要用@

如果是使用者名,不用加@,比如benjamin這個使用者有讀寫權限

<code>benjamin = rw</code>

至于其他精細的權限控制,可以參考authz檔案中的其他内容

4.啟動svn伺服器

前面配置了這麼多,最關鍵還是看能否正常啟動伺服器,若啟動不來,前面做再多工作也是徒勞。

在終端輸入下列指令:

<code>svnserve -d -r ~/svn</code>

或者輸入:

<code>svnserve -d -r ~/svn/mycode</code>

沒有任何提示就說明啟動成功了

5.關閉svn伺服器

如果你想要關閉svn伺服器,最有效的辦法是打開實用工具裡面的“活動螢幕”

本人在配置好svn之後,想要下載下傳文檔,由于svn下載下傳位址在國外,可能下載下傳時間要一天,是以我直接把之前在windows系統下下載下傳過得文檔複制到mac上來了。

我把它放在<code>~/documents/</code>目錄下

當我進入文檔目錄執行<code>$ svn update</code>後,提示了一個錯誤

svn: e155021: this client is too old to work with the working copy at ‘/users/piqiu1/documents/7day-sysdoc’ (format 31). you need to get a newer subversion client. for more details, see <a href="http://subversion.apache.org/faq.html#working-copy-format-change" target="_blank">http://subversion.apache.org/faq.html#working-copy-format-change</a>

經過查找,發現需要更新svn用戶端。

<code>$ svn --version</code>

得到版本是<code>1.7.20</code>

安裝完成,最後一步提示添加svn位址到path變量中,然後在終端執行以下指令

<code>$ cd ~</code>

<code>$ vi .bash_profile</code>

在 .bash_profile檔案中添加一行

<code>export path=/opt/subversion/bin:$path</code>

完後後更新下bash的環境變量

<code>$ source .bash_profile</code>

再次運作svn 指令

得到版本是<code>svn, version 1.9.2 (r1703836)</code>

進入文檔目錄,再次執行<code>$ svn update</code>

一切顯示正常,直到輸入完伺服器使用者名和密碼後,出現了一個新的沖突

skipped ‘0.6 external interfaces/09. printshop/welcome package loan sdfbresva - r5.0.xlsx’ – node remains in conflict at revision 1723. summary of conflicts: skipped paths: 1

最後執行以下指令解決沖突

<code>$ svn revert '0.6 external interfaces/09. printshop/welcome package loan sdfb resva - r5.0.xlsx'</code>