bug-vc-dwim
[Top][All Lists]
Advanced

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

Re: [Bug-vc-dwim] vc-chlog vs two-word function name like "operator dele


From: Jim Meyering
Subject: Re: [Bug-vc-dwim] vc-chlog vs two-word function name like "operator delete"
Date: Wed, 09 Mar 2011 11:48:13 +0100

Ralf Wildenhues wrote:
> * Jim Meyering wrote on Tue, Mar 08, 2011 at 07:59:02AM CET:
>> If anything, I am inclined to remove ChangeLog from VC.  WDYT?).
>
> That's fine with me, as long as it is generated for the distribution
> tarball.

Good.  I've done this:

>From 453934bd54d14960b861380db11f675ca715e32b Mon Sep 17 00:00:00 2001
From: Jim Meyering <address@hidden>
Date: Wed, 9 Mar 2011 08:57:57 +0100
Subject: [PATCH 1/2] don't version-control ChangeLog.  instead, generate it 
into tarball

* Makefile.am (gen-ChangeLog): New target.
(dist-hook): Depend on it.
* ChangeLog-2011: Rename from ChangeLog.
* ChangeLog: Remove file.
* .gitignore: Ignore more.
---
 .gitignore                  |   46 ++++++++++++++++++++++--------------------
 ChangeLog => ChangeLog-2011 |    0
 Makefile.am                 |   13 +++++++++++-
 3 files changed, 36 insertions(+), 23 deletions(-)
 rename ChangeLog => ChangeLog-2011 (100%)

diff --git a/.gitignore b/.gitignore
index d1c8f09..cbb9929 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,30 +1,32 @@
 *~
+/ChangeLog
+/GNUmakefile
+/INSTALL
+/aclocal.m4
+/autom4te.cache
 /build-aux
+/config.cache
+/config.h
+/config.in
+/config.log
+/config.status
+/configure
 /gnulib.mk
+/m4
 /maint.mk
