DragonFly users List (threaded) for 2011-07
Re: pkgsrcv2.git not syncing correctly; around 400 missing files
:It looks much better now.
:All the "MISSING" files have been restored.
:There are still some "DIFF" files making it through the script. I
:increased the regex to filter out $Revision[:$] and $Date[:$] as well as
:$Id[:$] and $NetBSD[:$], and the attached file shows what is left.
:The remaining files on the list feature the $Log$ CVSID and others, so
:the git pkgsrc repository looks 100% synchronized to me!
Yes, this is because CVS $variable expansions are not formally stored
as patches in the CVS archive. Instead the variable-expansion is done
after the file is checked out. The version of the file in the CVS
archive will often contain the variable expansions related to the
previous version rather than that particular version.
So anything related to variable expansion will be broken no matter what
we do. The git conversion scripts effectively have to tell cvs not
to expand anything and work just with the pure CVS archive (which
contains the broken expansions associated with the version previous to
the one being checked out), otherwise incremental patches will not work
My pkgsrc cvs->git conversion script is ridiculously complex. Not only
can the cvs2git conversion not always work properly, the rsync of the
cvs repo itself can catch a cvs commit in the middle so the script has
to loop the rsync until it detects the topology hasn't changed recently
(i.e. is stable). And even then it doesn't always stay in sync so my
script then does a catch-all cvs checkout, git checkout, and diff/patch,
then a forced git commit to clean up the loose ends.
Of course, it is all for naught if rsync itself breaks like it just