A big chunk of the strangeness is due to the fact that when you check in a
file, it is then at the HEAD revision, but the directory that contains it is
no longer. And that "svn log ." defaults to the BASE revision of the
directory ".", not to the BASE *of each individual file*. I don't think
people find it strange that after checking in foo.c, that bar.c is not
automatically updated to HEAD. But they do find it strange that "svn log
foo.c" will show the change they just checked in but "svn log ." will not.
Indeed, it's not very common is Subversion where a command refers to a WC
item, but then takes that item and its revision and looks at that thing in
the repository. E.g., when you "svn copy /... ...", what is copied is the
current contents of your WC.
Looking at the situation even more abstractly, there's an oddity in how "svn
log" is defined. It means "show me all the log items which modify this
revision of this directory or any other file under it", rather than "show
me, for this directory and all files under it, the log items which modify
those revisions". Those descriptions sound very similar, but for the first
one, "-rBASE" cuts off all revisions in any of the files after the
directory's BASE, whereas in the second one, "-rBASE" should clearly be
applied to each subordinate file individually. "svn log" really isn't
recursive, it only appears to be.
From: Ben Collins-Sussman [mailto:email@example.com]
Sent: Monday, January 03, 2005 8:44 PM
To: Vincent Lefevre
Subject: Re: defaulting 'svn log' to HEAD revision
On Jan 3, 2005, at 5:58 PM, Vincent Lefevre wrote:
> On 2005-01-02 21:48:17 -0600, firstname.lastname@example.org wrote:
>> Many users (including me) are periodically confused and/or annoyed by
>> the fact that 'svn log' defaults to the working copy at BASE, instead
>> of at HEAD. That is:
>> $ svn commit -m "Commit a new revision."
>> Committed revision 245.
>> $ svn log
>> [... r245 is not shown, because it's too recent ...]
> IMHO, the real problem is not "svn log", but the fact that the working
> copy is not automatically updated in some way to reflect the commit.
True, but what can be done? The only solution is to make 'svn commit'
automatically run 'svn update'. That's pretty awful.
To unsubscribe, e-mail: email@example.com
For additional commands, e-mail: firstname.lastname@example.org
Received on Wed Jan 5 18:10:00 2005