Re: Unable to use git diff with post-review or diff upload.

Sett 1 216 ganger
Hopp til første uleste melding

Christian Hammond

ulest,
10. juni 2013, 04:14:5910.06.2013
til revie...@googlegroups.com
Hi,

post-review and rbt post will, by default, generate a diff from master..HEAD. If your commits on master aren't pushed, you will have problems.

Is your nearest remote branch origin/master? If so, can you be certain that origin/master matches what's shown on your gitweb?

You also generally don't want to do --parent=master. That's really intended for when you have some unpushed feature branch you're basing your change off of.

Christian

--
Christian Hammond - chi...@chipx86.com
Review Board - http://www.reviewboard.org


On Sat, Jun 8, 2013 at 2:12 PM, Safder Ali Khan <safde...@gmail.com> wrote:
We are using reviewboard successfully with SVN repos and wanted to use it for one of our git repos. I have done the setup as instructed in the documentation but I get error when uploading the diff or using post-review about revision not found. All git functionality for server communication like pull/push work fine. Need some help to get this going. Seems I am missing some basic setup. Both git centralized server and client are Linux.

ReviewBoard : 1.7.9 - installed yesterday.
git version 1.7.12.4 (On client) - SLES11SP2
git version 1.7.11.3 (On server) - RHEL6

In Repository setup:
Raw File URL (Gitweb URL): http://10.5.116.164/git/?p=test.git;a=blob_plain;f=<filename>;hb=<revision>


Error with post-review:

test> git remote -v


test> git status
# On branch master
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#       modified:   README
#       modified:   TODO
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#       test.diff
no changes added to commit (use "git add" and/or "git commit -a")



test> post-review --parent=master -d
>>> RBTools 0.5.1
>>> Python 2.6.8 (unknown, May 29 2012, 22:30:44)
[GCC 4.3.4 [gcc-4_3-branch revision 152973]]
>>> Running on Linux-3.0.42-0.7-default-x86_64-with-SuSE-11-x86_64
>>> Home = /xxx/xxxxxx
>>> Current Directory = /xxxxx/xxxxx/xxxxx/xxxx/test
>>> Checking the repository type. Errors shown below are mostly harmless.
DEBUG:root:Checking for a Subversion repository...
DEBUG:root:Running: svn info --non-interactive
DEBUG:root:Command exited with rc 1: ['svn', 'info', '--non-interactive']
svn: E155007: '/khans16/atmos/workspaces/bds/test' is not a working copy
---
DEBUG:root:Checking for a Git repository...
DEBUG:root:Running: git rev-parse --git-dir
DEBUG:root:Running: git config core.bare
DEBUG:root:Running: git rev-parse --show-toplevel
DEBUG:root:Running: git symbolic-ref -q HEAD
DEBUG:root:Running: git config --get branch.master.merge
DEBUG:root:Running: git config --get branch.master.remote
DEBUG:root:Running: git config --get remote.origin.url
DEBUG:root:repository info: Path: http://10.5.116.164/git/test.git, Base path: , Supports changesets: False
>>> Finished checking the repository type.
DEBUG:root:Running: git config --get reviewboard.url
>>> HTTP GETting api/info/
DEBUG:root:Running: git merge-base origin/master refs/heads/master
DEBUG:root:Running: git diff --no-color --full-index --no-ext-diff --ignore-submodules --no-renames master -M
DEBUG:root:Running: git diff --no-color --full-index --no-ext-diff --ignore-submodules --no-renames 241130aabad99b2f01d6dc6e82a31b12f9008268..master -M
>>> HTTP GETting api/
>>> Using the new web API
>>> Attempting to create review request on http://10.5.116.164/git/test.git for None
>>> Review request created
>>> Uploading diff, size: 536
>>> Got API Error 207 (HTTP code 400): The file was not found in the repository
>>> Error data: {u'stat': u'fail', u'file': u'README', u'err': {u'msg': u'The file was not found in the repository', u'code': 207}, u'revision': u'2461f9cf2dc3f14842bd5b8593388a90f96a7ae3'}

Error uploading diff

Your review request still exists, but the diff is not attached.


