Menu

#263 "Show Unified Diff" fails until restart if cancelled

NeedsInfo
nobody
None
Medium
Defect
2010-05-23
2010-05-07
Anonymous
No

Originally created by: david.b....@gmail.com

What steps will reproduce the problem?
1. Double-click on a change ("Show Unified Diff")
2. Click the 'Cancel' button on the dialog that appears.
3. Several seconds later you will get a failure message.
4. From then on, until CommitMonitor is eventually exited and started
again, attempting to view ANY change will result in the same failure
message.

What is the expected output? What do you see instead?

I expect the 'Cancel' to immediately cancel only the current invocation,
but subsequent future invocations, even for the same change, should
continue to work if not cancelled.

What version of the product are you using? On what operating system?
1.6.7.509
Windows XP

Please provide any additional information below.

Discussion

  • Anonymous

    Anonymous - 2010-05-07

    Originally posted by: david.b....@gmail.com

    This is just a guess, but since I'm a programmer I'm hoping it's a good guess.

    I suspect the following is happening:

    Clicking the 'Cancel' button sets a "cancelled" flag (boolean), the intention of
    which is to cause the resulting Unified Diff that is retrieved to be ignored (and an
    error message to be displayed instead), and it is this "cancelled" flag that is not
    being properly reset.

    I would prefer that socket call being made to retrieve the change information be an
    asynchronous socket call which can be aborted (cancelled). This would allow
    the 'Cancel' request to more "immediately" abort the inital request (rather than
    have to wait for it to complete and then simply ignore the results).

    THE ROOT PROBLEM HOWEVER (I suspect), is simply forgetting to reset your "cancelled"
    flag.

    (But as I said this is just a guess)

     
  • Anonymous

    Anonymous - 2010-05-22

    Originally posted by: tortoisesvn

    I can not reproduce this.
    I also checked the m_bCanceled variable which is used, and it's reset before every
    call to the diff command, so that doesn't seem the reason either.

     
  • Anonymous

    Anonymous - 2010-05-23

    Originally posted by: tortoisesvn

    (No comment was entered for this change.)

    Status: NeedsInfo

     

Log in to post a comment.