【问题标题】:Mercurial ReviewBoard and post-reviewMercurial ReviewBoard 和后期审查
【发布时间】:2012-06-30 05:20:19
【问题描述】:

所以到此为止,我已经在 linux 环境中安装了审查板,我已经配置了所有内容,安装了 post-review 并且它可以工作......

不工作的是存储库。我们的存储库在某个时候从 SVN 迁移到了 mercurial,然后进行了很多粗略的文件管理,例如在没有 hg move 的情况下移动文件。因此,我想要运行一个脚本,该脚本将收集并发布包含两个以上父级的每个 cset 的评论(每个 cset 都合并到默认分支),并将其与以前的默认分支修订进行比较,以查看我的同事有哪些灾难性变化对代码做了。有点像一本历史书,当然可以安排一项工作来存储将来提出的新审查请求。

无论如何,95% 的审查后都会向我抛出错误 207,即找不到这个或那个文件(由于上面提到的 hg 误用)。不用说它是一个大仓库——考虑到它每天与其他 8 个仓库同步。

也许有一些解决方法可以跳过丢失的文件差异,只使用到目前为止的后期审查或 smt ?

我整天都在阅读各种问题单……到目前为止还没有:(

请帮忙...

附言

>>> Attempting to create review request on https: //internal.rix.com/hg/project/ for None
>>> HTTP POSTing to http: //localhost/api/review-requests/ {'repository': 'https: //internal.rix.com/hg/project/'}
>>> Review request created
>>> Uploading diff, size: 29809661
>>> HTTP POSTing to http: //localhost/api/review-requests/108/diffs/ {}
>>> Got API Error 207 (HTTP code 400): The file was not found in the repository
>>> Error data: {u'stat': u'fail', u'file': u'.hgignore', u'err': {u'msg': u'The file was not found in the repository', u'code': 207}, u'revision': u'd31d6b626628'}

".hgignore" file not found. The 26652 cset has 2 parents, it was a result of a very big merge into default branch. Actual hg diff -r 26652 -r 26651; produces: 

diff --git a/.hgignore b/.hgignore
--- a/.hgignore
+++ b/.hgignore
@@ -1,39 +1,44 @@
-syntax: re
-/target$
-/lib$
-/bin$
-.settings
-.classpath
-.metadata
-.project
-.iml
... and so on for 400k lines

【问题讨论】:

  • 你使用--revision-range吗?这对我很有效。
  • 是的,我使用 --revision-range,事情是差异是由 post-review 工具生成的,更准确地说是“hg diff -r 26652 -r 26651”生成差异,但是当它们上传到reviewboard 通过 web_api 文件未找到异常发生。我发现了一些有效的范围,但大多数情况下它只是在其他范围内刹车。
  • 但是您意识到传递给 --revision-range 的起始修订必须存在于上游/“官方” repo 中?
  • 是的,这是“克隆回购”“更新默认值”,没有任何变化,只是“审查后--修订...”在我看来一切都是合法的:/除非我不明白如何这些工具有效:)

标签: python mercurial review-board


【解决方案1】:

我也遇到过同样的问题,而且似乎——在我们的例子中——是由于将服务器端 repo 更新到了特定版本。

将服务器端存储库重置为“裸”存储库为我们解决了这个问题。

(我做了一个'hg clone -U repo newrepo'、'mv repo repo-old'、'mv newrepo repo'。)

【讨论】:

  • 什么版本的 hg 导致了您的问题?
【解决方案2】:

我认为点文件是发布到 ReviewBoard 的错误 207 的原因。

在我的情况下,当“.hgignore”文件在一次提交中发生更改时会发生错误。例如,具有一个本地(状态为“草稿”)提交的存储库,“.hgignore”和“another.cpp”文件已更改。我运行“hg postreview”(或稍后运行“hg postreview --id 1234”)并得到错误。

下一步:我拆分提交并仅更改常规文件,并且该提交可以正常发布。

【讨论】:

    猜你喜欢
    • 2011-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-01
    • 2011-08-12
    • 1970-01-01
    • 1970-01-01
    • 2023-03-23
    相关资源
    最近更新 更多