# HG changeset patch # User Akim Demaille # Date 1355486315 -3600 # Node ID 008ba4eb886e37efe18c83e83dc155c8859305cd # Parent e3ebfa7bb2153417ae405b47543e538d45b5d437 gnu-web-doc-update: add all the new files, even in new directories See http://lists.gnu.org/archive/html/bug-gnulib/2012-12/msg00057.html * build-aux/gnu-web-doc-update (--dry-run, $dryrun): New. Use it. (main): Don't use cvsutils to get the list of unknown files, just add all the existing files and directories. diff --git a/ChangeLog b/ChangeLog --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2012-12-16 Akim Demaille + + gnu-web-doc-update: add all the new files, even in new directories + See http://lists.gnu.org/archive/html/bug-gnulib/2012-12/msg00057.html + * build-aux/gnu-web-doc-update (--dry-run, $dryrun): New. + Use it. + (main): Don't use cvsutils to get the list of unknown files, + just add all the existing files and directories. + 2012-12-16 Akim Demaille gnu-web-doc-update: improve --help diff --git a/build-aux/gnu-web-doc-update b/build-aux/gnu-web-doc-update --- a/build-aux/gnu-web-doc-update +++ b/build-aux/gnu-web-doc-update @@ -39,6 +39,7 @@ Options: -C, --builddir=DIR location of (configured) Makefile (default: .) + -n, --dry-run don't actually commit anything --help print this help, then exit --version print version number, then exit @@ -100,12 +101,12 @@ # Requirements: everything required to bootstrap your package, plus # these. find_tool CVS cvs -find_tool CVSU cvsu find_tool GIT git find_tool RSYNC rsync find_tool XARGS gxargs xargs builddir=. +dryrun= while test $# != 0 do # Handle --option=value by splitting apart and putting back on argv. @@ -121,6 +122,7 @@ case $1 in --help|--version) ${1#--};; -C|--builddir) shift; builddir=$1; shift ;; + -n|--dry-run) dryrun=echo; shift;; --*) die "unrecognized option: $1";; *) break;; esac @@ -139,7 +141,7 @@ cleanup() { __st=$? - rm -rf "$tmp" + $dryrun rm -rf "$tmp" $GIT checkout "$current_branch" $GIT submodule update --recursive $GIT branch -d $tmp_branch @@ -172,12 +174,15 @@ ( cd $tmp/$pkg/manual - # Add any new files: - $CVSU --types='?' \ - | sed s/..// \ - | $XARGS --no-run-if-empty -- $CVS add -ko + # Add all the files. This is simpler than trying to add only the + # new ones because of new directories: it would require iterating on + # adding the outer directories, and then their contents. + # + # find guarantees that we add outer directories first. + find . -name CVS -prune -o -print \ + | $XARGS --no-run-if-empty -- $dryrun $CVS add -ko - $CVS ci -m $version + $dryrun $CVS ci -m $version ) # Local variables: