1

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

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

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

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

我整天都在阅读各种发行票……到目前为止还没有:(

请帮忙...

ps

>>> 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
4

2 回答 2

1

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

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

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

于 2012-11-12T09:14:24.803 回答
0

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

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

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

于 2015-09-18T15:10:39.257 回答