使用 Git
本页面收集了关于使用 PostgreSQL Git 仓库 的各种知识。也有 其他 Git 仓库.
首先,我建议您打印一份 使用 CVS 的副本,不要阅读它;把它烧掉,这是一个很有象征意义的举动。
入门
开始的一个简单方法可能如下
git clone git://git.postgresql.org/git/postgresql.git
cd postgresql
git checkout -b my-cool-feature
$EDITOR
git diff master my-cool-feature | filterdiff --format=context > ../my-cool-feature.patch
请注意,git checkout -b my-cool-feature
会同时创建一个新分支并检出它。通常,您会在单独的分支中开发每个功能。
有关 Git 的更详细介绍,请参阅 http://git.or.cz/ 上的文档和教程。
PostgreSQL 开发人员传统上更喜欢上下文差异 (diff -c
) 而不是统一差异 (diff -u
)。至少一些您可能需要向他们提交补丁的主要提交者更喜欢上下文差异。奇怪的是,Git 无法轻松地生成上下文差异。在旧版本的 git-diff-files 手册页中,一些关于您可以使用环境变量 GIT_DIFF_OPTS
来控制此行为的说法是错误的,并在以后的版本中被删除了。
到目前为止,我们最好的解决方案是使用上面的示例中的 filterdiff
。如果您在您的操作系统上找不到包含 filterdiff 的 patchutils,请从 patchutils 项目获取它。
发布您的工作
如果您在较长的时间内开发了一个功能,您希望允许进行中间审查。传统的做法是通过电子邮件发送大型补丁。我们想要尝试的更高级的方法(参见 Peter Eisentraut 的 博客文章)是将您的 Git 分支推送到 git.postgresql.org
上的私有 (~user
) 区域,其他人可以在那里拉取您的工作,使用熟悉的 Git 工具对其进行操作,甚至可能以 Git 格式的补丁形式将改进发送给您。请写信给 mailto:[email protected] 获取帐户。
如果您在较长的时间内开发一个功能,您希望允许进行中间审查。传统的做法是通过电子邮件发送大型补丁。我们想要尝试的更高级的方法(参见 Peter Eisentraut 的 博客文章)是将您的 Git 分支推送到 git.postgresql.org
上的私有 (~user
) 区域,其他人可以在那里拉取您的工作,使用熟悉的 Git 工具对其进行操作,甚至可能以 Git 格式的补丁形式将改进发送给您。请写信给: mailto: [email protected] 获取帐户。
删除分支
一旦您的功能提交到 PostgreSQL 的 CVS,您通常可以删除您的本地分支。这可以通过以下方式完成
# switch to a different branch
git checkout master
git branch -D my-cool-feature
使用 Web 界面
尝试使用 http://git.postgresql.org/ 上的 Web 界面。它提供浏览、"blame" 功能、快照和其他高级功能,并且比 CVSweb 快得多。即使您不关心 Git 或版本控制系统,您也会喜欢使用 Web 界面。
RSS Feed
Git 服务提供 RSS Feed,报告对仓库的提交。有些人可能会发现这是一种替代订阅 pgsql-committers 邮件列表的方法。PostgreSQL 仓库的 RSS Feed 的 URL 是 http://git.postgresql.org/?p=postgresql.git;a=rss。还有其他选项可用;它们可以通过 Web 界面的 主页 找到。