Re: .cvsignore audit



I use a script from Martin Baulig to do the cleanup.

You have it attached.

Cheers.


El dom, 30-06-2002 a las 19:49, Chipzz escribió:
> OK, so I'm building GNOME 2 from cvs for a while now.
> 
> Since I noticed make clean doesn't do it job very well in all cases,
> and make distclean doesn't either, I made a little script to reverse my
> tree to the state it was in just after I checked it out. This script is
> included here:
> 
> #!/bin/bash
> for i in `find . -name .cvsignore` ; do
> (
>  echo $i | sed 's:/.cvsignore::'
>  cd `echo $i | sed 's:/.cvsignore::'`
>  rm -fRv `cat .cvsignore`
> )
> done
> 
> I noticed that after running this script on my whole tree some of the
> modules were rendered inbuildable. So I checked out a clean copy of the
> whole tree, copied it to a new location, and ran the above script on
> the second tree, followed by a diff -ur between the two trees. The re-
> sults are included below, and were in some cases astounding. I have
> grouped the results together according to what kind they are.
> 
> All modules in this list are HEAD, except gtk+ and glib which are the
> stable branches from CVS.
> 
> I don't know what the policy is about removing files from CVS. If our
> policy is not to do this, please disregard my statements about this.
> 
> | Only in src2/at-spi: COPYING
> | Only in src2/gnome-desktop: COPYING
> | Only in src2/gnome-panel: COPYING
> | Only in src2/gnome-session: COPYING
> | Only in src2/metacity: COPYING
> This file is installed by automake. Don't know if automake replaces this
> file when it's allready there. We have 2 possibilities here:
> 
> a) automake doesn't replace this file when it exists, and we have our
>    version. If we have our own version, then why is it in .cvsignore?
> b) automake replaces it regardless. So it's generated and shouldn't be
>    in cvs anyway.
> 
> Also note that allmost all modules have this file in CVS.
> 
> | Only in src2/eel: po
> | Only in src2/yelp: po
> No comment ;)
> 
> | Only in src2/gnome-applets: macros
> | Only in src2/gnome-control-center: macros
> Not sure, but I think it's generated and shouldn't be in CVS. Please
> correct me if I'm wrong. (It's possible that this fir may have to be in
> CVS if we have some custom m4 files in there - not sure how much this
> occurs thou).
> 
> | Only in src2/gnome-control-center/capplets/background: background.desktop.in
> | Only in src2/gnumeric: gnumeric.desktop.in
> These are definately wrong.
> 
> | Only in src2/gnome-applets/gweather/docs/C: gweather
> | Only in src2/gnomeicu/doc/C: gnomeicu
> | Only in src2/gnome-utils/gdialog/doc/C: gdialog
> | Only in src2/gnome-utils/gdialog/help/C: gdialog
> These appear to be harmless and the dirs should be removed from CVS
> 
> | Only in src2/gal/po: POTFILES.skip
> Not sure, but I think this file shouldn't be in .cvsignore.
> 
> | Only in src2/gconf: ABOUT-NLS
> No idea at all.
> 
> | Only in src2/gconf-editor/src: gconf-marshal.c
> | Only in src2/gconf-editor/src: gconf-marshal.h
> These files are generated from src2/gconf-editor/src/gconf-marshal.list
> and shouldn't be in CVS.
> 
> | Only in src2/gnomeicu/src: .xvpics
> Again, I think this dir should not be in CVS.
> 
> | Only in src2/gnumeric/doc/es: func.defs
> | Only in src2/gnumeric/doc/ja: func-list.sgml
> | Only in src2/gnumeric/doc/ja: func.defs
> | Only in src2/gnumeric/doc/ja: functions.sgml
> | Only in src2/gnumeric/doc/ru: func.defs
> Not sure about these.
> 
> | Only in src2/gnumeric/plugins/dif: plugin.xml.in
> | Only in src2/gnumeric/plugins/sc: plugin.xml.in
> | Only in src2/gnumeric/plugins/sylk: plugin.xml.in
> These look wrong to. In the .cvsignore file there's this line which is
> the culprit:
> 
> *.in
> 
> Which should be Makefile.in I guess (Makefile is allready in there).
> 
> | Only in src2/gtk+/po: Makefile.in.in
> I think this file shouldn't be in CVS.
> 
> | Only in src2/gtk+/tests: makefile.msc
> | Only in src2/glib: makefile.mingw
> | Only in src2/glib: makefile.msc
> Not sure about these.
> 
> | Only in src2/libbonoboui/samples/compound-doc: bonobo-hello
> | Only in src2/libbonoboui/samples/compound-doc: container
> Particulary bad because container is in Makefile.am SUBDIRS, which cau-
> ses the build to fail.
> 
> | Only in src2/libgnomeprintui/doc: html
> | Only in src2/libgnomeprintui/doc: sgml
> Not sure.
> 
> | Only in src2/libgnomeprintui/tests: testprint.c
> | Only in src2/libgnomeprintui/tests: testprint4.c
> Ok, testprint.c is in the Makefile.am but is commented out. testprint4.c
> is not in there and can I think be removed from CVS.
> Also none of the other .c files are in the Makefile.am.
> 
> | Only in src2/libgnomeui/images: .cvsignore
> How did this get in there in the first place? If the person who made
> this change had a local version of this dir and changed the .cvsignore
> file, and therefore didn't want his version of .cvsignore in CVS,
> shouldn't the cvs binary on his system have ignored this file
> (.cvsignore being in .cvsignore)? Looks like a broken cvs binary, or
> maybe a bug. Or is this intentional behaviour? (I checked, .cvsignore
> is actually in there, not a wildcard or something)
> 
> | Only in src2/pan: intl
> Not sure, but again, I think it shouldn't be in CVS.
> gnome-applets also has: gnome-applets/battstat/intl which shouldn't be
> in CVS either if I'm right.
> 
> | Only in src2/pan/tests: Makefile.am
> | Only in src2/pan/tests/data: Makefile.am
> | Only in src2/pan/tests/data/cache: Makefile.am
> | Only in src2/pan/tests/data/save: Makefile.am
> | Only in src2/pan/tests/data/tmp: Makefile.am
> Basically, all of these files suffer from the same problem: they have
> 'Makefile*' in them.
> Also, the 2 last dirs are basically empty and I think shouldn't be in
> CVS anyway.
> 
> OK, that's it for now. I also noticed that some modules don't have *.o
> in their .cvsignore files for source dirs, but I'll get to that later.
> I hope I didn't step on any toes and that I contributed something use-
> full.
> 
> Kind regards,
> 
> Chipzz AKA
> Jan Van Buggenhout
> -- 
> 
> --------------------------------------------------------------------------
>                   UNIX isn't dead - It just smells funny
>                             Chipzz ULYSSIS Org
> --------------------------------------------------------------------------
> 
> 
> _______________________________________________
> desktop-devel-list mailing list
> desktop-devel-list gnome org
> http://mail.gnome.org/mailman/listinfo/desktop-devel-list
-- 
Carlos Perelló Marín
mailto:carlos gnome-db org
mailto:carlos perello hispalinux es
http://www.gnome-db.org
http://www.Hispalinux.es
Valencia - Spain
#!/usr/bin/perl -w

