Re: It's too easy to upload diffs "wrongly"

2013-01-09 Thread Will
Christian, It's great to hear this issue is being taken seriously.

While we wait for UI improvements, could the documentation be updated to 
explain the correct usage?
Specifically, could the information in my "how to submit diffs" attachment 
be added to this page:
http://www.reviewboard.org/docs/manual/dev/users/review-requests/creating/#review-requests-for-diffs

Brian, I'm also attaching a list of the changes I made.
I created the diff manually just to illustrate what was modified.

Thanks

Will


On Tuesday, 4 December 2012 07:29:41 UTC, Christian Hammond wrote:
>
> Hi Brian,
>
> I'm sorry you took the answer of "use post-review" as a kind of "this is 
> the only solution because we don't want to work on this page" answer. I do 
> think there's much room for improvement on this page.
>
> I'd like to go over what I see as a couple of the main challenges we face 
> that prevents this from being as smooth today as we all like. I hope you'll 
> understand that this isn't always trivial and requires some thought. (Plus 
> there's lots of room for improvement throughout the product, and we're 
> trying to get to what we can.)
>
> 1) Depending on the revision control system, diffs need to be generated 
> from post-review anyway. Not everything generates a diff with enough 
> information to be able to locate the correct revision to fetch, which is 
> needed for generating the side-by-side diff.
>
> Now, for things like Git, we're (generally) good, assuming --full-index 
> was passed to 'git diff'. Subversion works okay too, so long as you know 
> what to put for the base diff path (another issue we have to work around). 
> For others, like Perforce, we actually have to generate a diff on the 
> user's behalf, because a standard Perforce diff isn't good enough.
>
> This is one of the main reasons we strongly encourage using post-review. 
> We have a better chance of being able to separate user error 
> from compatibility problems or something else. So we always recommend it.
>
> 2) It would be awesome to verify a diff first. We can't reliably do that 
> right now.
>
> A diff can be large, and many are. A diff touching 30 files means we have 
> to fetch 30 files and attempt a patch. If the repository is at all being 
> slow, or the files are large, this can easily take longer than the diff 
> timeout period. So an upload would appear to be slow, and a would sometimes 
> just fail. Furthermore, it would block a server thread for a while.
>
> In the early days, we had this problem with the diff viewer. We had to 
> change things to dynamically fetch each diff, one at a time.
>
> Down the road, what we would like to do is be able to offload diff 
> processing, but that still won't solve this problem directly. We may want 
> to consider a whole new UI at that point, because then, we won't even be 
> able to verify a diff right away (but we could present some diff patching 
> error as some banner on the review request before it's published). Things 
> to consider.
>
>
> Now, we all want this page to be better, and I try to think about it on 
> occasion. Honestly, I do think the only consistent solution is better tools 
> and integration, because we can't always guarantee a user's diff will work 
> otherwise (see #1 above).
>
> Better education and per-repository usage information would help a lot, 
> and I'd like to do this for 1.7.x (it won't happen for 1.7.0). For example, 
> select Git and it'll tell you how to generate the diff. Select Perforce, 
> and it'll tell you you must use post-review. Things like that.
>
> One of our big next tasks is good DVCS support, which will mean better 
> integration with forks of repositories. I'm hoping some of that will make 
> this nicer, but that work hasn't started yet.
>
> Christian
>
>
> -- 
> Christian Hammond - chi...@chipx86.com 
> Review Board - http://www.reviewboard.org
> VMware, Inc. - http://www.vmware.com
>
>
> On Mon, Dec 3, 2012 at 10:52 PM, Brian Armstrong 
> 
> > wrote:
>
>> I think the interface for uploading diffs is very minimalistic and vague 
>> about what to do.  The first time, without fail, any of our developers have 
>> tried to use the upload diff interface it has failed to work properly and 
>> results in an error about not being able to apply the diff or being unable 
>> to find the parent revision.  This has led to me spending time with each of 
>> these developers to train them how to properly upload diffs.  I'd say 
>> something there is very broken if it doesn't work like people are expecting 
>> it to work and it doesn't have a clear explanation of what it is expecting.
>>
>> Also, if the diff can't be applied properly, it should show an error on 
>> the upload screen about it.  They shouldn't have to click "view diff" every 
>> time to make sure it uploaded correctly.
>>
>> I think saying "the fix for the confusing interface is to not use the 
>> interface and to use the command line tool instead" is not actually a 
>> solution to the proble

Re: It's too easy to upload diffs "wrongly"

2012-12-03 Thread Christian Hammond
Hi Brian,

I'm sorry you took the answer of "use post-review" as a kind of "this is
the only solution because we don't want to work on this page" answer. I do
think there's much room for improvement on this page.

I'd like to go over what I see as a couple of the main challenges we face
that prevents this from being as smooth today as we all like. I hope you'll
understand that this isn't always trivial and requires some thought. (Plus
there's lots of room for improvement throughout the product, and we're
trying to get to what we can.)

