Things get a bit messier if you have deleted.
When a file is deleted, you not only need to look at the previous revision
to find the last changed revision for that file, you also have to "peg" the
file's URL with that revision too. Obviously, this won't work:*
**$ svn info -r$CURRENT_REV svn://project/trunk/deleted_file.txt*
since that file doesn't exist. But, this won't work either:
*$ svn info -r$PREV_REV **svn://project/trunk/deleted_file.txt*
since the URL to the deleted file is referring to the URL in the CURRENT
revision of the repository, and there is no "deleted_file.txt" in that
revision of the repository.
To get around this, you also have to use 'pegging' to specify the revision
of the URL too:
*$ svn info -r$PREV_REV **svn://project/trunk/deleted_file.txt@$PREV_REV*
Now, you're referring to the file's URL in the previous revision before it
was deleted. Yes, it seems strange you have to specify the revision in two
different places, but one is the revision of that file, and the other is the
URL revision.
On Tue, Oct 6, 2009 at 2:49 PM, Mike Schilli <m_at_perlmeister.com> wrote:
> On Tue, 6 Oct 2009, Mike Schilli wrote:
>
> *$ svn info -r59999
>>> http://subversion/dev/modules/foo/trunk/build.xml*
>>>
>> Sweetness, that's exactly what I want! Using a "file:///" URL lets me
>> use the local file system and the "Last Changed Rev: nnnn" entry
>> contains the last repo revision before 59999 that contains a change for
>> the specified file.
>>
>
> Hmm, looks like I spoke too soon: While this works well with added and
> updated files, it won't find files that have been deleted in the
> previous transaction.
>
> While
>
> /home/y/bin/svnlook history -r 3157 /path/to/repo file
>
> finds a file deleted in revision 3158,
>
> /home/y/bin/svn info -r 3157 file:///path/to/repo/file
>
> reports
>
> svn: File not found: revision 3158, path '/file'
>
> Any way around that?
>
>
> -- Mike
>
> Mike Schilli
> m_at_perlmeister.com
>
>
>> Thanks much for your help.
>>
>> -- Mike
>>
>> Mike Schilli
>> m_at_perlmeister.com
>>
>>
>>> Once you get what you're looking for, you can put that into the "svn log"
>>> command:
>>>
>>> *
>>> **$ svn log -r$lastChgRev:$firstChgRev
>>> http://subversion/dev/modules/foo/trunk/build.xml*
>>>
>>
>>
>>>
>>> On Mon, Oct 5, 2009 at 6:43 PM, Mike Schilli <m_at_perlmeister.com> wrote:
>>>
>>> In a post_commit hook, 'svnlook history' can be used to dig up details
>>>> on the previous checkin of the affected file(s).
>>>>
>>>> Running
>>>>
>>>> svnlook history -r txn repo path
>>>>
>>>> returns a list of N historical entries of which the 2nd one is the repo
>>>> on the previous repo version of the same file.
>>>>
>>>> Questions:
>>>>
>>>> a) Is this the best way of obtaining the first repo revision containing
>>>> the previous version of the file?
>>>>
>>>> b) Is there a way to limit the output to a small number of entries? Some
>>>> files have histories of several thousand entries, most of which aren't
>>>> needed in this case.
>>>>
>>>> Any help appreciated!
>>>>
>>>> -- Mike
>>>>
>>>> Mike Schilli
>>>> m_at_perlmeister.com
>>>>
>>>> ------------------------------------------------------
>>>>
>>>>
>>>> http://subversion.tigris.org/ds/viewMessage.do?dsForumId=1065&dsMessageId=2403903
>>>>
>>>> To unsubscribe from this discussion, e-mail: [
>>>> users-unsubscribe_at_subversion.tigris.org].
>>>>
>>>>
>>>
>>>
>>> --
>>> David Weintraub
>>> qazwart_at_gmail.com
>>>
>>>
>>
--
David Weintraub
qazwart_at_gmail.com
------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=1065&dsMessageId=2404565
To unsubscribe from this discussion, e-mail: [users-unsubscribe_at_subversion.tigris.org].
Received on 2009-10-07 17:46:49 CEST