Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 29 Dec 2014 21:43:43 +0100
From:      olli hauer <ohauer@gmx.de>
To:        "Julian H. Stacey" <jhs@berklix.com>
Cc:        ports@freebsd.org
Subject:   Re: https://svnweb.freebsd.org/ Attic URLs, eg for ports/mail/demime ?
Message-ID:  <54A1BCFF.7050806@gmx.de>
In-Reply-To: <201412291619.sBTGJcsD032240@fire.js.berklix.net>
References:  <201412291619.sBTGJcsD032240@fire.js.berklix.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On 2014-12-29 17:19, Julian H. Stacey wrote:
> olli hauer wrote Sat, 27 Dec 2014 08:25:09 +0100:
> 
>> On 2014-12-27 03:30, Julian H. Stacey wrote:
>>> Hi ports@
>>> What URL(s) do I need under
>>> https://svnweb.freebsd.org/ 
>>> to get to the Attic for last copy of eg ports/mail/demime ?
>>>
>>> How is one supposed to find URLs /svn rev nos ?
>>> (I have a local svn if it helps, but was looking on web)
>>>
>>> demime was removed after release date 2012-01 of 9.0.0
>>> https://svnweb.freebsd.org/ports/tags/RELEASE_9_0_0/mail/demime/ 
>>>
>>> I want to know not just URL but also How to find last URL/ svn
>>> revision numbers, as I'm trying to rescue & upgrade a few ports from oblivion.
>>>
>>> I presume there's some better way to search than binary search 
>>> (repeated splitting & re-search in the middle between narowing dates) ?
>>
>> Hi Julian,
>>
>> with viewvc only it is not that easy, but with (svn) command line.
>>
>> $ grep demime /usr/ports/MOVED
>> mail/demime||2011-12-28|Has expired: No upstream development since 2007
>>
>> $ svn log -qv -r '{2011-12-28}':'{2011-12-29}'
>> r288196 | rene | 2011-12-28 18:49:04 +0100 (Wed, 28 Dec 2011)
>> Changed paths:
>> ...
>>    M /head/mail/Makefile
>>    D /head/mail/demime
>> ...
>>
>> Setting 288195 as sticky revision in viewvc we get this URL
>> https://svnweb.freebsd.org/ports/head/mail/demime/?pathrev=288195
> 
> 
> Thanks Olli,
> There's something I'm missing in my environent ?
> I have /usr/svn -> /pri/FreeBSD/development/FreeBSD-SVN
> With 
> 	cd /pri/FreeBSD/development/FreeBSD-SVN/ports;ls
> 	# README.txt conf db format hooks locks
> 	svn log -qv -r '{2011-12-28}':'{2011-12-29}'
> I got
> 	svn: E155007: '/pri/FreeBSD/development/FreeBSD-SVN/ports' is not a working copy
> 
> I suggest someone append to man svn:
> 	SEE ALSO https://www.freebsd.org/doc/en/books/handbook/svn.html
> non-optimal mini patches that do that are here:
> 	http://berklix.com/~jhs/src/bsd/fixes/FreeBSD/ports/gen/devel/subversion/
> 
> I experimented some more:
> 
>  cd /usrb/tmp/svn; svn checkout -q file:///usr/svn/ports
>  still running after 14 hours, so still waiting to try later.
> 
>  svn log -qv -r http://svn.freebsd.org/ports/head '{2011-12-28}':'{2011-12-29}'
>  svn: E205000: Syntax error in revision argument 'http://svn.freebsd.org/ports/head'
> 
>  svn log  http://svn.freebsd.org/ports/head '{2011-12-28}':'{2011-12-29}'
>  svn: E160013: File not found: revision 375791, path '/head/{2011-12-28}:{2011-12-29}'
> 
>  svn log  http://svn.freebsd.org/ports '{2011-12-28}':'{2011-12-29}'
>  svn: E160013: File not found: revision 375791, path '/{2011-12-28}:{2011-12-29}'
> 
> Questions:
>  - what if anything do need to check with printenv ? (aka CVSROOT etc from the past)
>  - which directory (/bin/pwd) I should be in to run that command "svn log ..." ?
>  - what should the contents of that directory be ? (eg what does your ls show) ?
> 
> Thanks !
> 
> Cheers,
> Julian
> 

Hi Julian,

take the date as rev. parameter, see `svn help log'

Time for a working practical example, pick a FreeBSD mirror from https://www.freebsd.org/doc/en/books/handbook/svn.html.
We will run the command in a fresh empty dir (not part of any existing svn workspace)

$ mkdir /tmp/svnlogfoo && cd /tmp/svnlogfoo
$ svn log -qv -r '{2011-12-28}':'{2011-12-29}' http://svn0.eu.freebsd.org/ports
.... (log data we need to find the removed port)


I always start with sparse checkouts and use then `svn update' with the "--set-depth" parameter
For this example we re-use the empty /tmp/svnlogfoo directory
Lets see if we are able to checkout old data (e.g CVSROOT).

$ svn co --depth empty https://svn0.eu.freebsd.org/ports/head /tmp/svnlogfoo/
$ cd /tmp/svnlogfoo
$ svn info
Path: .
Working Copy Root Path: /tmp/svnlogfoo
URL: https://svn0.eu.freebsd.org/ports/head
Relative URL: ^/head
Repository Root: https://svn0.eu.freebsd.org/ports
Repository UUID: 35697150-7ecd-e111-bb59-0022644237b5
Revision: 375797
...

$ svn ls -r 10
CVSROOT/
Makefile
Mk/
editors/
shells/

$ $ svn up -r 10 CVSROOT
$ ls -1 CVSROOT/
commit_prep.pl
commitcheck
commitinfo
cvs_acls.pl
editinfo
log_accum.pl
loginfo
rcsinfo
rcstemplate


Lets see if we can check out mail/demime (r288195)

$ svn up --set-depth empty mail
Updating 'mail':
A    mail
Updated to revision 375797.

$ svn up -r288195 mail/demime
Updating 'mail/demime':
A    mail/demime
A    mail/demime/distinfo
A    mail/demime/pkg-descr
A    mail/demime/pkg-plist
A    mail/demime/Makefile
Updated to revision 288195.


Tada, we have the latest version from the demime port recovered in less then two minutes with a total checkout less then 200K

$ du -h -d1 /tmp/svnlogfoo/
124K    /tmp/svnlogfoo/.svn
 12K    /tmp/svnlogfoo/mail
 38K    /tmp/svnlogfoo/CVSROOT
176K    /tmp/svnlogfoo/


Since we do not need CVSROOT (was only an example checkout) we remove it from the workspace with the following update command to keep the sparse checkout tiny

$ svn up --depth empty CVSROOT
Updating 'CVSROOT':
D    CVSROOT


Hope the example will answers your question 2 and 3, I'm not sure about question one.

-- 
Regards,
olli



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?54A1BCFF.7050806>