On Thu, Apr 24, 2008 at 1:32 PM, Simon Nash <[EMAIL PROTECTED]> wrote:
> Luciano Resende wrote: > > > My understanding is that expanded keywords are not considered in svn > > diff, commit, etc, and it's more like a local visual piece of > > information. > > > > From [1], here is a little info on the subject. > > > > > > > "Keywords and Spurious Differences > > > > The user-visible result of keyword substitution might lead you to > > think that every version of a file with that feature in use differs > > from the previous version in at least the area where the keyword > > anchor was placed. However, this is actually not the case. While > > checking for local modifications during svn diff, and before > > transmitting those local modifications during svn commit, Subversion > > "un-substitutes" any keywords that it previously substituted. The > > result is that the versions of the file that are stored in the > > repository contain only the real modifications that users make to the > > file." > > > > [1] http://svnbook.red-bean.com/en/1.1/ch07s02.html > > > > Thanks for providing the missing piece of the puzzle to explain > my recent experience. svn does this when producing a patch, but > the "patch" tool is not aware of these keywords and cannot adjust > for them when I apply the patch to a different level of code. > > Here's the problem that I ran into. > 1. Check out a file at version x. The keywords are expanded > to indicate version x. > 2. Make a change near the version line. > 3. Produce a patch using svn diff. The version keywords are > automatically unsubstituted by svn in the patch lines that > provide surrounding positional context for the change. > 4. Check out the file again at version y. It doesn't matter > whether y > x or y == x. > 5. Use "patch" to apply the patch produced in step 3 to the > file checked out in step 4. This will fail because the > surrounding context lines in the patch have unexpanded > keywords, but the same lines in the file that was checked > out in step 4 have the keywords expanded. I use TortoiseSVN to apply patches and I don't recall running into this kind of problem. May be it is a problem with the patch command?? > > > I think there are two possible solutions to this. Either I > can recover from the failure when it occurs by manually > expanding or unexpanding keywords in the patch or base file > to force the surrounding context lines to match, or I can > avoid the issue by setting my svn config to disable keyword > expansion when I do checkouts. I'd be more inclined to do > the second than the first, but this calls into question the > value of having these keywords in our source files. > > Simon > > > On Wed, Apr 23, 2008 at 5:45 AM, Simon Nash <[EMAIL PROTECTED]> wrote: > > > > > Mark Combellack wrote: > > > > > > Hi Simon, > > > > > > > > Have you recently changed your Subversion configuration file to > > > > enable SVN > > > > keyword expansion? The file in question is located: > > > > > > > > Windows %USERPROFILE%\Application Data\Subversion\config > > > > Linux ~/.subversion/config > > > > > > > > The value in question is enable-auto-props. If this is set to yes > > > > then it > > > > will expand keywords. By default this value is set to no. > > > > > > > > There were discussions on the dev list about this around the end of > > > > March > > > > beginning of April. See: > > > > > > > > > > > > http://www.mail-archive.com/[email protected]/msg29637.html > > > > > > > > http://www.mail-archive.com/[email protected]/msg29781.html > > > > These discussions suggested changing the SVN config to enable > > > > keyword > > > > expansion. > > > > > > > > Perhaps this is the cause of the problem? > > > > > > > > Mark > > > > > > > > > > > > Thanks for the explanation. If I understand this correctly, this > > > configuration setting will cause these keywords to expand differently > > > every time an update is made to the file. This will cause problems > > > when applying a patch derived from an earlier checked out version > > > of the file to a later checked out version, if the patch happens to > > > include this line and if any updates have been made elsewhere in > > > the file between the two checkouts. > > > > > > This won't occur very often, but it did happen to me today, and it > > > is a nuisance having to work around it by reverse engineering the > > > patch. > > > > > > Simon > > > > > > > > > > > > > > > -----Original Message----- > > > > > From: Simon Nash [mailto:[EMAIL PROTECTED] > > > > > Sent: 23 April 2008 10:16 > > > > > To: tuscany-dev > > > > > Subject: SVN version keyword expansion > > > > > > > > > > On April 1, I checked out a file from SVN. Its version keywords > > > > > were not expanded in my local copy. Yesterday I checked out the > > > > > same file and the version keywords were expanded. This caused my > > > > > attempt to apply a patch (derived from the previous checkout) > > > > > to fail. > > > > > > > > > > The file when viewed in SVN contains the header line > > > > > * @version $Rev$ $Date$ > > > > > My previous local checkout had the identical line. My current > > > > > local checkout has the line > > > > > * @version $Rev: 643696 $ $Date: 2008-04-02 04:24:11 +0100 (Wed, > > > > > 02 Apr > > > > > 2008) $ > > > > > > > > > > What is causing this line to now get expanded in my local checked > > > > > out > > > > > copy, and why wasn't it expanded when I checked it out previously? > > > > > > > > > > Simon > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >
