目前Apache软件基金会(ASF)的绝大多少项目都是使用SubVersion 进行版本管理的,随着Git的使用日渐广泛,ASF 也开始提供Git repo供Git爱好者使用。
git svn 给我们提供了一个将SubVersion管理的项目迁移到Git上工具。由于git svn需要将Subversion中的所有提交记录都要下载到本地,如果你需要同步一个提交记录非常多(数十万条以上)的Subversion repo,那么同步过程会耗费掉你几个小时的时间,因此ASF为我们提供了Git repo。这样我们下载一个项目的git repo只需要花费几分钟的时间。
使用Git的好处很多,例如可以离线提交,分支管理,已经便捷的合并,这些都是Subversion所缺乏的。
目前的Apache Git repo只提供单向从SubVersion同步功能,也就是说你可以从Apache Git repo中下载(pull),但是不能上传(push)相关的修改内容。 对于ASF 项目的开发者来说可以通过git svn 将自己的修改内容提交到 apache 的 svn repo。对于ASF项目的其他贡献者,他可以通过git diff 生成相关的patch文件,然后提交到JIRA中供开发人员review。
具体的内容大家可以参考下面的链接