[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: Precise meaning of 'unrelated changed paths'

From: Stefan Küng <tortoisesvn_at_gmail.com>
Date: 2006-06-09 16:07:45 CEST

Matt.Sullivan@leica-geosystems.com wrote:

> I'm not sure if there's a bug in the log dialog, or some misunderstanding
> on my part.
> If I
> svn copy directory1 to directory2, make some file changes and commit.
> svn copy directory2 to directory3, make some file changes and commit.
> Then look at the log in directory 3 should the changes made in the first
> commit be 'unrelated'?

Yes, at least for this "feature".
The graying out of 'unrelated' paths in the log dialog is done by simply
comparing the paths. If a path is equal or below the path/url you chose
to show the log for, then it's considered related, otherwise it's
considered unrelated.

> The way I've always looked at it is that if they were made sometime in the
> history of the file
> before it was copied into the current path there's no reason for them to be
> unrelated?

Technically, it would be possible to follow the history and even show
paths which got renamed as related. But that would cause big problems
when users commit changes to lots of files at once: the changed file
list can have hundreds of entries, and following the history of each of
those entries would bring even the latest and fastest computer to its knees.

> The reason I ask is that after importing three consecutive vendor revisions
> of a library, I tried
> to view the log from the directory of the latest tag. When I select
> anything other than the latest
> commit revision the file differences are grayed out and double clicking on
> one produces
> 'Unable to find repository location for xxx in revision 4556'

A doubleclick on a modified path in the log dialog triggers the diff
function. It tries to fetch the file from the revision you've selected
and the revision before that one, so you can see what changed in the
selected revision. If the file was renamed in that revision, then the
file doesn't exist in the previous revision. That's why you get an
error. At least, you get an error with TSVN 1.3.x - it will work in
1.4.x when it gets released, because there are improved Subversion API's
available which can make this possible.

> I presume the files are grayed out because they are classified as
> unrelated?
> Now admittedly I didn't do the imports in the same way as described in the
> svn book for
> vendor trees (I wasn't thinking about it so I didn't create a current
> directory. Instead I
> copied to the new tag name - within my WC - then copied in the new versions
> of the files
> before committing.)

Hmmm - if you created the tag from your working copy and not directly on
the server, then the 'previous revision' is actually the working copy.
That could make even the 1.4.x Subversion API's fail (haven't tried, but
as far as I know the Subversion guys, they made even that work :) ).

> Regardless of that I would have thought attempting to show a file's
> differences would either
> show the differences made in that revision regardless of the paths involved
> or provide an
> error message explaining why that's not possible.
> It looks to me like tortoise is using the wrong path to try and show the
> diffs, but I welcome
> another explanation?

To show a diff of a file, TSVN has to fetch the file twice, once for
each revision to diff. The Subversion API now has a param for a peg
revision (peg revision = revision to 'anchor' the url/path to). So with
that peg revision, it will work much better than before without it.

That said: TSVN can't really 'fix' all those cases where you want to
diff files from the changed files list (bottom of log dialog). Because
the url there has to be reconstruced 'manually' by TSVN. So there will
always be cases where it won't work.
But in 1.4.x, you can choose "show differences" from the top list of the
log dialog. It will then show you (reliable in 1.4.x, thanks to a new
Subversion API!) a list of changed files. If you doubleclick on those
entries in the list, it will always work.


P.S. I see from your mail address that you're working for leica
geosystems. Are you located in Heerbrugg? Maybe I should come by some
day (I live in Altstätten) :)

   oo  // \\      "De Chelonian Mobile"
  (_,\/ \_/ \     TortoiseSVN
    \ \_/_\_/>    The coolest Interface to (Sub)Version Control
    /_/   \_\     http://tortoisesvn.tigris.org
To unsubscribe, e-mail: users-unsubscribe@tortoisesvn.tigris.org
For additional commands, e-mail: users-help@tortoisesvn.tigris.org
Received on Fri Jun 9 16:08:02 2006

This is an archived mail posted to the TortoiseSVN Users mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.