test> post-review --parent=master -n
diff --git a/README b/README
index 2461f9cf2dc3f14842bd5b8593388a90f96a7ae3..66997e8336f1340476ce8717d45a1f932212b0de 100644
--- a/README
+++ b/README
@@ -33,3 +33,4 @@ again
 last one
 email works fine
 Check format of email if user and name not set
+reviewboard integration
diff --git a/TODO b/TODO
index b78a80d493791b113975ec45424bfd4368c4d038..c111a162de698aa62a4a9dddd68234b64be433cf 100644
--- a/TODO
+++ b/TODO
@@ -15,3 +15,4 @@ Check email subject
 check subject again
 I think its working
 last check
+reviewboard integration
test>

Here is the output of git log for README..

test>git log -1 README
commit 241130aabad99b2f01d6dc6e82a31b12f9008268
Author: Safder Khan <xxxxx@xxxxxxxxxxxxxxxxxx>
Date:   Fri May 31 16:12:55 2013 +0000

    Test email format



When I try to upload the diff manually I get the following error in the GUI.

The file 'README' (r2461f9cf2dc3f14842bd5b8593388a90f96a7ae3) could not be found in the repository

Please help. I seem to have followed everything as specified in the admin docs or online but can seem to figure out the issue. 

Thanks

-Safder

--
Want to help the Review Board project? Donate today at http://www.reviewboard.org/donate/
Happy user? Let us know at http://www.reviewboard.org/users/
-~----------~----~----~----~------~----~------~--~---
To unsubscribe from this group, send email to reviewboard...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/reviewboard?hl=en
---
You received this message because you are subscribed to the Google Groups "reviewboard" group.
To unsubscribe from this group and stop receiving emails from it, send an email to reviewboard...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

Safder Ali Khan

ulest,
10. juni 2013, 14:34:1510.06.2013
til revie...@googlegroups.com, chi...@chipx86.com
Hi Christian,

I am working on the master branch and push to origin/master. All commits from master have been pushed to origin/master and it all look in sync. I can also see the README file's last push in gitweb. I am including some command output. What command is actually run when uploading diff. I can try to run it manually on the server. But from the output below it all looks to be in order.

241130aabad99b2f01d6dc6e82a31b12f9008268        HEAD

> git push
Everything up-to-date

>git log -1 README
commit 241130aabad99b2f01d6dc6e82a31b12f9008268
Author: Safder Khan <xxxxxxxxxxxxxx>
Date:   Fri May 31 16:12:55 2013 +0000

    Test email format

> git diff --full-index README
diff --git a/README b/README
index 2461f9cf2dc3f14842bd5b8593388a90f96a7ae3..66997e8336f1340476ce8717d45a1f932212b0de 100644
--- a/README
+++ b/README
@@ -33,3 +33,4 @@ again
 last one
 email works fine
 Check format of email if user and name not set
+reviewboard integration


I can see the latest commit on gitweb as well and also blob_plain for the file. I am listing the URLs from gitweb below.


authorSafder Khan <xxxxxxxxxxxxx>
Fri, 31 May 2013 12:12:55 -0400 (16:12 +0000)
committerSafder Khan <xxxxxxxxxxxxx>
Fri, 31 May 2013 12:12:55 -0400 (16:12 +0000)
commit241130aabad99b2f01d6dc6e82a31b12f9008268
tree5b3ac9dd2e937d21206d74041525be8708764c1ftree | snapshot
parenta74d3946315de033fffcd91ce0f5599eecd6170ccommit | diff
Test email format

Gitweb link for blob_plain of file.
If I pass 
which Reviewboard seems to be passing  I get a "404 Cannot find file" Error 
But 
works and gives me the file blob_plain.
So I changed the gitweb URL is review board to 
and restarted memcache but still get revision not found when I try to upload the diff. I read some other online discussions on this it seems some folks have resolved the issue by using h instead of hb but it does not work for me in reviewboard even though gitweb does display blob_plain.
"The file 'README' (r2461f9cf2dc3f14842bd5b8593388a90f96a7ae3) could not be found in the repository"
I suspect the error is displayed by some check before it even looks at the gitweb URL. Can you please let me know what reviewboard is running to verify the version so I can run it on the review board server to verify.

