ericmckean / rietveld

Automatically exported from code.google.com/p/rietveld
Apache License 2.0
0 stars 0 forks source link

Side by side diffs for git (with upload.py) fail with "upload in progress" or "Old chunk mismatch" #270

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. Use a git repository
2. Make some changes
3. Commit them locally
4. Upload them with : ~/upload.py --download_base 
--base_url=http://git.example.com/project.git --rev=HEAD~5
5. Try to see them through the online "side by side" diff (e.g 
http://codereview.polytechnique.org/5802024/diff/1/classes/userfilter/conditions
.inc.php )

What is the expected output? What do you see instead?
Expected output : side by side diff of the files
Instead, I get either "upload in progress" (when no base_url/download_base are 
specified) or a "side by side-like" display with a "old chunk mismatch" :
http://codereview.polytechnique.org/5951004/diff/1/modules/newsletter.php

What version of the product are you using? On what operating system?
Using latest hosted version, files are uploaded from a Debian host.

Original issue reported on code.google.com by raphael....@gmail.com on 28 Jan 2011 at 9:42

GoogleCodeExporter commented 9 years ago
Please try again without "--download_base". The review server isn't capable of 
downloading files from git repositories.

Original comment by albrecht.andi on 28 Jan 2011 at 10:01

GoogleCodeExporter commented 9 years ago
If I don't specify --download_base, I get a "upload in progress" message :
http://codereview.polytechnique.org/5854027

Command line was :
~/upload.py --server codereview.polytechnique.org 
--rev=99ec711f235ebfe45b689661efde4f4c0d77c663 
--base_url=http://git.polytechnique.org/~x2006barrois/platal.git

Original comment by raphael....@gmail.com on 28 Jan 2011 at 10:28

GoogleCodeExporter commented 9 years ago
hm, that's strange. And upload.py reports no errors ("-v", or "--noisy")?

Original comment by albrecht.andi on 28 Jan 2011 at 10:39

GoogleCodeExporter commented 9 years ago
No, nothing at all.

For the latest commit :
~/upload.py --rev=HEAD~5..HEAD --noisy -v 
--base_url=http://git.polytechnique.org/~x2006barrois/platal.git

I got :

