I'm working on a revised definition for what "svn log" should do. I
think that with a little care, we can get "svn log" to give
intuitively reasonable results and also be consistent with other
Subversion commands. I'd like users' feedback on this before I pass
this on to the developers' list.
My hope is to remove some of the more mysterious behavior of "svn
log", especially where after updating a file in a WC, "svn log" on the
WC top directory does not show that update.
"svn log" gives part or all of the history of a set of revisions of a
set of nodes. (A node is a file or directory.) The revisions are
specified with "--revision r1:r2", which defaults to "--revision
1:BASE" when operating on a WC and to "--revision 1:HEAD" when
operating on a repository.
"svn log" has as arguments either a list of paths into working copies
or a repository URL and a list of paths within it. If the arguments
are working copy paths, the relevant nodes are the nodes specified,
and unless --non-recursive is given, all their descendants. The
relevant revisions of those nodes are their revisions in the working
copies. (So BASE, COMMITTED, and PREV are evaluated individually for
each relevant node.)
If there is a URL argument, the relevant nodes are the specified nodes
within the repository (or the repository URL itself, if no paths are
given), and unless --non-recursive is given, all of their descendants
that exist in revision r2. The relevant revisions of those nodes are
revision r2. (Note that BASE, COMMITTED, and PREV are meaningless.)
(And should the relevant revision be r2, or does HEAD make more sense?
Or should the relevant nodes be all nodes that have ever existed under
the given paths?)
For each relevant release of a relevant node, its history is traced
back. If --stop-on-copy is specified, the history of a node is cut
off when it reaches a copy operation. Otherwise, the history traces
back through copy operations to the "svn add" that created the node.
Out of each history, svn records the revisions that changed the node
and are within the range given by --revision. (Within working copies,
BASE, COMMITTED, and PREV are interpreted relative to each node in the
Finally, all of recorded revisions are collated together and
duplicates removed. The recorded revisions are printed in order, with
the appropriate level of detail as specified by --verbose and --quiet.
To unsubscribe, e-mail: email@example.com
For additional commands, e-mail: firstname.lastname@example.org
Received on Tue Jan 18 16:59:57 2005