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

2011-10-07 Thread Alan Barrett

On Wed, 05 Oct 2011, Konstantin Kolinko wrote:

Can diff -u command take input from stdout?


From stdin?  Yes, in all diff implementations I have seen on 
unix-like systems.


In answer to the original question, I suggest this approach:

parse the output from svn log -q -r 1:HEAD $URL to
get a list of revision numbers in which the URL was modified.

For each such revision number, save the output from

   svn cat -r $REVISION $URL | diff -U3 - $FILE

Find the smallest of those saved diff outputs, and it probably
corresponds to the version that was originally checked out.

--apb (Alan Barrett)


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

2011-10-06 Thread REEDICK, ANDREW
Unless you exported multiple revisions, you shouldn't need more than a few 
positive matches to determine the revision.

First, compare the tree structure against the repository.  You'll want to avoid 
researching moved files, and this will help you narrow down your search.

Second, 'svn export' seems to preserve timestamps on the exported files.  You 
can check 'svn log' for a matching timestamp for that file.

Then once you have enough fingerprints to id the export revision, you can do a 
generic tree comparison to find changed and/or moved files.


 -Original Message-
 From: Mertens, Bram [mailto:merte...@mazdaeur.com]
 
 
 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.
 
 Thanks in advance for any pointer that would help in this.
 


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

2011-10-05 Thread Mertens, Bram
Hi,

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'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 b) what 
changes have been made to it that may not be in the repository?

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.

Thanks in advance for any pointer that would help in this.

Bram



Mazda Motor Logistics Europe NV, Blaasveldstraat 162, B-2830 Willebroek
VAT BE 0406.024.281, RPR Mechelen, ING  310-0092504-52, IBAN : BE64 3100 0925 
0452, SWIFT : BBRUBEBB



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

2011-10-05 Thread Thorsten Schöning
Guten Tag Mertens, Bram,
am Mittwoch, 5. Oktober 2011 um 14:49 schrieben Sie:

 I would like to find out: a) what revision these files are from

You can't, even with comparing checksums or stuff like that you would
only get any revisions where the files are the same. But you can't
tell when the files were exported among your revisions.

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

Check out a working copy and copy the files over.

Mit freundlichen Grüßen,

Thorsten Schöning

-- 
Thorsten Schöning
AM-SoFT IT-Systeme - Hameln | Potsdam | Leipzig
 
Telefon: Potsdam: 0331-743881-0
E-Mail:  tschoen...@am-soft.de
Web: http://www.am-soft.de

AM-SoFT GmbH IT-Systeme, Konsumhof 1-5, 14482 Potsdam
Amtsgericht Potsdam HRB 21278 P, Geschäftsführer: Andreas Muchow



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

2011-10-05 Thread Daniel Shahaf
I'm a bit surprised that 'svn info URL/to/file' does not print the
checksum of the file, even when the filesystem backend has the checksum
stored and doesn't need to calculate it on demand.

Mertens, Bram wrote on Wed, Oct 05, 2011 at 14:49:35 +0200:
 Hi,
 
 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'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 b) what 
 changes have been made to it that may not be in the repository?
 
 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.
 
 Thanks in advance for any pointer that would help in this.
 
 Bram
 
 
 
 Mazda Motor Logistics Europe NV, Blaasveldstraat 162, B-2830 Willebroek
 VAT BE 0406.024.281, RPR Mechelen, ING  310-0092504-52, IBAN : BE64 3100 0925 
 0452, SWIFT : BBRUBEBB
 


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

2011-10-05 Thread Ulrich Eckhardt

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.
**



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

2011-10-05 Thread Dominik Psenner
This procedure could be easily automated by a stupid script that does
something like:

for REV in seq 0 NEWESTREV; do
svn up -r REV
cp updated-file repos-file
if [ -z `svn diff` ]; then echo found candidate rev $REV!; fi
svn revert .
done

JMTC,
D.

-Original Message-
From: Ulrich Eckhardt [mailto:ulrich.eckha...@dominolaser.com]
Sent: Wednesday, October 05, 2011 3:38 PM
To: users@subversion.apache.org
Subject: Re: how to compare an exported file (or set of files) against the
repository?

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.
***
***




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

2011-10-05 Thread Mertens, Bram





Mazda Motor Logistics Europe NV, Blaasveldstraat 162, B-2830 Willebroek
VAT BE 0406.024.281, RPR Mechelen, ING  310-0092504-52, IBAN : BE64 3100 0925 
0452, SWIFT : BBRUBEBB

-Original Message-
 From: Ulrich Eckhardt [mailto:ulrich.eckha...@dominolaser.com]
 Sent: woensdag 5 oktober 2011 15:38
 To: users@subversion.apache.org
 Subject: Re: how to compare an exported file (or set of files) against the
 repository?

 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.

Thx for this, but I am aware of this feature and should have mentioned that it 
is currently not being used (though I'll be changing that).

  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.

Too bad there is no less complicated way of doing this but I guess I'll use a 
combination of the suggestions in this thread to accomplish what I need.

If anyone has a better suggestion I'd like to hear about it still.

Regards and thanks for all the feedback received so far.

Bram


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

2011-10-05 Thread Konstantin Kolinko
2011/10/5 Dominik Psenner dpsen...@gmail.com:
 This procedure could be easily automated by a stupid script that does
 something like:

 for REV in seq 0 NEWESTREV; do
        svn up -r REV
        cp updated-file repos-file
        if [ -z `svn diff` ]; then echo found candidate rev $REV!; fi
        svn revert .
 done


Can diff -u command take input from stdout?

Its man page says If a FILE is `-', read standard input.
If so, one could feed it from svn cat command.

Just for record, there is --force flag for svn checkout command,
that allows it to create a working copy over files that were exported.
I think it should not overwrite files that has local changes, but have
not verified whether that is true.

 Check out a working copy and copy the files over.

+1

Best regards,
Konstantin Kolinko