https://svnweb.freebsd.org/ Attic URLs, eg for ports/mail/demime ?
olli hauer
ohauer at gmx.de
Mon Dec 29 20:43:36 UTC 2014
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
More information about the freebsd-ports
mailing list