Mercurial ReviewBoard and post-review

2019-07-29 09:39发布

so here is the story so far, I have installed review board on linux environment, I have configured everything, installed post-review and it works...

What does not work is the repository. Our repository was migrated at some point from SVN to mercurial, then there were lot of crude file management made like moving files around without hg move. So what I wanted was to run a script that would gather and post reviews for every cset containing more than two parents (every cset that was merged to default branch) and diff it with previous default branch revision to see what catastrophic changes my fellow collegues have made to the code. Sort of like a history book and of course schedule a job to store new review requests that would be made in the future.

Anyway post-review 95% of a time is throwing me error 207 that this or that file was not found (due to hg missusage mentioned above). Needless to say it is one big repo - considering it is daily synced with 8 other repositories.

Maybe there is some workaround to skip missing file diff's and just go with what post-review got so far or smt ?

I have been reading all sorts of issue tickets all day long... nothing yet so far :(

Please help...

p.s.

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

2条回答
戒情不戒烟
2楼-- · 2019-07-29 09:47

I've had the same problem, and it seems - in our case - it was due to have updated the server-side repo to a specific version.

Resetting the server-side repo to a 'bare' repository solved this problem for us.

(I did a 'hg clone -U repo newrepo', 'mv repo repo-old', 'mv newrepo repo'.)

查看更多
我只想做你的唯一
3楼-- · 2019-07-29 09:51

I think dot-file is the reason of error 207 in post to ReviewBoard.

In my case error happen when '.hgignore' file is changed in one of commits. Eg repository with one local (state 'draft') commit with '.hgignore' and 'another.cpp' files changed. I run "hg postreview" (or "hg postreview --id 1234" later) and got the error.

Next: I split commit and leave only regular file changed and that commit is posted fine.

查看更多
登录 后发表回答