使用 Subversion (SVN) 的方式来访问 Github

你的开发团队是否最近改用 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 一个资源库,并不下载任何文件:

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

    ?
    1
    2
    3
    4
    5
    $ svn up trunk
    A    trunk
    A    trunk /README .md
    A    trunk /gizmo .rb
    Updated to revision 1.
  3. 获取 branches 目录的空 checkout:

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

进入 Git 流程

首先是创建一个 topic 分支,在你的 svn 客户端中,确保 master 是当前更新的 trunk,然后使用 svn copy 来创建分支:

?
1
2
3
4
5
6
7
8
$ 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

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

编写一些代码

添加一些功能,修复一些 bug,然后提交,就像你平时使用 svn 一样:编辑文件,然后 svn commit 来提交变化。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$ 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 来获取这些改动,然后开始下一阶段工作。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值