use strict;

die "Usage: $0 directory" unless $#ARGV == 0;

sub clean_dir($);

sub clean_dir($) {
    my ($dir) = @_;

    print STDERR "Cleaning $dir ...\n";

    my (@dirs, @files);

    my $entfile = qq[$dir/CVS/Entries];
    open ENTRIES, $entfile or die "open ($entfile): $!";
    while (<ENTRIES>) {
	chop;

	next if /^D\s*$/;

	if (m,^D/(.*?)/,) {
	    push @dirs, $1;
	    next;
	} elsif (m,^/(.*?)/,) {
	    push @files, $1;
	    next;
	} else {
	    warn "Can't parse $entfile: `$_'";
	    next;
	}
    }
    close ENTRIES;

    my @readdir;
    my @removelist;

    my $file;
    opendir DIR, $dir or die
	"opendir ($dir): $!";
    while (defined ($file = readdir DIR)) {
	next if $file eq '.' or $file eq '..' or $file eq 'CVS';
	push @readdir, $file;
    }
    closedir DIR;

    foreach $file (@readdir) {
	my $path = qq[$dir/$file];

	if (-d $path) {
	    my $found = 0;

	    foreach (@dirs) {
		next unless $_ eq $file;
		$found = 1;
	    }

	    push @removelist, $path unless $found;

	    clean_dir ($path) if $found;
	} elsif (-f $path) {
	    my $found = 0;

	    foreach (@files) {
		next unless $_ eq $file;
		$found = 1;
	    }

	    push @removelist, $path unless $found;
	}
    }

    foreach (@removelist) {
	system "rm -rf $_";
    }

}

clean_dir ($ARGV [0]);

Attachment: signature.asc
Description: Esta parte del mensaje esta firmada digitalmente



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