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

Muh*_*suf 5 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

有什么办法可以做这样的工作吗?

max*_*zig 1

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

举例来说,您的 Subversion 存储库已在审核委员会使用以下 URL 注册:

http://svn.example.org/foo/base/group
Run Code Online (Sandbox Code Playgroud)

(哪里foo是噪音,哪里base是你的存储库的基础)

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

http://svn.example.org/foo/base/group/module/tag/abc1
http://svn.example.org/foo/base/group/module/tag/abc2
Run Code Online (Sandbox Code Playgroud)

whereabc2是基于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
Run Code Online (Sandbox Code Playgroud)

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

svn co --depth=empty $base
cd group
Run Code Online (Sandbox Code Playgroud)

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

cat > .reviewboardrc <<EOF
REVIEWBOARD_URL = 'http://reviewboard.example.org/'
REPOSITORY = 'somerepo'
PASSWORD = 'einsfueralles'
USERNAME = 'juser'
EOF
Run Code Online (Sandbox Code Playgroud)

发布 diff 时,会rbt解析 diff 文件中相对于工作目录的相对路径,因此我们必须使用以下选项添加缺失的部分--basedir

rbt post --diff-filename ../change_xyz.diff --basedir module/tag
Run Code Online (Sandbox Code Playgroud)

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

http://reviewboard.example.org/r/23/
http://reviewboard.example.org/r/23/diff/
Run Code Online (Sandbox Code Playgroud)

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