2015-07-28 15 views
2

我想将SVN差异发布到评论板; diff在分支HEAD和基础标签之间生成。在svn分支和评论板上的标签之间发布差异

我用这个命令生成的差异文件:

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之类的标记之间。

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

+0

您是否可以使用SVN diff生成所需的差异文件?我认为你只有上传相同的问题才能进行审核,对吗? – Sukuva

+0

是的,我可以使用SVN diff生成差异文件。当试图上传diff文件审查董事会,但错误消息出现 错误消息示例: _ /路径/到/文件夹/分支机构/开发/功能/分支机构/开发/功能/路径/到/ file.py:文件在存储库中找不到。 (HTTP 400,API错误207)_ 您可以看到审查委员会重复两次分支的路径,这是不正确的;预计会出现类似_/path/to/folder/branches/development/feature/path/to/file.py_ 的路径,它在SVN diff文件和review-board解析之间存在问题;我不知道 谢谢@Sukuva –

+0

你可以尝试从存储库的根目录而不是单个文件生成差异吗?根目录应该与您的评论板基地址相同 – Sukuva

回答

0

您可以使用RBToolspost命令发布这样的差异。

说,例如,你的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一个DIFF:

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 

当张贴的diff的rbt解析相对路径在对工作目录的差异文件,因此,我们必须与--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)。

+0

我已经做了你上面所说的,但是问题出现在评论板的网址预览中 我可以看到如下所示的URL: [http://svn.example.org/foo/base/group/模块/标签/ abc1] 这是第一个基础部分(右侧在差异预览中) [http://svn.example.org/foo/base/abc2] 您可以看到左侧差异预览中的网址没有完整的网址 –

+0

@MuhammadYusuf,我的答案仅适用于最后一个组件不同的SVN URL - 如http://example.org/foo/tag/ abc1'和'http:// example.org/foo/tag/abc2' – maxschlepzig