使用 Subversion (SVN) 的方式来访问 Github 已翻译 100%

王振威 投递于 2012/11/27 16:36 (共 8 段, 翻译完成于 11-27)
阅读 4354
收藏 3
1
加载中

你的开发团队是否最近改用 Github 了吗?可能团队里部分人对使用 git 非常兴奋,但另外一些熟悉 Subversion 的人却很不爽?好消息是现在你可以通过 Git 和 Subversion (SVN) 的客户端来访问 Github 的资料库。

这篇文章大概介绍了如何利用 Subversion 客户端来更好的使用 GitHub 流程

Github 流程中每次功能提交和bug修复都会通过以下的步骤来完成:

  1. 从最新的 master 分支中创建一个 topic 分支
  2. 在你准备好要合并时在 topic 分支中提交
  3. 通过 Pull Request 将 topic 分支拉到 master 分支,讨论变更,更多提交等等,知道团队准备好合并
  4. 合并 Pull Request 然后发布
王振威
翻译于 2012/11/27 16:36
1

开始

首先要做的就是 svn checkout。Git 的 clone 让工作目录和资源库文件分离开来,工作目录在一个时间只有一个分支。而 svn checkout 是不同的,它在工作目录中混有资源库数据,因此你 checkout 的每个分支、标签都有相应的工作目录。资源库包含大量的分支和标签,如果把所有数据都 checkout 出来非常费带宽,你应该只检出某部分数据。

王振威
翻译于 2012/11/27 16:36
1

GitHub 通过 HTTP 协议来支持 git 和 svn 的客户端,你可以通过 HTTP clone URL 来浏览资源库中的文件。

repo-snapshot

现在可以准备 checkout 了:

首先我们 checkout 一个资源库,并不下载任何文件:

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

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

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

王振威
翻译于 2012/11/27 16:37
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 客户端看到一个新的分支:

branch-snapshot

$ git fetch
From https://github.com/widgetville/gizmo
 * [new branch]      more_awesome -> origin/more_awesome
王振威
翻译于 2012/11/27 16:39
1

编写一些代码

添加一些功能,修复一些 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.
王振威
翻译于 2012/11/27 16:39
1

讨论、开发、发布

当你已经准备好要将所做的改动与团队其他人分享时,通过 web 界面来做一个 Pull Request:

  1. 进入 topic 分支,点击 Pull Request 按钮:
    pr-create

  2. 填写描述信息
    pr-describe

  3. 和团队成员讨论变更的内容,这个讨论是以 Pull Request 里的评论方式进行的
    pr-discuss

王振威
翻译于 2012/11/27 16:42
1
  • 合并 Pull Request. pull request 页面会展示这些变化是否已经合并。你只需要点击按钮即可完成,如果有冲突你需要先解决。pr-merge1pr-merge2pr-closed

  • 王振威
    翻译于 2012/11/27 16:42
    1

    现在你的改动已经合并到了 master 分支,你可通过 svn update 来获取这些改动,然后开始下一阶段工作。

    王振威
    翻译于 2012/11/27 16:41
    1
    本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接。
    我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。
    加载中

    评论(0)

    返回顶部
    顶部