Re: [ANNOUNCE] cvsps support for parsing BK->CVS kernel tree logs

David Mansfield (david@cobite.com)
Wed, 19 Mar 2003 16:19:20 -0500 (EST)


This is a MIME-formatted message. If you see this text it means that your
E-mail software does not support MIME-formatted messages.

--=_courier-27905-1048108870-0001-2
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

> what about the deleted files? should we teach cvsps how to diff the old
> revision fetched with cvs up -p against /dev/null to make a completely
> coherent patch?

It's already supposed to work that way :-( See below.

> this is with 2.4
>
> Directing PatchSet 2742 to file ../patches-2.4//2742.patch
> cvs [update aborted]: no such directory `drivers/usb/hcd'
> cvs [update aborted]: no such directory `drivers/usb/hcd'
> cvs [update aborted]: no such directory `drivers/usb/hcd'
> cvs [update aborted]: no such directory `drivers/usb/hcd'
> cvs [update aborted]: no such directory `drivers/usb/hcd'
> cvs [update aborted]: no such directory `drivers/usb/hcd'
> cvs [update aborted]: no such directory `drivers/usb/hcd'
> cvs [update aborted]: no such directory `drivers/usb/hcd'
> cvs [update aborted]: no such directory `drivers/usb/hcd'

This has been fixed already in 2.0b5 (on www.cobite.com/cvsps website).
It was all working fine if you had a checked out tree. But doesn't work
to use 'update -p' if the sub-directory isn't checked out (update -p is
what is used in your version).

The new code uses 'cvs co -p -r x.y repository/file' which works fine.
The patches that are generated by '-g' now need 'patch -p1' to be applied
inside the working directory.

> I also wonder if cvsps is so accurate also w/o the --bkcvs option (i.e.
> w/o atomic commits from bk). are the dates guaranteed to be the same for
> all files w/ a normal cvs tree?

No. On a normal CVS repository, and without the --bkcvs, a heuristic is
used to recreate a 'commit'. The commit must have the same author, the
same message and the time of commit must be within a fuzz-factor number of
seconds (default 300, settable via the -z option). The reason the
fuzz-factor is needed is that a commit over a slow link, or a very large
commit in general can take a lot of time, and the log time will vary for
each file committed.

It actually works quite well.

> what about the -f option? why can't I use it at the same time with -r?
> Can I use multiple -f at the same time? That is getting very cool and so
> useful.

Oops. You found a bug. See the attached patch against 2.0b5 (should work
against any recent version). By design though, all of the 'filter'
options can be combined. Also by design, you cannot specify multiple
instances of any option (except -d and -r, where the first and second
instance have special meaning - start vs end).

> Would also be nice to export the API of the cvsps internals to python
> (i.e. to allow to efficiently parse the cvsps metadata files in .cvsps
> from scripts that will give the flexibility of parsing the data as
> you want or to quickly write a gui fronthand). This is low prio though,
> having -f working together with -r and all the other options is much
> more interesting at this point IMHO. Being able to specify a directory
> as a file would also be very useful.

The file is actualy a substring match. If the -f argument matches as a
substring the filename it will count as a match. So you can specify
directory names just as is.

David

-- 
/==============================\
| David Mansfield              |
| david@cobite.com             |
\==============================/

--=_courier-27905-1048108870-0001-2 Content-Type: text/plain; charset=us-ascii; name="cvsps-wrong-check-order.patch" Content-Transfer-Encoding: base64 Content-Description: Content-Disposition: attachment; filename="cvsps-wrong-check-order.patch"

SW5kZXg6IGN2c3BzLmMNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NClJDUyBm aWxlOiAvc3VsdS9jdnNfbWFzdGVyL2N2c3BzL2N2c3BzLmMsdg0KcmV0cmll dmluZyByZXZpc2lvbiA0LjcwDQpkaWZmIC1iIC11IC1yNC43MCBjdnNwcy5j DQotLS0gY3ZzcHMuYwkxOSBNYXIgMjAwMyAxNjoyMTozMiAtMDAwMAk0Ljcw DQorKysgY3ZzcHMuYwkxOSBNYXIgMjAwMyAyMToxMToxNSAtMDAwMA0KQEAg LTEwMjksMjMgKzEwMjksNiBAQA0KICAgICBpZiAocHMtPnBzaWQgPCAwKQ0K IAlyZXR1cm47DQogDQotICAgIGlmIChyZXN0cmljdF9kYXRlX3N0YXJ0ID4g MCAmJg0KLQkocHMtPmRhdGUgPCByZXN0cmljdF9kYXRlX3N0YXJ0IHx8DQot CSAocmVzdHJpY3RfZGF0ZV9lbmQgPiAwICYmIHBzLT5kYXRlID4gcmVzdHJp Y3RfZGF0ZV9lbmQpKSkNCi0JcmV0dXJuOw0KLQ0KLSAgICBpZiAocmVzdHJp Y3RfYXV0aG9yICYmIHN0cmNtcChyZXN0cmljdF9hdXRob3IsIHBzLT5hdXRo b3IpICE9IDApDQotCXJldHVybjsNCi0NCi0gICAgaWYgKGhhdmVfcmVzdHJp Y3RfbG9nICYmIHJlZ2V4ZWMoJnJlc3RyaWN0X2xvZywgcHMtPmRlc2NyLCAw LCBOVUxMLCAwKSAhPSAwKQ0KLQlyZXR1cm47DQotDQotICAgIGlmIChyZXN0 cmljdF9maWxlICYmICFwYXRjaF9zZXRfY29udGFpbnNfbWVtYmVyKHBzLCBy ZXN0cmljdF9maWxlKSkNCi0JcmV0dXJuOw0KLQ0KLSAgICBpZiAocmVzdHJp Y3RfYnJhbmNoICYmICFwYXRjaF9zZXRfYWZmZWN0c19icmFuY2gocHMsIHJl c3RyaWN0X2JyYW5jaCkpDQotCXJldHVybjsNCi0gICAgDQogICAgIC8qIHRo ZSBmdW5rX2ZhY3RvciBvdmVycmlkZXMgdGhlIHJlc3RyaWN0X3RhZ19zdGFy dCBhbmQgZW5kICovDQogICAgIGlmIChwcy0+ZnVua19mYWN0b3IgPT0gRk5L X1NIT1dfU09NRSB8fCBwcy0+ZnVua19mYWN0b3IgPT0gRk5LX1NIT1dfQUxM KQ0KIAlnb3RvIG9rOw0KQEAgLTEwODYsNiArMTA2OSwyMyBAQA0KICAgICB9 DQogDQogIG9rOg0KKyAgICBpZiAocmVzdHJpY3RfZGF0ZV9zdGFydCA+IDAg JiYNCisJKHBzLT5kYXRlIDwgcmVzdHJpY3RfZGF0ZV9zdGFydCB8fA0KKwkg KHJlc3RyaWN0X2RhdGVfZW5kID4gMCAmJiBwcy0+ZGF0ZSA+IHJlc3RyaWN0 X2RhdGVfZW5kKSkpDQorCXJldHVybjsNCisNCisgICAgaWYgKHJlc3RyaWN0 X2F1dGhvciAmJiBzdHJjbXAocmVzdHJpY3RfYXV0aG9yLCBwcy0+YXV0aG9y KSAhPSAwKQ0KKwlyZXR1cm47DQorDQorICAgIGlmIChoYXZlX3Jlc3RyaWN0 X2xvZyAmJiByZWdleGVjKCZyZXN0cmljdF9sb2csIHBzLT5kZXNjciwgMCwg TlVMTCwgMCkgIT0gMCkNCisJcmV0dXJuOw0KKw0KKyAgICBpZiAocmVzdHJp Y3RfZmlsZSAmJiAhcGF0Y2hfc2V0X2NvbnRhaW5zX21lbWJlcihwcywgcmVz dHJpY3RfZmlsZSkpDQorCXJldHVybjsNCisNCisgICAgaWYgKHJlc3RyaWN0 X2JyYW5jaCAmJiAhcGF0Y2hfc2V0X2FmZmVjdHNfYnJhbmNoKHBzLCByZXN0 cmljdF9icmFuY2gpKQ0KKwlyZXR1cm47DQorICAgIA0KICAgICBpZiAoIWxp c3RfZW1wdHkoJnNob3dfcGF0Y2hfc2V0X3JhbmdlcykpDQogICAgIHsNCiAJ c3RydWN0IGxpc3RfaGVhZCAqIG5leHQgPSBzaG93X3BhdGNoX3NldF9yYW5n ZXMubmV4dDsNCg== --=_courier-27905-1048108870-0001-2--