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