2011-01-28 11:43:05 INFO upload.py:688 Running ['hg', 'root'] 
2011-01-28 11:43:05 INFO upload.py:688 Running ['git', 'rev-parse', 
'--is-inside-work-tree'] 
2011-01-28 11:43:05 INFO upload.py:688 Running ['git', 'ls-files', 
'--exclude-standard', '--others'] 
2011-01-28 11:43:05 INFO upload.py:688 Running ['git', 'diff', '--no-ext-diff', 
'--full-index', '-M', 'HEAD~5..HEAD'] 
2011-01-28 11:43:06 INFO upload.py:688 Running ['git', 'show', 
'HEAD:htdocs/css/nl.AX.css'] 
2011-01-28 11:43:06 INFO upload.py:688 Running ['git', 'show', 
'HEAD:htdocs/css/nl.Polytechnique.org.css'] 
2011-01-28 11:43:06 INFO upload.py:688 Running ['git', 'show', 
'17cd7eb543d7002407778f2b8bfd3e7455558a5f'] 
2011-01-28 11:43:06 INFO upload.py:688 Running ['git', 'show', 
'7f43373648eeedc2870572e2a7980ff1646f2ac5'] 
2011-01-28 11:43:06 INFO upload.py:688 Running ['git', 'show', 
'1bb758b9dfe472ccbba888cb774d68e759473a3a'] 
2011-01-28 11:43:06 INFO upload.py:688 Running ['git', 'show', 
'0260463f9c4b625d318bbbaf4769784ac5c4c9f5'] 
2011-01-28 11:43:06 INFO upload.py:688 Running ['git', 'show', 
'bb159fb1ffc004713dd64fe2305c64446af73e85'] 
2011-01-28 11:43:06 INFO upload.py:688 Running ['git', 'show', 
'f2b442eac1b0929afa8fb32fa84732fd56a1fd5f'] 
2011-01-28 11:43:06 INFO upload.py:688 Running ['git', 'show', 
'b634f6e991811aba513628c2fff8a4ebdec16d37'] 
2011-01-28 11:43:06 INFO upload.py:688 Running ['git', 'show', 
'522403e63d8e2eb6c33bbfc080abfdde806225e0'] 
2011-01-28 11:43:06 INFO upload.py:688 Running ['git', 'show', 
'51e7042fea0e8176bede154a8383b16222f43bcb'] 
2011-01-28 11:43:06 INFO upload.py:688 Running ['git', 'show', 
'6912d5b859d112171be65669999053ffb1e02905'] 
2011-01-28 11:43:06 INFO upload.py:688 Running ['git', 'show', 
'bda1f5f954c21584d32bb2257a781b7b9090f1c4'] 
2011-01-28 11:43:06 INFO upload.py:688 Running ['git', 'show', 
'ff6469510be5438be672c6d188c81ace6f70ac61'] 
2011-01-28 11:43:06 INFO upload.py:688 Running ['git', 'show', 
'1d1ea52d393aa6f4e789e196306d11042627eb5e'] 
2011-01-28 11:43:06 INFO upload.py:688 Running ['git', 'show', 
'b861e52e76ac9c5faf6ede9794e135c189a3d45d'] 
2011-01-28 11:43:06 INFO upload.py:688 Running ['git', 'show', 
'd9e53a400ddfe9a620fee11e571b3656ebb2c622']
Upload server: codereview.polytechnique.org (change with -s/--server)
New issue subject: Rewrite the Newsletter module.
Loaded authentication cookies from /home/x2006barrois/.codereview_upload_cookies
2011-01-28 11:43:15 INFO upload.py:206 Server: 
http://codereview.polytechnique.org 
Issue created. URL: http://codereview.polytechnique.org/5830028
Uploading base file for htdocs/css/nl.Polytechnique.org.css
Uploading base file for templates/newsletter/edit.tpl
Uploading base file for templates/include/form.valid.edit-nl.tpl
Uploading base file for upgrade/1.1.0/20_newsletter.sql
Uploading base file for templates/newsletter/admin_all.tpl
Uploading base file for templates/skin/common.menu.tpl
Uploading base file for htdocs/css/nl.AX.css
Uploading base file for templates/axletter/index.tpl
Uploading base file for templates/axletter/edit.tpl
Uploading base file for templates/newsletter/nl.AX.mail.tpl
Uploading base file for templates/newsletter/admin.tpl
Uploading base file for templates/include/massmailer-nav.tpl
Uploading base file for templates/newsletter/index.tpl
Uploading base file for templates/admin/index.tpl
Uploading base file for templates/axletter/admin.tpl
Uploading base file for templates/newsletter/show.tpl
Uploading base file for templates/newsletter/nl.Polytechnique.org.mail.tpl
Uploading base file for templates/axletter/show.tpl

Original comment by raphael....@gmail.com on 28 Jan 2011 at 10:45

GoogleCodeExporter commented 9 years ago
The output looks fine. Tagging this issue as "hosted", maybe this need some 
further investigation.

Original comment by albrecht.andi on 28 Jan 2011 at 10:58

GoogleCodeExporter commented 9 years ago
I have the same problem on appspot ; it seems that the upload.py script is 
unable to find the base version for some of the files.

On http://codereview.appspot.com/4097044, there is no "M/A/D" flag for half the 
files, for which I get a "error in progress" message.

Original comment by raphael....@gmail.com on 28 Jan 2011 at 11:01

GoogleCodeExporter commented 9 years ago
And the only files for which no base file is available are .php files....

Original comment by raphael....@gmail.com on 28 Jan 2011 at 11:09

GoogleCodeExporter commented 9 years ago
OK, found the source of the problem :
In upload.py, around line 860, in the IsBinary() function, you are using the 
result from mimetypes.guess_type(), which replies with 
"application/x-httpd-php" for PHP.

This could be fixed by updating the 'TEXT_MIMETYPES' on line 98 of upload.py.

Original comment by raphael....@gmail.com on 28 Jan 2011 at 11:13

GoogleCodeExporter commented 9 years ago
Cool! Thanks for tracking this down. This is really a nasty issue :)

Original comment by albrecht.andi on 28 Jan 2011 at 11:18

GoogleCodeExporter commented 9 years ago
By the way, why don't you use the output from git diff to find out whether a 
file is binary ?
(e.g you get "Binary files a/foo/bar.jpg and b/foo/bar.jpg differ" in the git 
diff output)

Original comment by raphael....@gmail.com on 28 Jan 2011 at 11:26

GoogleCodeExporter commented 9 years ago
That's an interesting idea. ATM there's no backend-specific implementation and 
the git backend falls back to the default mechanism defined in the base class.

Original comment by albrecht.andi on 28 Jan 2011 at 11:30

GoogleCodeExporter commented 9 years ago

Original comment by albrecht.andi on 6 Apr 2012 at 6:31