commits
modifying a local repo is not as important right now
- put changesets in order, create new commitids for them by storing
a temporary commitid in CVSROOT/commitids-{tree}, running 'cvs
show' on it, reading the output hash, then overwrite the hash in
the commitids file with what we just got, then finally write out
all those new commitids to every revision
- add some new hacks for specific files in src/ that have revisions
with missing previous revisions, and some that are obviously part
of changesets with existing commitids but don't have them for some
reason
- sprinkle some BEGIN/COMMIT around heavy sqlite ops for speed, fix
index names so they're actually unique :/
- be more careful about string encoding in sqlite, get everything to
utf-8. data from rlog was coming in as binary, now iso-8859-1,
and needs to be properly converted to utf-8 before going into
sqlite, otherwise later queries trying to match on string data
(which are probably using utf-8 strings) will fail
- work better when re-running like not complaining about cvs-tmp
existing, since this is no longer intended to just run once.
store cheap cksum of file to detect changes to speed up re-scan.
names taken from commit mails, gecos on cvs, and lots of googling
files added on branches/imports have a dead 1.1 revision, so our
checkout of -r1.1 files to bring in these files. when scanning each
file, record which version is the first we see that isn't dead, and
then individually checkout those revisions of those files.
also fixes an issue with weird files in the openbsd src tree like
sbin/isakmpd/pkcs.c which have no versions before 1.4 for some
reason.
with these changes, a full import and writing back of commitids on
the openbsd src tree is possible
gcc has an old INSTALL file that later became a directory, so
checking out -r1.1 of the tree will throw an error when it tries to
mkdir over the existing file. move it to some other name since it
was deleted long ago
for some stupid reason, 'cvs admin' commands on files that don't
exist just fail silently. previous attempts to run 'cvs admin -C'
on files in the attic were not working since those files are no
longer in the checked-out tree's CVS/Entries file. to get around
this, do a 'cvs up -r1.1' on files in the attic to put them in
CVS/Entries, to be able to run 'cvs admin' on them.
abuse BEGIN{} to put classes at the bottom of the file
use IO.popen for rlog since there is a file in the openbsd ports
tree with a space in it
- put changesets in order, create new commitids for them by storing
a temporary commitid in CVSROOT/commitids-{tree}, running 'cvs
show' on it, reading the output hash, then overwrite the hash in
the commitids file with what we just got, then finally write out
all those new commitids to every revision
- add some new hacks for specific files in src/ that have revisions
with missing previous revisions, and some that are obviously part
of changesets with existing commitids but don't have them for some
reason
- sprinkle some BEGIN/COMMIT around heavy sqlite ops for speed, fix
index names so they're actually unique :/
- be more careful about string encoding in sqlite, get everything to
utf-8. data from rlog was coming in as binary, now iso-8859-1,
and needs to be properly converted to utf-8 before going into
sqlite, otherwise later queries trying to match on string data
(which are probably using utf-8 strings) will fail
- work better when re-running like not complaining about cvs-tmp
existing, since this is no longer intended to just run once.
store cheap cksum of file to detect changes to speed up re-scan.
files added on branches/imports have a dead 1.1 revision, so our
checkout of -r1.1 files to bring in these files. when scanning each
file, record which version is the first we see that isn't dead, and
then individually checkout those revisions of those files.
also fixes an issue with weird files in the openbsd src tree like
sbin/isakmpd/pkcs.c which have no versions before 1.4 for some
reason.
with these changes, a full import and writing back of commitids on
the openbsd src tree is possible
for some stupid reason, 'cvs admin' commands on files that don't
exist just fail silently. previous attempts to run 'cvs admin -C'
on files in the attic were not working since those files are no
longer in the checked-out tree's CVS/Entries file. to get around
this, do a 'cvs up -r1.1' on files in the attic to put them in
CVS/Entries, to be able to run 'cvs admin' on them.