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

Re: Cannot get info for a file that was inside of file-replaced directory

From: Иван Селин <ivanselin_at_yandex-team.ru>
Date: Tue, 19 Nov 2019 08:47:30 +0300
Hi, Eric!
I think svn log -v is correct as it shows that /dir in commit 2 was replaced, i.e. removed and added:
  $ svn log -v file://$repo/dir
r2 | ivanselin | 2019-11-19 08:34:37 +0300 (Tue, 19 Nov 2019) | 1 line
Changed paths:
   R /dir
   A /file-moved (from /dir/file:1)
Replace dir with file
But yeah, some commands do work correctly, it's weird.
18.11.2019, 20:03, "Eric Johnson" <eric@tibco.com>:
It appears that svn ls of "dir@1" works fine. As does svn cat of "dir/file@1". svn proplist of "dir/file@1" appears to work as well.
svn log -v appears to be incomplete, as it shows "dir" removed, but not also added in the revision.
svn info fails, as you note.
Looks like a bug to me.
On Mon, Nov 18, 2019 at 1:53 AM Иван Селин <ivanselin@yandex-team.ru> wrote:
I think I've found a bug in subversion client. Setup is as follows:
1. Create directory with a file in it — commit 1
2. Replace directory with other file — commit 2
3. Call "svn info dir/file@1" — it should give information about dir/file at revision 1, but it fails saying that "dir" is a file at latest revision:
svn: E160016: Failure opening '/dir' in revision 2
svn: E160016: '/dir' is not a directory in filesystem '0bc899d5-c233-4fed-98a3-8705ddfc96c4'
But directory can be listed, it shows the file, and file can be listed too:
  $ svn info file:///tmp/subversion-info-on-replaced-file/repo/dir@1
Path: dir
URL: file:///tmp/subversion-info-on-replaced-file/repo/dir
Relative URL: ^/dir
Repository Root: file:///tmp/subversion-info-on-replaced-file/repo
Repository UUID: 0bc899d5-c233-4fed-98a3-8705ddfc96c4
Revision: 1
Node Kind: directory
Last Changed Author: ivanselin
Last Changed Rev: 1
Last Changed Date: 2019-11-18 11:38:16 +0300 (Пн, 18 ноя 2019)
  $ svn list file:///tmp/subversion-info-on-replaced-file/repo/dir@1
  $ svn list file:///tmp/subversion-info-on-replaced-file/repo/dir/file@1
So, only "info" does not work. It seems that it's performing directory check against HEAD instead of provided peg revision. Adding --revision key changes nothing. This is trunk svn (1.14.0-dev, r1869957), svn 1.9.7 does not have this bug, it correctly shows info.
Sample reproduction script attached.
Received on 2019-11-19 06:47:51 CET

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