我正在尝试通过reviewboard创建一个补丁文件.
这将是最初的补丁.
diff -ruN --exclude=.git empty_dir working_dir > mypatch_00.patch
有效,但我得到一个"所选文件似乎不是差异." 错误.
有没有办法让它使用git-diff或diff工作?谢谢
我知道审查委员会是开源的,我可以自己修改代码,但我想知道是否有更简单的方法.
通过"审查委员会",我的意思是生活在这里的基于网络的差异审查工具:http://www.review-board.org/
我正在尝试将我们公司一直使用的Gitlab服务器与新的ReviewBoard服务器集成.从我读过的有关ReviewBoard设置的所有内容来看,集成类似git的存储库的最简单方法是使用"原始文件URL掩码"字段(如果存储库具有Web前端).
幸运的是,Gitlab似乎支持这样一个前端,甚至还有一个记录良好的公共API:https:/// api/v2/projects // repository/commits // blob?private_token =&filepath =
在ReviewBoard的存储库设置中,可以指定可用于从git服务器检索单个文件的自定义URL.此URL有两个占位符:
不幸的是,我已经了解到Gitlab的API期望提交的SHA1,而不是单个文件和ReviewBoard,据我所知,只发送单个文件的SHA1但不提交提交的SHA1
我目前正在寻找将现有的SVN存储库转换为git,然后在允许推送之前使用Reviewboard进行评论.我最近才开始使用git并且远非专家,但是我想做的是有一个预推钩,它运行"post-review"以将更改提交给ReviewBoard.我有一个钩子工作,将执行此操作,但看起来这不会自动传播到存储库的克隆.阅读它听起来似乎没有这样做是为了防止在用户上强制执行可执行代码,但是这是一个仅限内部的存储库,我们希望强制执行此操作以及其他一些策略.有没有办法强制git将钩子传播到远程克隆,或者我们是否需要指示我们的开发人员运行将这些钩子放在其本地存储库中的东西?
谷歌搜索和阅读评论委员会的文件(和窃听同事)到目前为止还没有解决这个问题.
我正在使用Review Board(1.5)进行代码审查.在进行命令行后审查时,审核委员会在删除文件时不喜欢它(svn del,即).
换句话说,例如r1有foo.js但是r3在重组和清理不再使用的文件时删除了foo.js svn.
进行后期审核时,错误消息为:
server$ post-review --revision-range=r1:r3 --submit-as="jody"
Failed to execute command: ['svn', 'info', 'js/app.conf.js']
['js/foo.js: (Not a versioned resource)\n', '\n', 'svn: A problem occurred; see other errors for details\n']
Run Code Online (Sandbox Code Playgroud)
如何在不需要的文件的情况下进行svn del,但在没有错误的情况下继续进行后期审核?
我一直在努力通过他们的API将差异发布到ReviewBoard.我已设法登录到服务器并创建一个新帖子,但我未能正确发布diff文件的内容.
我是编写此类应用程序的新手,但我的目标是使用一步脚本:
可能是以后,该脚本可以是svn预提交钩子的一部分.
我的python尝试看起来像:
import urllib.request
import urllib.parse
import os.path
... login to the reviewboard server with
urllib.request.HTTPBasicAuthHandler ...
diff_path = '/path/to/file'
diff_name = 'my.diff'
diff_path = os.path.join(diff_path, diff_name)
diff_val = open(diff_path,'r')
# load the diff into the http data POST request
diff_header = \
'-- SoMe BoUnDaRy \n' \
+ 'Content-Disposition: form-data; name=path; filename=' \
+ '"' + diff_name + '"\n\n' \
+ diff_val.read() + '\n' \
+ '-- SoMe BoUnDaRy --'
data ={'path': diff_header, 'basedir': '/path/to/file/in/rep'} …
Run Code Online (Sandbox Code Playgroud) 我目前正在使用以下命令:
git diff --no-prefix -w trunk > my_beautiful_code.patch
Run Code Online (Sandbox Code Playgroud)
但是当我在评论板中上传差异时收到以下错误:
No valid separator after the filename was found in the diff header
Run Code Online (Sandbox Code Playgroud)
有没有办法让git做正确的事情?我相信审查板正在寻找确切的svn格式.我可以克隆svn repo,应用补丁,然后用svn制作补丁,但这很乏味,我想要一个更清洁的工作流程......
谢谢!
我想从一次提交创建审核委员会审核.
当我使用时post-review
,它会提交我的repo和master之间的所有差异.
如何将此限制为特定提交?或者特定提交中的文件?
环境:Git 存储库、Reviewboard 1.7、RBTools 0.6
我有一堆已经推送的提交,并且我想发布对这些提交的特定范围的评论,我已经使用以下语法使用以前版本的评论板完成了此操作:
post-review -o --guess-summary --guess-description --tracking-branch=Dev --revision-range=$firstCommit:$lastCommit
Run Code Online (Sandbox Code Playgroud)
在新版本中,不再支持“post-review”脚本,新语法应该是:
rbt post -d -o -g --branch Dev $firstCommit..$lastCommit
Run Code Online (Sandbox Code Playgroud)
(我也尝试过这个选项: $firstCommit:$lastCommit )此语法适用于单个提交,但范围我有:
ERROR: Error uploading diff
The file was not found in the repository (HTTP 400, API Error 207)
Your review request still exists, but the diff is not attached.
Run Code Online (Sandbox Code Playgroud)
我的目标是提出一个审查请求,其中包含从 $firstCommit 到 $lastCommit 的所有差异,有什么建议吗?
更新:
这是命令的调试输出:
>>> RBTools 0.6
>>> Python 2.7.5 (default, Aug 25 2013, 00:04:04)
[GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.0.68)]
>>> Running on Darwin-13.1.0-x86_64-i386-64bit …
Run Code Online (Sandbox Code Playgroud)