[Josip Rodin] > % svn log -v -r 3006 | grep foo.php > M /full/path/foo.php > > % svn log -v -r 3006 foo.php > svn: Unable to find repository location for > 'https://correct.host/svn/full/path/foo.php' in revision 3006 [...] > I'm thinking that the problem in my case is that in revision 3123 I > replaced foo.php with a symbolic link. 'svn log' with no arguments > for that file now shows only that revision.
You're correct, svn considers foo.php the file and foo.php the symlink to be two unrelated files that have had the same name. To tell it where in history to look for the file of a particular name, what you want is a peg revision and a URL (or URL equivalent, using ^/ to represent the top of the repository tree). A peg revision uses u...@rev syntax, and generally defaults to HEAD for a URL. % svn log -v -r3006 ^/full/path/foo....@3006 Here, @3006 means "history of which file?" and r3006 means "which part of the history?" Alternatively if it offends you to have to type 3006 twice, note that -r has a default of "3006:1": % svn log -v --limit=1 ^/full/path/foo....@3006 Peg revisions trip a lot of people up and in hindsight I think many of us wish they'd been introduced with a more obvious syntax, or that they defaulted to the operative revision (the -r argument) rather than HEAD. There are good arguments both ways as to whether the default should have been HEAD (or, for a working copy path, BASE, i.e., the revision at which the working copy path is checked out). > So it looks like there is no obvious way to go back in history and > explicitly look at a lifespan of a particular file that doesn't match > its current lifespan. Agreed, depending on your definition of "obvious". -- Peter Samuelson | org-tld!p12n!peter | http://p12n.org/ -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org