1) Depending on the revision control system, diffs need to be generated
from post-review anyway. Not everything generates a diff with enough
information to be able to locate the correct revision to fetch, which is
needed for generating the side-by-side diff.

Now, for things like Git, we're (generally) good, assuming --full-index was
passed to 'git diff'. Subversion works okay too, so long as you know what
to put for the base diff path (another issue we have to work around). For
others, like Perforce, we actually have to generate a diff on the user's
behalf, because a standard Perforce diff isn't good enough.

This is one of the main reasons we strongly encourage using post-review. We
have a better chance of being able to separate user error
from compatibility problems or something else. So we always recommend it.

2) It would be awesome to verify a diff first. We can't reliably do that
right now.

A diff can be large, and many are. A diff touching 30 files means we have
to fetch 30 files and attempt a patch. If the repository is at all being
slow, or the files are large, this can easily take longer than the diff
timeout period. So an upload would appear to be slow, and a would sometimes
just fail. Furthermore, it would block a server thread for a while.

In the early days, we had this problem with the diff viewer. We had to
change things to dynamically fetch each diff, one at a time.

Down the road, what we would like to do is be able to offload diff
processing, but that still won't solve this problem directly. We may want
to consider a whole new UI at that point, because then, we won't even be
able to verify a diff right away (but we could present some diff patching
error as some banner on the review request before it's published). Things
to consider.


Now, we all want this page to be better, and I try to think about it on
occasion. Honestly, I do think the only consistent solution is better tools
and integration, because we can't always guarantee a user's diff will work
otherwise (see #1 above).

Better education and per-repository usage information would help a lot, and
I'd like to do this for 1.7.x (it won't happen for 1.7.0). For example,
select Git and it'll tell you how to generate the diff. Select Perforce,
and it'll tell you you must use post-review. Things like that.

One of our big next tasks is good DVCS support, which will mean better
integration with forks of repositories. I'm hoping some of that will make
this nicer, but that work hasn't started yet.

Christian


-- 
Christian Hammond - chip...@chipx86.com
Review Board - http://www.reviewboard.org
VMware, Inc. - http://www.vmware.com


On Mon, Dec 3, 2012 at 10:52 PM, Brian Armstrong  wrote:

> I think the interface for uploading diffs is very minimalistic and vague
> about what to do.  The first time, without fail, any of our developers have
> tried to use the upload diff interface it has failed to work properly and
> results in an error about not being able to apply the diff or being unable
> to find the parent revision.  This has led to me spending time with each of
> these developers to train them how to properly upload diffs.  I'd say
> something there is very broken if it doesn't work like people are expecting
> it to work and it doesn't have a clear explanation of what it is expecting.
>
> Also, if the diff can't be applied properly, it should show an error on
> the upload screen about it.  They shouldn't have to click "view diff" every
> time to make sure it uploaded correctly.
>
> I think saying "the fix for the confusing interface is to not use the
> interface and to use the command line tool instead" is not actually a
> solution to the problem.  It is also not an option for everyone (like our
> Skins team who just does CSS and Javascript and is scared of the command
> line).
>
> We have them using reviewboard, but they will only upload their diffs
> manually.  They have run into this same kind of problem, and it just makes
> the tool "overly complicated" and "not worth the time to learn".
>
> Giving this kind of "solution" to a problem is not only insufficient, but
> it also shows that the problem is real and the tool is lacking in
> functionality and clearness.  If it's not understandable and usable, then
> it's broken.  If it's broken, then it needs to be fixed.  The correct "fix"
> should not be "use something else".
>
> That being said, it is open source, so I'd love to see the diff of changes

RE: It's too easy to upload diffs "wrongly"

2012-12-03 Thread Elardus Erasmus
You do not need them to run post-review from the command line themselves. Our 
users work on windows (server is on unix) and I have a script that does all the 
"hard" work. All the users need to do is right click on the main source folder 
and choose between these two options (added to the list via a registry key):

-  Review request

-  Update review request

The former will create the review request without any additional action(s) 
required by the user, and the latter will ask for the review request number to 
update. Easy. At least depending on what your needs are.

Regards,
Elardus




Elardus Erasmus
DigiCore Technologies (Pty) Ltd
Embedded Software Engineer
 [cid:imageafc275.JPG@f8006872.59244af5]
Tel: +27 12 450 2272 * Fax: +27 12 450 2311
Email: elard...@digicore.co.za * Website: 
www.ctrack.co.za<http://www.ctrack.co.za/> * Email 
Disclaimer<http://www.ctrack.co.za/about_ctrack/email_signature_disclaimer.aspx>



From: reviewboard@googlegroups.com [mailto:reviewboard@googlegroups.com] On 
Behalf Of Brian Armstrong
Sent: 04 December 2012 08:52
To: reviewboard@googlegroups.com
Subject: Re: It's too easy to upload diffs "wrongly"

I think the interface for uploading diffs is very minimalistic and vague about 
what to do.  The first time, without fail, any of our developers have tried to 
use the upload diff interface it has failed to work properly and results in an 
error about not being able to apply the diff or being unable to find the parent 
revision.  This has led to me spending time with each of these developers to 
train them how to properly upload diffs.  I'd say something there is very 
broken if it doesn't work like people are expecting it to work and it doesn't 
have a clear explanation of what it is expecting.

Also, if the diff can't be applied properly, it should show an error on the 
upload screen about it.  They shouldn't have to click "view diff" every time to 
make sure it uploaded correctly.

I think saying "the fix for the confusing interface is to not use the interface 
and to use the command line tool instead" is not actually a solution to the 
problem.  It is also not an option for everyone (like our Skins team who just 
does CSS and Javascript and is scared of the command line).

We have them using reviewboard, but they will only upload their diffs manually. 
 They have run into this same kind of problem, and it just makes the tool 
"overly complicated" and "not worth the time to learn".

Giving this kind of "solution" to a problem is not only insufficient, but it 
also shows that the problem is real and the tool is lacking in functionality 
and clearness.  If it's not understandable and usable, then it's broken.  If 
it's broken, then it needs to be fixed.  The correct "fix" should not be "use 
something else".

That being said, it is open source, so I'd love to see the diff of changes that 
Will made.  They'd probably be helpful for our users too.

On Friday, November 30, 2012 3:53:20 PM UTC-7, David Trowbridge wrote:
It's correct to upload full diffs. The best way to do this is to use the 
post-review tool, which (with no arguments) will do the right thing.

-David


-David

On Fri, Nov 30, 2012 at 2:49 PM, Will > wrote:
So... don't any users know how whether it's correct to upload full diffs or 
partial diffs?



On Thursday, 22 November 2012 12:44:25 UTC, Will wrote:
Where is it described in the documentation the correct way to make several 
diffs and upload them incrementally?

We had a situation where one of our developers only uploaded partial diffs each 
time (just the changes since the last time he uploaded a diff), meaning there 
was no way to see his complete set of diffs together.
I don't blame him because how was he supposed to know not to do that?
We ended up hacking some extra instructions into the "add review" template and 
marking them bold red to try and prevent people doing this.

ReviewBoard assumes all diffs are complete (from first commit to last), and it 
figures out the rest, allowing reviewers to easily drill down by revision if 
they want.
If any of the uploaded diffs are not complete, then reviewers can completely 
miss changes that were made.

a) where is the "right" way to add diffs documented?