-GNUmakefile
-INSTALL
+/man/Makefile
+/man/Makefile.in
+/man/vc-chlog.1
+/man/vc-dwim.1
+/stamp-h1
+/tests/*.log
+/tests/Makefile
+/tests/Makefile.in
+/vc-chlog
+/vc-dwim
+/vc-dwim-[1-9]*.tar.gz
+/vc-dwim-[1-9]*.tar.xz
 Makefile
 Makefile.in
 TAGS
-aclocal.m4
-autom4te.cache
-config.h
-config.in
-config.log
-config.status
-configure
-m4
-man/Makefile
-man/Makefile.in
-man/vc-chlog.1
-man/vc-dwim.1
-stamp-h1
 tags
-tests/*.log
-tests/Makefile
-tests/Makefile.in
-vc-chlog
-vc-dwim
-vc-dwim-[0-9.]+tar.bz2
-vc-dwim-[0-9.]+tar.gz
diff --git a/ChangeLog b/ChangeLog-2011
similarity index 100%
rename from ChangeLog
rename to ChangeLog-2011
diff --git a/Makefile.am b/Makefile.am
index 86d6fb3..6ec9fed 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -23,6 +23,7 @@ ACLOCAL_AMFLAGS = -I m4

 bin_SCRIPTS = vc-dwim vc-chlog
 EXTRA_DIST += \
+  ChangeLog-2011 \
   .prev-version \
   bootstrap \
   bootstrap.conf \
@@ -67,5 +68,15 @@ vc-dwim: vc-dwim.pl Makefile

 # Arrange so that .tarball-version appears only in the distribution
 # tarball, and never in a checked-out repository.
-dist-hook:
+dist-hook: gen-ChangeLog
        echo $(VERSION) > $(distdir)/.tarball-version
+
+gen_start_date = 2011-03-08
+.PHONY: gen-ChangeLog
+gen-ChangeLog:
+       $(AM_V_GEN)if test -d .git; then                                \
+         $(top_srcdir)/build-aux/gitlog-to-changelog                   \
+           --since=$(gen_start_date) > $(distdir)/cl-t;                \
+         rm -f $(distdir)/ChangeLog;                                   \
+         mv $(distdir)/cl-t $(distdir)/ChangeLog;                      \
+       fi
--
1.7.4.1.299.ga459d


>From 2ae8f99622e1f17c76b42de6cab8dc411661f5bd Mon Sep 17 00:00:00 2001
From: Jim Meyering <address@hidden>
Date: Wed, 9 Mar 2011 09:00:32 +0100
Subject: [PATCH 2/2] update from gnulib

* bootstrap: Update from gnulib
* gnulib: Update submodule to latest.
---
 bootstrap      |  125 +++++++++++++++++++++++++++++++++++++------------------
 doc/.gitignore |    1 +
 gnulib         |    2 +-
 3 files changed, 86 insertions(+), 42 deletions(-)

diff --git a/bootstrap b/bootstrap
index aab03a8..f004ad3 100755
--- a/bootstrap
+++ b/bootstrap
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Print a version string.
-scriptversion=2010-10-08.16; # UTC
+scriptversion=2011-03-03.12; # UTC

 # Bootstrap this package from checked-out sources.

@@ -42,24 +42,32 @@ local_gl_dir=gl
 bt='._bootmp'
 bt_regex=`echo "$bt"| sed 's/\./[.]/g'`
 bt2=${bt}2
+me=$0

 usage() {
   cat <<EOF
-Usage: $0 [OPTION]...
+Usage: $me [OPTION]...
 Bootstrap this package from the checked-out sources.

 Options:
- --gnulib-srcdir=DIRNAME  Specify the local directory where gnulib
+ --gnulib-srcdir=DIRNAME  specify the local directory where gnulib
                           sources reside.  Use this if you already
                           have gnulib sources on your machine, and
                           do not want to waste your bandwidth downloading
-                          them again.  Defaults to \$GNULIB_SRCDIR.
- --copy                   Copy files instead of creating symbolic links.
- --force                  Attempt to bootstrap even if the sources seem
-                          not to have been checked out.
- --skip-po                Do not download po files.
-
-If the file $0.conf exists in the same directory as this script, its
+                          them again.  Defaults to \$GNULIB_SRCDIR
+ --bootstrap-sync         if this bootstrap script is not identical to
+                          the version in the local gnulib sources,
+                          update this script, and then restart it with
+                          /bin/sh or the shell \$CONFIG_SHELL
+ --no-bootstrap-sync      do not check whether bootstrap is out of sync
+ --copy                   copy files instead of creating symbolic links
+ --force                  attempt to bootstrap even if the sources seem
+                          not to have been checked out
+ --no-git                 do not use git to update gnulib.  Requires that
+                          --gnulib-srcdir point to a correct gnulib snapshot
+ --skip-po                do not download po files
+
+If the file $me.conf exists in the same directory as this script, its
 contents are read as shell variables to configure the bootstrap.

 For build prerequisites, environment variables like \$AUTOCONF and \$AMTAR
@@ -168,6 +176,13 @@ copy=false
 # on which version control system (if any) is used in the source directory.
 vc_ignore=auto

+# Set this to true in bootstrap.conf to enable --bootstrap-sync by
+# default.
+bootstrap_sync=false
+
+# Use git to update gnulib sources
+use_git=true
+
 # find_tool ENVVAR NAMES...
 # -------------------------
 # Search for a required program.  Use the value of ENVVAR, if set,
@@ -192,11 +207,11 @@ find_tool ()
     find_tool_error_prefix="\$$find_tool_envvar: "
   fi
   if test x"$find_tool_res" = x; then
-    echo >&2 "$0: one of these is required: $find_tool_names"
+    echo >&2 "$me: one of these is required: $find_tool_names"
     exit 1
   fi
   ($find_tool_res --version </dev/null) >/dev/null 2>&1 || {
-    echo >&2 "$0: ${find_tool_error_prefix}cannot run $find_tool_res --version"
+    echo >&2 "$me: ${find_tool_error_prefix}cannot run $find_tool_res 
--version"
     exit 1
   }
   eval "$find_tool_envvar=\$find_tool_res"
@@ -239,12 +254,25 @@ do
     checkout_only_file=;;
   --copy)
     copy=true;;
+  --bootstrap-sync)
+    bootstrap_sync=true;;
+  --no-bootstrap-sync)
+    bootstrap_sync=false;;
+  --no-git)
+    use_git=false;;
   *)
     echo >&2 "$0: $option: unknown option"
     exit 1;;
   esac
 done

+if $use_git || test -d "$GNULIB_SRCDIR"; then
+  :
+else
+  echo "$0: Error: --no-git requires --gnulib-srcdir" >&2
+  exit 1
+fi
+
 if test -n "$checkout_only_file" && test ! -r "$checkout_only_file"; then
   echo "$0: Bootstrapping from a non-checked-out distribution is risky." >&2
   exit 1
@@ -344,17 +372,18 @@ get_version() {
   $app --version >/dev/null 2>&1 || return 1

   $app --version 2>&1 |
-  sed -n '# extract version within line
-          s/.*[v ]\{1,\}\([0-9]\{1,\}\.[.a-z0-9-]*\).*/\1/
-          t done
+  sed -n '# Move version to start of line.
+          s/.*[v ]\([0-9]\)/\1/

