【发布时间】: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