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

SVN-4827 svn x-shelve gives E200014: Checksum mismatch

From: Daniel Sahlberg <daniel.l.sahlberg_at_gmail.com>
Date: Mon, 17 Aug 2020 22:37:50 +0200

Hi,

I've been trying to dig into shelving and bug 4827. I've been debugging the
regression test from Julian. Please excuse me if I'm making up terms for
things called something else, I'm still new at this.

As I understand it, Subversion is:
1. Checking a new WC for the shelf (.svn/experimental/shelves/v3/<encoded
name>-version.wc)
2. Applying the changes from the "normal" WC to the shelf-WC using the
delta editor

The file to be shelved is:
$Rev: 1$\n
New line\n
(where the actual change is the new line - I like Julian's self-explanatory
test code!)

The base file is :
$Rev$\n

In step 1 keyword expansion occurs so the file in the "shelf-WC":
$Rev: 1$\n

The problem seems to be that the patching in step 2 is putting the changes
in the position relative to the base file and not considering the keyword
expansion. So the file in the "shelf-WC" after patching is
$Rev: New line\n
This file matches the "actual" checksum.

The "expected" checksum is based on this file:
$Rev$\n
New line\n
(which doesn't exist except in my mail).

I guess there are two ways forward:
* To prevent keyword expansion in the "shelf-WC"
* To make sure the delta editor applies the patch relative to the expanded
keyword (in this case three bytes later in the file).

Before I try to make a patch out of this I would like to ask which way
would be prefered. It the "shelf-WC" supposed to be just like any other WC
(in that case keyword expanded), or should it receive special treatment to
work better with the delta editor?

Kind regards,
Daniel Sahlberg
Received on 2020-08-17 22:47:42 CEST

This is an archived mail posted to the Subversion Dev mailing list.