-Safder

Safder Ali Khan

ulest,
10. juni 2013, 15:17:3310.06.2013
til revie...@googlegroups.com, chi...@chipx86.com
One more observation. It seems that the version that needs to be passed is the commit index version and not the file index. If I navigate from gitweb via tree -> README -> history -> blob for the latest version it is displayed in this URL.


As you can see the hb=<commit index version>

-Safder

Christian Hammond

ulest,
10. juni 2013, 15:48:4710.06.2013
til revie...@googlegroups.com
We only have the blob SHA1 available, since that's what the diff gives us. You will need to use a URL that takes that. A commit SHA1 will not work.

Christian

-- 
Christian Hammond - chi...@chipx86.com
Review Board - http://www.reviewboard.org

Matthew Woehlke

ulest,
10. juni 2013, 15:54:0210.06.2013
til revie...@googlegroups.com
On 2013-06-10 15:17, Safder Ali Khan wrote:
> One more observation. It seems that the version that needs to be passed is
> the commit index version and not the file index. If I navigate from gitweb
> via tree -> README -> history -> blob for the latest version it is
> displayed in this URL.
>
> http://10.5.116.164/git/?p=test.git;a=blob;f=README;hb=241130aabad99b2f01d6dc6e82a31b12f9008268
>
> As you can see the hb=<commit index version>

As Christian indicated, RB doesn't have a commit SHA. Per
https://groups.google.com/forum/?fromgroups#!topic/reviewboard/ajn8-zQ7Zn0,
it may be that you need to use 'h=' rather than 'hb=' with your gitweb
instance.

--
Matthew

Safder Ali Khan

ulest,
10. juni 2013, 18:00:2310.06.2013
til revie...@googlegroups.com
I am getting error with h as well. In order to verify if there is some issue with the setup can you please let me know what command reviewboard is running to verify the revision. I may try to run the command manually on my reviewboard server. I ran strace as well on post-review but could not figure out why this is failing so I have set up the repo using a local clone on the RB server and have not set any RAW File URL mask. The setup with local clone works fine.

I would prefer to use the git clone URL for Path and Gitweb URL as RAW file URL mask so I don't have to worry about keeping the local repo on RB server up to date.

In order to help debug this can you please tell me what git command review board runs to check the existance of the version for a remote repo. I will try to run it manually on the RB server to see what the output is and if it is related so some server issue.

Thanks

-Safder

Matthew Woehlke

ulest,
10. juni 2013, 18:43:5610.06.2013
til revie...@googlegroups.com
On 2013-06-10 18:00, Safder Ali Khan wrote:
> In order to help debug this can you please tell me what git command review
> board runs to check the existance of the version for a remote repo. I will
> try to run it manually on the RB server to see what the output is and if it
> is related so some server issue.

RB does not run a git command. It issues an HTTP request for the raw
blob using the blob's path in the repository and the /blob's/ SHA. The
commit SHA is not known.

Where you previously stated that your gitweb expects a commit SHA is the
problem; it must be able to fetch a revision of a file using the blob
SHA, or you are out of luck.

That said, gitweb should have this capability. Usually if you are having
problems there is a problem with your raw file URL template.

--
Matthew

Safder Ali Khan

ulest,
11. juni 2013, 10:41:0711.06.2013
til revie...@googlegroups.com
Could you please give me some more detail on the HTTP request being sent. I think the issue is that that request is not getting completed sucessfully. I modified the diff file and changed the file SHA to commit SHA and got error about the commit SHA version not found. The problem could be related to the server setup and I could check and see what the http request returns.

For now i have RB working with a local clone but would like to get the gitweb setup working,

Phyo Aung Si

ulest,
13. apr. 2017, 10:50:1213.04.2017
til reviewboard, chi...@chipx86.com
This issue is very serious when reviewboard use Mask URL.

Mask url have to pass  revision id for git server. But git diff is generating hash number of the file. So when mask URL pass the hash value to git server instead of revision id , every thing gone wrong and ReviewBoard have to be nothing.
Svar alle
Svar til forfatter
Videresend
0 nye meldinger