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

Reply via email to