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