我想将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/files
和https:/path/to/root/path/to/changed/files
之间的差异,而不显示差异在分支和https:/path/to/root/tag/path/to/changed/files
之类的标记之间。
有没有办法做这样的工作?
答案 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
)。