[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: Commit dialog repeated when commit itself succeds but updating WC fails

From: Stefan Küng <tortoisesvn_at_gmail.com>
Date: Fri, 16 May 2014 17:39:31 +0200

On 16.05.2014 17:24, Niemann, Hartmut wrote:
> Hello!
> If a commit fails due to a server-side problem, the commit
> restarts (files remain checked/unchecked, commit message remains), which
> is very useful.
> Our server tends to produce SSL connection failures (way too often, but
> this is a different problem).
> I observed that there seem to be two distinct accesses to the server,
> one for the commit
> and one that seems to update the working copy.
> I saw the commit access succeed (Commit number is displayed)
> but the second access fail (with the SSL communication problem).
> I could see via our server’s web interface that the changes were truly
> committed.
> Then TortoiseSVN tries to repeat the commit (reopens the commit dialog),
> which seems to be wrong in this case,
> because the changes are already committed.
> The right thing to do seems to be to repeat the update only. (I updated
> by hand and TSVN merged
> the changes, which was trivial because server and wc content was identical.)
> Am I missing anything?
> Is TSVNs behavior correct, or would it be possible / better to
> differentiate whether the
> commit part or the update-wc part failed?
> (Tortoise SVN 1.8.6 on Win7)

The problem here is that the client does not know at what stage the
error happened, only that the commit could not finish properly.

What happens here is basically this:
1. client sends commit data
2. server saves the commit
3. server tells client that commit finished
4. client waits for the 'ok' from the server

Between 3 and 4, the 'ok' message does not get sent but there's a
network error happening.

There's no way for the client to know if the commit finished or not,
only that there was an error in the communication. But whether the
server tried to send an error indicating that the commit did not get
through, or whether it tried to send an 'ok' is unknown.

So there's no way for TSVN to know that it just has to do an update
instead or re-trying the commit.


   oo  // \\      "De Chelonian Mobile"
  (_,\/ \_/ \     TortoiseSVN
    \ \_/_\_/>    The coolest interface to (Sub)version control
    /_/   \_\     http://tortoisesvn.net
To unsubscribe from this discussion, e-mail: [users-unsubscribe_at_tortoisesvn.tigris.org].
Received on 2014-05-16 17:39:27 CEST

This is an archived mail posted to the TortoiseSVN Users mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.