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

Re: how to compare an exported file (or set of files) against the repository?

From: Ulrich Eckhardt <ulrich.eckhardt_at_dominolaser.com>
Date: Wed, 05 Oct 2011 15:38:27 +0200

Am 05.10.2011 14:49, schrieb Mertens, Bram:
> I have been unable to find an answer to this in the FAQ or the
> mailing list archives. I found one question that appears to be
> similar to what I'm trying to achieve but it did not contain a
> reply that solves my problem.

I haven't found the need for that yet, even though I'm prepared (see
below) for the situation.

> I've got a set of files that were exported from a repository some
> time ago. The files have been moved around and some have been
> edited since.
>
> I would like to find out:
> a) what revision these files are from and

There are so-called keywords, which SVN can be made to replace in text
files. You can for example tell it to fill in the URL and revision a
file is checked out from. This can be used to attach some metadata to an
exported source tree. Of course that doesn't help you know, unless
someone already prepared for this case. Note that the revision of a file
doesn't change if you change a different file, so it can't give you
_The_ revision of the source tree. OTOH, there is no guarantee that you
don't have an export from a mixed-revision working copy.

> b) changes have been made to it that may not be in the repository?

Find out where this was exported from, and check out that revision. Copy
the export on top of it and compare, or use a recursive tree comparison
utility.

> Is this possible without looping through all the revisions and
> calculating checksums? The problem with appraoch besides the time it
> would take is that it would obviously not catch files that are not
> 100% identical to the files in that revision.

If the source tree contains files from several different revisions, that
will be the only (hard) way to go. However, I guess you can expect that
the export was made from one revision. If you know the history of the
according project a bit, you might be able to find the approximate
revision it was checked out and from there search for the exact
revision. Another hint might be hidden in modification timestamps.

BTW: The most efficient way is to check out an approximate revision and
then use "svn up -r ..." to move to the next revision quickly. In
particular you shouldn't use export instead of an incremental update.

Good luck!

Uli
**************************************************************************************
Domino Laser GmbH, Fangdieckstraße 75a, 22547 Hamburg, Deutschland
Geschäftsführer: Thorsten Föcking, Amtsgericht Hamburg HR B62 932
**************************************************************************************
Visit our website at http://www.dominolaser.com
**************************************************************************************
Diese E-Mail einschließlich sämtlicher Anhänge ist nur für den Adressaten bestimmt und kann vertrauliche Informationen enthalten. Bitte benachrichtigen Sie den Absender umgehend, falls Sie nicht der beabsichtigte Empfänger sein sollten. Die E-Mail ist in diesem Fall zu löschen und darf weder gelesen, weitergeleitet, veröffentlicht oder anderweitig benutzt werden.
E-Mails können durch Dritte gelesen werden und Viren sowie nichtautorisierte Änderungen enthalten. Domino Laser GmbH ist für diese Folgen nicht verantwortlich.
**************************************************************************************
Received on 2011-10-05 15:39:07 CEST

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

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