使用 Subversion (SVN) 的方式來訪問 Github

jopen 12年前發布 | 75K 次閱讀 Github Git 版本控制系統

你的開發團隊是否最近改用 Github 了嗎?可能團隊里部分人對使用 git 非常興奮,但另外一些熟悉 Subversion 的人卻很不爽?好消息是現在你可以通過 Git 和 Subversion (SVN) 的客戶端來訪問 Github 的資料庫。

這篇文章大概介紹了如何利用 Subversion 客戶端來更好的使用 GitHub 流程

Github 流程中每次功能提交和bug修復都會通過以下的步驟來完成:

  1. 從最新的 master 分支中創建一個 topic 分支
  2. 在你準備好要合并時在 topic 分支中提交
  3. 通過 Pull Request 將 topic 分支拉到 master 分支,討論變更,更多提交等等,知道團隊準備好合并
  4. 合并 Pull Request 然后發布

開始

首先要做的就是 svn checkout。Git 的 clone 讓工作目錄和資源庫文件分離開來,工作目錄在一個時間只有一個分支。而 svn checkout 是不同的,它在工作目錄中混有資源庫數據,因此你 checkout 的每個分支、標簽都有相應的工作目錄。資源庫包含大量的分支和標簽,如果把所有數據都 checkout 出來非常費帶寬,你應該只檢出某部分數據。

GitHub 通過 HTTP 協議來支持 git 和 svn 的客戶端,你可以通過 HTTP clone URL 來瀏覽資源庫中的文件。

使用 Subversion (SVN) 的方式來訪問 Github

現在可以準備 checkout 了:

  1. 首先我們 checkout 一個資源庫,并不下載任何文件:

    $ svn co --depth empty https://github.com/widgetmakers/gizmo
    Checked out revision 1.
    $ cd gizmo
  2. 然后獲取 trunk 分支,svn 中的 trunk 分支相當于 git 里的 HEAD 分支(通常是 master)

    $ svn up trunk
    A    trunk
    A    trunk/README.md
    A    trunk/gizmo.rb
    Updated to revision 1.
  3. 獲取 branches 目錄的空 checkout:

    $ svn up --depth empty branches
    Updated to revision 1.

進入 Git 流程

首先是創建一個 topic 分支,在你的 svn 客戶端中,確保 master 是當前更新的 trunk,然后使用 svn copy 來創建分支:

$ svn up trunk
At revision 1.
$ svn copy trunk branches/more_awesome
A         branches/more_awesome
$ svn commit -m 'Added more_awesome topic branch'
Adding         branches/more_awesome

Committed revision 2.

然后你可以通過 web 界面或者 git 客戶端看到一個新的分支:

使用 Subversion (SVN) 的方式來訪問 Github

$ git fetch
From https://github.com/widgetville/gizmo
 * [new branch]      more_awesome -> origin/more_awesome

編寫一些代碼

添加一些功能,修復一些 bug,然后提交,就像你平時使用 svn 一樣:編輯文件,然后 svn commit 來提交變化。

$ svn status
M       gizmo.rb
$ svn commit -m 'Guard against known problems'
Sending        more_awesome/gizmo.rb
Transmitting file data .
Committed revision 3.

$ svn status
?       test
$ svn add test
A         test
A         test/gizmo_test.rb
$ svn commit -m 'Test coverage for problems'
Adding         more_awesome/test
Adding         more_awesome/test/gizmo_test.rb
Transmitting file data .
Committed revision 4.

討論、開發、發布

當你已經準備好要將所做的改動與團隊其他人分享時,通過 web 界面來做一個 Pull Request:

  1. 進入 topic 分支,點擊 Pull Request 按鈕:
    使用 Subversion (SVN) 的方式來訪問 Github

  2. 填寫描述信息
    使用 Subversion (SVN) 的方式來訪問 Github

  3. 和團隊成員討論變更的內容,這個討論是以 Pull Request 里的評論方式進行的
    使用 Subversion (SVN) 的方式來訪問 Github

  4. 合并 Pull Request. pull request 頁面會展示這些變化是否已經合并。你只需要點擊按鈕即可完成,如果有沖突你需要先解決。使用 Subversion (SVN) 的方式來訪問 Github使用 Subversion (SVN) 的方式來訪問 Github使用 Subversion (SVN) 的方式來訪問 Github

現在你的改動已經合并到了 master 分支,你可通過 svn update 來獲取這些改動,然后開始下一階段工作。

英文原文,OSCHINA原創翻譯

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!