b) shouldn't reviewboard make it a lot more difficult to upload diffs "wrongly"

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



--
Want to help the Review Board project? Donate today at 
ht

Re: It's too easy to upload diffs "wrongly"

2012-12-03 Thread Brian Armstrong
I think the interface for uploading diffs is very minimalistic and vague 
about what to do.  The first time, without fail, any of our developers have 
tried to use the upload diff interface it has failed to work properly and 
results in an error about not being able to apply the diff or being unable 
to find the parent revision.  This has led to me spending time with each of 
these developers to train them how to properly upload diffs.  I'd say 
something there is very broken if it doesn't work like people are expecting 
it to work and it doesn't have a clear explanation of what it is expecting.

Also, if the diff can't be applied properly, it should show an error on the 
upload screen about it.  They shouldn't have to click "view diff" every 
time to make sure it uploaded correctly.

I think saying "the fix for the confusing interface is to not use the 
interface and to use the command line tool instead" is not actually a 
solution to the problem.  It is also not an option for everyone (like our 
Skins team who just does CSS and Javascript and is scared of the command 
line).

We have them using reviewboard, but they will only upload their diffs 
manually.  They have run into this same kind of problem, and it just makes 
the tool "overly complicated" and "not worth the time to learn".

Giving this kind of "solution" to a problem is not only insufficient, but 
it also shows that the problem is real and the tool is lacking in 
functionality and clearness.  If it's not understandable and usable, then 
it's broken.  If it's broken, then it needs to be fixed.  The correct "fix" 
should not be "use something else".