-          # extract version at start of line
-          s/^\([0-9]\{1,\}\.[.a-z0-9-]*\).*/\1/
-          t done
+          # Skip lines that do not start with version.
+          /^[0-9]/!d

-          d
+          # Remove characters after the version.
+          s/[^.a-z0-9-].*//
+
+          # The first component must be digits only.
+          s/^\([0-9]*\)[a-z-].*/\1/

-          :done
           #the following essentially does s/5.005/5.5/
           s/\.0*\([1-9]\)/.\1/g
           p
@@ -369,18 +398,22 @@ check_versions() {
     if test "$app" = libtool; then
       app=libtoolize
     fi
+    # Exempt git if --no-git is in effect.
+    if test "$app" = git; then
+      $use_git || continue
+    fi
     # Honor $APP variables ($TAR, $AUTOCONF, etc.)
     appvar=`echo $app | tr '[a-z]-' '[A-Z]_'`
     test "$appvar" = TAR && appvar=AMTAR
     eval "app=\${$appvar-$app}"
     inst_ver=$(get_version $app)
     if [ ! "$inst_ver" ]; then
-      echo "Error: '$app' not found" >&2
+      echo "$me: Error: '$app' not found" >&2
       ret=1
     elif [ ! "$req_ver" = "-" ]; then
       latest_ver=$(sort_ver $req_ver $inst_ver | cut -d' ' -f2)
       if [ ! "$latest_ver" = "$inst_ver" ]; then
-        echo "Error: '$app' version == $inst_ver is too old" >&2
+        echo "$me: Error: '$app' version == $inst_ver is too old" >&2
         echo "       '$app' version >= $req_ver is required" >&2
         ret=1
       fi
@@ -413,9 +446,9 @@ fi
 if ! printf "$buildreq" | check_versions; then
   echo >&2
   if test -f README-prereq; then
-    echo "See README-prereq for how to get the prerequisite programs" >&2
+    echo "$0: See README-prereq for how to get the prerequisite programs" >&2
   else
-    echo "Please install the prerequisite programs" >&2
+    echo "$0: Please install the prerequisite programs" >&2
   fi
   exit 1
 fi
@@ -427,11 +460,11 @@ if test -d .git && (git --version) >/dev/null 2>/dev/null 
; then
   if git config merge.merge-changelog.driver >/dev/null ; then
     :
   elif (git-merge-changelog --version) >/dev/null 2>/dev/null ; then
-    echo "initializing git-merge-changelog driver"
+    echo "$0: initializing git-merge-changelog driver"
     git config merge.merge-changelog.name 'GNU-style ChangeLog merge driver'
     git config merge.merge-changelog.driver 'git-merge-changelog %O %A %B'
   else
-    echo "consider installing git-merge-changelog from gnulib"
+    echo "$0: consider installing git-merge-changelog from gnulib"
   fi
 fi

@@ -447,7 +480,7 @@ git_modules_config () {
 }

 gnulib_path=`git_modules_config submodule.gnulib.path`
-: ${gnulib_path=gnulib}
+test -z "$gnulib_path" && gnulib_path=gnulib

 # Get gnulib files.

@@ -500,6 +533,16 @@ case ${GNULIB_SRCDIR--} in
   ;;
 esac

+if $bootstrap_sync; then
+  cmp -s "$0" "$GNULIB_SRCDIR/build-aux/bootstrap" || {
+    echo "$0: updating bootstrap and restarting..."
+    exec sh -c \
+      'cp "$1" "$2" && shift && exec "${CONFIG_SHELL-/bin/sh}" "$@"' \
+      -- "$GNULIB_SRCDIR/build-aux/bootstrap" \
+      "$0" "$@" --no-bootstrap-sync
+  }
+fi
+
 gnulib_tool=$GNULIB_SRCDIR/gnulib-tool
 <$gnulib_tool || exit

@@ -508,7 +551,7 @@ gnulib_tool=$GNULIB_SRCDIR/gnulib-tool
 download_po_files() {
   subdir=$1
   domain=$2
-  echo "$0: getting translations into $subdir for $domain..."
+  echo "$me: getting translations into $subdir for $domain..."
   cmd=`printf "$po_download_command_format" "$domain" "$subdir"`
   eval "$cmd"
 }
@@ -542,7 +585,7 @@ update_po_files() {
         ! test -f "$po_dir/$po.po" ||
         ! $SHA1SUM -c --status "$cksum_file" \
             < "$new_po" > /dev/null; then
-      echo "updated $po_dir/$po.po..."
+      echo "$me: updated $po_dir/$po.po..."
       cp "$new_po" "$po_dir/$po.po" \
           && $SHA1SUM < "$new_po" > "$cksum_file"
     fi
@@ -587,13 +630,13 @@ symlink_to_dir()
     if $copy; then
       {
         test ! -h "$dst" || {
-          echo "$0: rm -f $dst" &&
+          echo "$me: rm -f $dst" &&
           rm -f "$dst"
         }
       } &&
       test -f "$dst" &&
       cmp -s "$src" "$dst" || {
-        echo "$0: cp -fp $src $dst" &&
+        echo "$me: cp -fp $src $dst" &&
         cp -fp "$src" "$dst"
       }
     else
@@ -607,7 +650,7 @@ symlink_to_dir()
         *)
           case /$dst/ in
           *//* | */../* | */./* | /*/*/*/*/*/)
-             echo >&2 "$0: invalid symlink calculation: $src -> $dst"
+             echo >&2 "$me: invalid symlink calculation: $src -> $dst"
              exit 1;;
           /*/*/*/*/)   dot_dots=../../../;;
           /*/*/*/)     dot_dots=../../;;
@@ -615,7 +658,7 @@ symlink_to_dir()
           esac;;
         esac

-        echo "$0: ln -fs $dot_dots$src $dst" &&
+        echo "$me: ln -fs $dot_dots$src $dst" &&
         ln -fs "$dot_dots$src" "$dst"
       }
     fi
@@ -648,7 +691,7 @@ cp_mark_as_generated()
       cmp -s "$cp_src" "$cp_dst" || {
         # Copy the file first to get proper permissions if it
         # doesn't already exist.  Then overwrite the copy.
-        echo "$0: cp -f $cp_src $cp_dst" &&
+        echo "$me: cp -f $cp_src $cp_dst" &&
         rm -f "$cp_dst" &&
         cp "$cp_src" "$cp_dst-t" &&
         sed "s!$bt_regex/!!g" "$cp_src" > "$cp_dst-t" &&
@@ -666,7 +709,7 @@ cp_mark_as_generated()
       if cmp -s "$cp_dst-t" "$cp_dst"; then
         rm -f "$cp_dst-t"
       else
-        echo "$0: cp $cp_src $cp_dst # with edits" &&
+        echo "$me: cp $cp_src $cp_dst # with edits" &&
         mv -f "$cp_dst-t" "$cp_dst"
       fi
     fi
@@ -685,7 +728,7 @@ version_controlled_file() {
   elif test -d .svn; then
     svn log -r HEAD "$dir/$file" > /dev/null 2>&1 && found=yes
   else
-    echo "$0: no version control for $dir/$file?" >&2
+    echo "$me: no version control for $dir/$file?" >&2
   fi
   test $found = yes
 }
@@ -709,18 +752,18 @@ slurp() {
         remove_intl='/^[^#].*\/intl/s/^/#/;'"s!$bt_regex/!!g"
         sed "$remove_intl" $1/$dir/$file |
         cmp - $dir/$gnulib_mk > /dev/null || {
-          echo "$0: Copying $1/$dir/$file to $dir/$gnulib_mk ..." &&
+          echo "$me: Copying $1/$dir/$file to $dir/$gnulib_mk ..." &&
           rm -f $dir/$gnulib_mk &&
           sed "$remove_intl" $1/$dir/$file >$dir/$gnulib_mk &&
           gnulib_mk_hook $dir/$gnulib_mk
         }
       elif { test "${2+set}" = set && test -r $2/$dir/$file; } ||
            version_controlled_file $dir $file; then
-        echo "$0: $dir/$file overrides $1/$dir/$file"
+        echo "$me: $dir/$file overrides $1/$dir/$file"
       else
         copied=$copied$sep$file; sep=$nl
         if test $file = gettext.m4; then
-          echo "$0: patching m4/gettext.m4 to remove need for intl/* ..."
+          echo "$me: patching m4/gettext.m4 to remove need for intl/* ..."
           rm -f $dir/$file
           sed '
             /^AC_DEFUN(\[AM_INTL_SUBDIR],/,/^]/c\
@@ -831,7 +874,7 @@ grep -E '^[  ]*AC_CONFIG_HEADERS?\>' configure.ac 
>/dev/null ||

 for command in \
   libtool \
-  "${ACLOCAL-aclocal} --force -I m4 $ACLOCAL_FLAGS" \
+  "${ACLOCAL-aclocal} --force -I '$m4_base' $ACLOCAL_FLAGS" \
   "${AUTOCONF-autoconf} --force" \
   "${AUTOHEADER-autoheader} --force" \
   "${AUTOMAKE-automake} --add-missing --copy --force-missing"
@@ -842,7 +885,7 @@ do
     command="${LIBTOOLIZE-libtoolize} -c -f"
   fi
   echo "$0: $command ..."
-  $command || exit
+  eval "$command" || exit
 done


diff --git a/doc/.gitignore b/doc/.gitignore
index 4c890f7..639f3e3 100644
--- a/doc/.gitignore
+++ b/doc/.gitignore
@@ -1,4 +1,5 @@
 /fdl.texi
+/gendocs_template
 /stamp-vti
 vc-dwim.aux
 vc-dwim.cp
diff --git a/gnulib b/gnulib
index a2e8447..fbfced5 160000
--- a/gnulib
+++ b/gnulib
@@ -1 +1 @@
-Subproject commit a2e8447d6b8abe23504f4f2d4757a60a2e8bee54
+Subproject commit fbfced515f325dd000c80fa35ade86e567d0ea3c
--
1.7.4.1.299.ga459d



reply via email to

[Prev in Thread] Current Thread [Next in Thread]