CVS Merge Compare Logic and Commentary

Warren Togami wtogami at redhat.com
Wed May 2 06:52:01 UTC 2007


http://fedoraproject.org/wiki/Infrastructure/CoreExtrasCVSMerge
I made some improvements to notting's script from this page.  A few 
thoughts went into this...

1) At notting's recommendation the script only looks at /cvs/dist 
packages that exist as source RPM %{name} in rawhide.
2) The FC-6 specific logic was removed, because it is actually 
irrelevant.  We are dealing with merging of only 'devel' on Wednesday. 
The script tells you with WARN statements if a package is clearly moved 
from Extras to Core, or if it is ambiguous because dead.package was 
never added during the move.  Upon inspection a decision can be made 
manually.  This script can be easily reused to do the same by comparing 
FC-6 to FC-6 when we merge FC-6 into /cvs/pkgs later.
3) Some packages may have moved from Core to Extras during this cycle. 
The package in /cvs/dist might not be properly marked with dead.package. 
  But this is OK, because these would have been excluded from this copy 
list because they were not packages in rawhide anyway.
4) A few of the WARN DEVEL errors can be fixed even prior to the merge.
5) The less serious WARN MOVED messages, you might even be safe just 
blanket blowing away the existing /cvs/extras/rpms/$i/devel and 
replacing it with the /cvs/dist version.  I am uncertain about this at 
this late hour though.  Sleeping...

# http://people.redhat.com/wtogami/temp/rawhide-srpm-names.txt
SRPMLIST=rawhide-srpm-names.txt
for i in `cat $SRPMLIST` ; do
   # Skip and warn if devel is a dead.package (SANITY CHECK)
   if [ -f /cvs/dist/rpms/$i/devel/dead.package,v ]; then
     echo "SANITY DEAD: $i is a package in rawhide, but marked as 
dead.package in /cvs/dist"
     continue;
   fi ;
   # Skip if devel directory does not exist (SANITY CHECK)
   if [ ! -d /cvs/dist/rpms/$i/devel ]; then
     echo "SANITY MISSING: $i/devel does not exist, skipping..."
     continue;
   fi ;

   # If devel exists in both Core and Extras, figure out why
   if [ -d /cvs/extras/rpms/$i/devel ]; then
     if [ -f /cvs/extras/rpms/$i/devel/dead.package,v ]; then
        # Package moved from FE to FC, you might be able to erase FE and 
replace it with FC
        echo "WARN MOVED: $i moved from FE to FC"
     else
        # Package was moved, but improperly marked, investigate carefully
        echo "WARN DEVEL: $i is alive in both FC and FE devel, investigate"
     fi
   else
     # No conflicts, proceed with copying
     echo /usr/local/bin/setup_package $i
     echo mkdir -p /cvs/extras/rpms/$i/devel ;
     echo cp -rv $i/devel/* /cvs/extras/rpms/$i/devel ;
   fi
done | tee cvscopy.out




More information about the Fedora-infrastructure-list mailing list