That being said, it is open source, so I'd love to see the diff of changes 
that Will made.  They'd probably be helpful for our users too.

On Friday, November 30, 2012 3:53:20 PM UTC-7, David Trowbridge wrote:
>
> It's correct to upload full diffs. The best way to do this is to use the 
> post-review tool, which (with no arguments) will do the right thing.
>
> -David
>
>
> -David
>
>
> On Fri, Nov 30, 2012 at 2:49 PM, Will >wrote:
>
>> So... don't any users know how whether it's correct to upload full diffs 
>> or partial diffs?
>>
>>
>>
>> On Thursday, 22 November 2012 12:44:25 UTC, Will wrote:
>>>
>>> Where is it described in the documentation the correct way to make 
>>> several diffs and upload them incrementally?
>>>
>>> We had a situation where one of our developers only uploaded partial 
>>> diffs each time (just the changes since the last time he uploaded a diff), 
>>> meaning there was no way to see his complete set of diffs together.
>>> I don't blame him because how was he supposed to know not to do that?
>>> We ended up hacking some extra instructions into the "add review" 
>>> template and marking them bold red to try and prevent people doing this.
>>>
>>> ReviewBoard assumes all diffs are complete (from first commit to last), 
>>> and it figures out the rest, allowing reviewers to easily drill down by 
>>> revision if they want.
>>> If any of the uploaded diffs are not complete, then reviewers can 
>>> completely miss changes that were made.
>>>
>>> a) where is the "right" way to add diffs documented?
>>>
>>> b) shouldn't reviewboard make it a lot more difficult to upload diffs 
>>> "wrongly"
>>>
>>>   -- 
>> 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
>>  
>>  
>>
>
>

-- 
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+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/reviewboard?hl=en




Re: It's too easy to upload diffs "wrongly"

2012-11-30 Thread David Trowbridge
It's correct to upload full diffs. The best way to do this is to use the
post-review tool, which (with no arguments) will do the right thing.

-David


-David


On Fri, Nov 30, 2012 at 2:49 PM, Will  wrote:

> So... don't any users know how whether it's correct to upload full diffs
> or partial diffs?
>
>
>
> On Thursday, 22 November 2012 12:44:25 UTC, Will wrote:
>>
>> Where is it described in the documentation the correct way to make
>> several diffs and upload them incrementally?
>>
>> We had a situation where one of our developers only uploaded partial
>> diffs each time (just the changes since the last time he uploaded a diff),
>> meaning there was no way to see his complete set of diffs together.
>> I don't blame him because how was he supposed to know not to do that?
>> We ended up hacking some extra instructions into the "add review"
>> template and marking them bold red to try and prevent people doing this.
>>
>> ReviewBoard assumes all diffs are complete (from first commit to last),
>> and it figures out the rest, allowing reviewers to easily drill down by
>> revision if they want.
>> If any of the uploaded diffs are not complete, then reviewers can
>> completely miss changes that were made.
>>
>> a) where is the "right" way to add diffs documented?
>>
>> b) shouldn't reviewboard make it a lot more difficult to upload diffs
>> "wrongly"
>>
>>  --
> 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+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/reviewboard?hl=en
>
>
>

-- 
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+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/reviewboard?hl=en




Re: It's too easy to upload diffs "wrongly"

2012-11-30 Thread Will
So... don't any users know how whether it's correct to upload full diffs or 
partial diffs?



On Thursday, 22 November 2012 12:44:25 UTC, Will wrote:
>
> Where is it described in the documentation the correct way to make several 
> diffs and upload them incrementally?
>
> We had a situation where one of our developers only uploaded partial diffs 
> each time (just the changes since the last time he uploaded a diff), 
> meaning there was no way to see his complete set of diffs together.
> I don't blame him because how was he supposed to know not to do that?
> We ended up hacking some extra instructions into the "add review" template 
> and marking them bold red to try and prevent people doing this.
>
> ReviewBoard assumes all diffs are complete (from first commit to last), 
> and it figures out the rest, allowing reviewers to easily drill down by 
> revision if they want.
> If any of the uploaded diffs are not complete, then reviewers can 
> completely miss changes that were made.
>
> a) where is the "right" way to add diffs documented?
>
> b) shouldn't reviewboard make it a lot more difficult to upload diffs 
> "wrongly"
>
>

-- 
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+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/reviewboard?hl=en