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
_______________________________________________
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to "freebsd-ports-unsubscr...@freebsd.org"

Reply via email to