在审查委员会上发布svn分支和标签之间的差异

时间:2015-07-28 12:16:04

标签: svn review-board

我想将SVN差异发布到审核委员会; diff在分支HEAD和基本标记之间生成。

我使用此命令生成diff文件:

svn diff https:/path/to/branch/head https:/path/to/tag

请注意

  • 我尝试使用rbt diff revision1:revision2命令生成差异。我有一个问题,审查委员会只接受分支提交中的修订范围(不接受标签的修订)。

  • 我尝试使用svn diff命令进行差异,然后使用rbt post --diff-filename上传文件,但返回的命令带有需要基目录的错误;我使用rbt post --basedir https:/path/to/root将基础目录添加为根目录;审查委员会接受,但在网页上显示差异,如https:/path/to/root/branches/featureName/path/to/changed/fileshttps:/path/to/root/path/to/changed/files之间的差异,而不显示差异在分支和https:/path/to/root/tag/path/to/changed/files之类的标记之间。

    < / LI>

有没有办法做这样的工作?

1 个答案:

答案 0 :(得分:1)

您可以使用reference post命令发布此类差异。

比如说,您的Subversion存储库在审核委员会注册了以下URL:

http://svn.example.org/foo/base/group

(其中foo是噪音,base是您的存储库的基础)

然后让我们假设我们有两个标签

http://svn.example.org/foo/base/group/module/tag/abc1
http://svn.example.org/foo/base/group/module/tag/abc2

其中abc2基于abc1并引入了一些更改。

要为这些更改创建审核请求,首先,我们使用Subversion制作差异:

base=http://svn.example.org/foo/base/group
svn diff $base/module/tag/abc1 $base/module/tag/abc2 \
  > --patch-compatible > change_xyz.diff

我们可以使用rbt post发布差异,但为此,我们需要一个Subversion工作目录。空的就足够了:

svn co --depth=empty $base
cd group

rbt命令需要一些配置,以简化用户名/密码也可以存储在运行控制文件中,例如:

cat > .reviewboardrc <<EOF
REVIEWBOARD_URL = 'http://reviewboard.example.org/'
REPOSITORY = 'somerepo'
PASSWORD = 'einsfueralles'
USERNAME = 'juser'
EOF

发布差异时,rbt会根据工作目录解析diff文件中的相对路径,因此我们必须使用--basedir选项添加缺少的部分:

rbt post --diff-filename ../change_xyz.diff --basedir module/tag

如果一切正常,rbt会将差异和引用的文件上传到新的草稿并打印新的URL,例如:

http://reviewboard.example.org/r/23/
http://reviewboard.example.org/r/23/diff/

然后可以编辑草稿并最终通过Web UI发布。 rbt post命令还有几个选项可用于添加其他数据(例如--summary--description)和/或直接发布(参见--publish)。