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

Re: [Issue 4119] New - can't cat an added symlink

From: Daniel Shahaf <danielsh_at_elego.de>
Date: Fri, 17 Feb 2012 19:27:33 +0200

Philip Martin wrote on Fri, Feb 17, 2012 at 09:56:38 +0000:
> Daniel Shahaf <d.s_at_daniel.shahaf.name> writes:
>
> > danielsh_at_tigris.org wrote on Thu, Feb 16, 2012 at 17:00:07 -0800:
> >> ------- Additional comments from danielsh_at_tigris.org Thu Feb 16 17:00:07 -0800 2012 -------
> >> % ln -s foo bar
> >> % $svn add -q bar
> >> % $svn cat bar
> >> svn: E200009: '/home/daniel/src/svn/t1/bar' has no base revision until it is committed
> >> zsh: exit 1 $SVN cat bar
> >>
> >> By comparison,
> >> % $svn cat ../site/publish/faq.en.html
> >> link faq.html<no newline>
> >> %
> >>
> >> ------- Additional comments from danielsh_at_tigris.org Thu Feb 16 17:12:43 -0800 2012 -------
> >> It applies to any file, not just to symlinks.
> >
> > Sanity check please -- we do expect 'touch foo; svn add foo; svn cat
> > foo' to work, right?
>
> 1.7 is much like 1.6:
>
> svn: E200009: '/home/pm/sw/subversion/obj/wc/f' has no base revision until it is committed
>
> svn: Can't open file 'wc/.svn/text-base/f.svn-base': No such file or directory
>
> Note that 'svn ls' has the same behaviour.
>
> I suppose we could make them work. Perhaps it should involve a new
> symbolic revision 'WORKING@?
>

I'm not sure.

On the one hand, I'm the first to admit that consistency and KISS are
a good thing --- and "every non-URL target argument's peg revision
defaults to BASE" is an instance of those.

On the other hand... semantically, it's an added file; it does not
_have_ any other possible values for the peg revision, other than
WORKING --- so why would I have to specify it explicitly?

> $ svn cat file_at_WORKING
> $ svn ls dir -rWORKING
>
> How many other commands would be affected?
>

Some commands already assume @WORKING for added files:

    % svn info bar
    Schedule: add

    % svn rm bar
    svn: E195006: '/home/daniel/src/svn/t1/bar' has local modifications -- commit or revert them first
    % $svn rm --force bar
    D bar

    % svn cp bar bar2
    A bar2

But some others don't: 'blame', for example. (We have support for
blaming lines to rWORKING, but blaming an added file neither works
nor gives a "This invocation doesn't make sense" error.)

Other commands (which are repository-side by nature) may want to
continue contacting the repository, in order to run against a possible
bar_at_HEAD (which would cause an add/add tree conflict at the next
update): 'lock' and 'log', for example.

> --
> uberSVN: Apache Subversion Made Easy
> http://www.uberSVN.com
Received on 2012-02-17 18:29:33 CET

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