On Mon, Dec 14, 2009 at 2:05 PM, Jacob Weber <jacob_at_jacobweber.com> wrote:
> Sometimes when I commit a very large merge (around 1000 changes) using Subclipse, I get the following error:
>
> Transmitting file data ...
> RA layer request failed
> svn: Commit failed (details follow):
> svn: MERGE of '/path/to/trunk': timed out waiting for server (https://svnserver)
>
> The thing is, the commit actually succeeded; I can see the new version using svn log.
>
> But it seems like Subclipse wasn't informed of the successful commit. So it thinks it's at the previous version. If
> I try to update, it will see all the changes from the merge as conflicts. As a result, the working copy is completely
> useless, and must be deleted.
>
> Looking in the Apache logs for my SVN 1.6.5 server, I see this (it appears a few minutes after I get the error):
>
> [Mon Dec 14 13:23:19 2009] [error] [client 1.2.3.4] Could not MERGE resource "/repos/!svn/act/fa1bb793-cd6f-1c4a-84a
> f-4ffdd268ac25" into "/path/to/trunk". [500, #0]
> [Mon Dec 14 13:23:19 2009] [error] [client 1.2.3.4] Error constructing resource list. [500, #104]
> [Mon Dec 14 13:23:19 2009] [error] [client 1.2.3.4] Can't write response to output: Connection reset by peer [500
> , #104]
>
> Any idea what could cause this? Is Subclipse closing the connection after a certain timeout period? I haven't
> seen it happen using the command line SVN client.
This would have to be a Subversion bug, although if you are using
SVNKit, then perhaps it does not drive the commit quite the same and
the bug is in SVNKit and Subversion.
It seems odd that you would get this error and the commit would be
present, since the error seems to indicate otherwise.
BTW, in this case MERGE is a DAV method and actually has nothing to do
with an SVN merge. From:
http://svn.apache.org/repos/asf/subversion/trunk/notes/webdav-protocol
Write Commands : (MKACTIVITY, PROPPATCH, PUT, CHECKOUT, MKCOL, MOVE,
-------------- COPY, DELETE, LOCK, UNLOCK, MERGE)
With the exception of LOCK/UNLOCK, every write command performs some
sort of DeltaV commit operation. In DeltaV, a commit always starts
by creating a transaction (MKACTIVITY), applies a log message
(PROPPATCH), does some other write methods, and then ends by
committing the transaction (MERGE). If the MERGE fails, the client
may try to remove the transaction with a DELETE.
* svn commit:
ra_neon: OPTIONS, PROPFIND, MKACTIVITY,
{CHECKOUT, COPY, MOVE, DELETE, PROPPATCH, PUT, MKCOL},
MERGE (DELETE)
ra_serf: OPTIONS to acquire activity collection set
(no major MKACTIVITY to a unique UUID relative to activity set
differences) PROPFIND to get what we think our baseline is
CHECKOUT of baseline revision into activity
Setting log: PROPPATCH on root directory
Delete a file: CHECKOUT file / DELETE
Add a dir: MKCOL
Add a file: CHECKOUT parent dirs / PUT raw-file
Edit a file: CHECKOUT file / PUT svndiff stream
End commit: MERGE activity, DELETE activity
--
Thanks
Mark Phippard
http://markphip.blogspot.com/
------------------------------------------------------
http://subclipse.tigris.org/ds/viewMessage.do?dsForumId=1047&dsMessageId=2430356
To unsubscribe from this discussion, e-mail: [users-unsubscribe_at_subclipse.tigris.org].
Received on 2009-12-14 20:18:44 CET