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

Re: Some files stay at an too new revision when updating the working copy to an old revision

From: Franz Sirl <franz.sirl-kernel_at_lauterbach.com>
Date: Sat, 21 Jul 2018 16:27:32 +0200

Am 2018-07-20 um 16:46 schrieb Franz Sirl:
> Am 2018-07-20 um 15:55 schrieb Branko Čibej:
>> On 20.07.2018 15:37, Franz Sirl wrote:
>>> Hi,
>>>
>>> this already happened a few times here, but now I managed to re-create
>>> it reliably.
>>> This happens at least on Linux with subversion-1.8/subversion-1.10 and
>>> on Windows
>>> with TortoiseSVN-1.9, didn't test older versions yet. Server is
>>> subversion-1.9.5
>>> on Linux, a "svnadmin verify" of a repository hotcopy showed no problems
>>>
>>> This slightly obfuscated transcript shows the problem:
>>>
>>> -->
>>> $ rm -rf myrepo.wc
>>> $ svn co https://svnserver/svn/myrepo/trunk/some/path/src myrepo.wc/
>>> ...
>>> Checked out revision 98863.
>>> $ svn status --verbose myrepo.wc/mysrc[34].c
>>>               98867    93474 user1        myrepo.wc/mysrc3.c
>>>               98867    87357 user2        myrepo.wc/mysrc4.c
>>> $ svn up -r 85950 myrepo.wc
>>> ...
>>> At revision 85950.
>>> $ svn status --verbose myrepo.wc/mysrc[34].c
>>>               85950    93474 user1        myrepo.wc/mysrc3.c
>>>               85950    83501 user3        myrepo.wc/mysrc4.c
>>> --<
>>>
>>> As you can see, mysrc3.c has a too high last_commit revision and also
>>> the content
>>> of the file is too new after the first downgrading with "svn up -r
>>> 85950 myrepo.wc".
>>
>> This does look strange.
>>
>> Is myrepo.wc/mysrc3.c a file external by any chance? Try:
>>
>> $ svn propget svn:externals --show-inherited-props myrepo.wc
>
> This command returns empty. There doesn't seem to be anything special
> about this file, except that it is one of the oldest in the repository.
> It was imported from CVS with history in 2005 (subversion-1.2), but so
> was mysrc4.c. Also there have been not any properties set to the parent
> directory ever AFAICS.
>
>>
>> If it isn't could you show us an (obfuscated) log of that file?
>>
>> $ svn log --verbose -r93474:85950 myrepo.wc/mysrc3.c
>
> ------------------------------------------------------------------------
> r93474 | user1 | 2018-02-07 16:21:20 +0100 (Wed, 07 Feb 2018) | 9 lines
> Changed paths:
>    M /trunk/some/path/src/mysrc-defines.h
>    M /trunk/some/path/src/mysrc1.c
>    M /trunk/some/path/src/mysrc3.c
>    M /trunk/some/path/src/mysrc5.c
>    M /trunk/some/path/src/mysrc6.c
>
> ChangeLog...
> ------------------------------------------------------------------------
> r87225 | user2 | 2017-08-03 11:28:11 +0200 (Thu, 03 Aug 2017) | 1 line
> Changed paths:
>    M /trunk/some/path/src/mysrc-defines.h
>    M /trunk/some/path/src/mysrc1.c
>    M /trunk/some/path/src/mysrc3.c
>    M /trunk/some/path/src/mysrc5.c
>    M /trunk/some/path/src/mysrc6.c
>
> ChangeLog...
> ------------------------------------------------------------------------
> r87201 | user1 | 2017-08-02 16:58:50 +0200 (Wed, 02 Aug 2017) | 14 lines
> Changed paths:
>    M /trunk/some/path/src/mysrc-defines.h
>    M /trunk/some/path/src/mysrc1.c
>    M /trunk/some/path/src/mysrc3.c
>    M /trunk/some/path/src/mysrc5.c
>    M /trunk/some/path/src/mysrc6.c
>
> ChangeLog...
> ------------------------------------------------------------------------

Actually I think I was able to narrow down the reason for the wrong
last_commit revision. Some further investigation showed that the actual
content of the working copy is correct, so only the last_commit revision
of mysrc3.c in the database is wrong.
Looking at the details of the changes r87201, r87225 and r93474 of
mysrc3.c shows that they are actually adding some lines, change them and
then delete them again. That means the diff between r83501 and r93474 is
actually empty. And it seems that in this case subversion misses to
update the last_commit revision of mysrc3.c in the database.

Franz
Received on 2018-07-21 16:27:50 CEST

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

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