On 2005-01-05 14:21:23 -0600, Shawn Harrison wrote:
----8<----
> Max Bowsher wrote elsewhere:
> >I'm -1 on just flipping the default to HEAD, since it would be
> >horribly bizarre to see a different line of history being logged, if
> >the name log is invoked on has been deleted and then
> >replaced-with-history in HEAD, whilst your your WC is still on the
> >previous historical line.
>
> I'm afraid I don't understand this. How are there different "lines of
> history" within a single branch of the repository?
I might be able to clarify this. Say your repository history looks
something like this:
r1
A /trunk
A /trunk/foo
A /trunk/bar
r2
A /branch (from /trunk:1)
r3
M /branch/foo
r4
M /trunk/foo
M /trunk/bar
r5
D /trunk/foo
r6
A /trunk/foo (from /branch/foo:3)
Now, say your WC is /trunk at r4 and you are modifying bar. When you
commit, you get a mixed WC of /trunk and /trunk/foo at r4 and /trunk/bar
at r7.
If you were to do an 'svn log foo' in your WC and log defaulted to
HEAD, you'd see r6, r3, r2, r1
Instead, the current scheme uses BASE, so you see: r4, r1
Notice that these two sets are disjoint after r1 because they are
following different lines of development. Using HEAD in this instance
would be misleading, because it wouldn't be showing you the history of
the file you actually have on disk. Using HEAD shows you the history of
the file you would get if you chose to update.
I hope this helped clarify things. I myself struggled with the BASE vs
HEAD issue at first, but in time I've come to appreciate it.
-Dominic
- application/pgp-signature attachment: stored
Received on Wed Jan 5 22:00:20 2005