DragonFly BSD
DragonFly users List (threaded) for 2011-07
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

Re: pkgsrcv2.git not syncing correctly; around 400 missing files

From: Matthew Dillon <dillon@xxxxxxxxxxxxxxxxxxxx>
Date: Mon, 25 Jul 2011 15:42:14 -0700 (PDT)

:Hi Matt,
: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
    did :-(


[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]