On Debian GNU/Linux unstable: $ git clone git://git.sv.gnu.org/findutils remote: Total 17963 (delta 14240), reused 17927 (delta 14216) Receiving objects: 100% (17963/17963), 7.53 MiB | 309 KiB/s, done. Resolving deltas: 100% (14240/14240), done. $ sh import-gnulib.sh Checking the submodule directory layout... The submodule directory layout looks OK. Submodule 'gnulib' (git://git.sv.gnu.org/gnulib.git) registered for path 'gnulib' Cloning into gnulib... remote: Counting objects: 127481, done. remote: Compressing objects: 100% (21079/21079), done. remote: Total 127481 (delta 106613), reused 127173 (delta 106344) Receiving objects: 100% (127481/127481), 22.00 MiB | 511 KiB/s, done. Resolving deltas: 100% (106613/106613), done. Submodule path 'gnulib': checked out '372ef2a0e94ec6ee85b5fc4bab763154ec11420d' ERROR: Merge driver git-merge-changelog is not executable. ERROR: Please fix .git/config or install git-merge-changelog
But with my current system setup, I'm routinely and correctly using git-merge-changelog with other projcts (e.g., automake and autoconf); in fact: $ git config -l | grep merge merge.merge-changelog.name=GNU-style ChangeLog merge driver merge.merge-changelog.driver=git-merge-changelog %O %A %B branch.master.merge=refs/heads/master $ git-merge-changelog --help Usage: git-merge-changelog [OPTION] O-FILE-NAME A-FILE-NAME B-FILE-NAME Merges independent modifications of a ChangeLog style file. O-FILE-NAME names the original file, the ancestor of the two others. A-FILE-NAME names the publicly modified file. B-FILE-NAME names the user-modified file. Writes the merged file into A-FILE-NAME. Informative output: -h, --help display this help and exit -V, --version output version information and exit Report bugs to <bug-gnu-gett...@gnu.org>. The "quick & dirty" diff below fixes the problem for me. Regards, Stefano -*-*-*- diff --git a/import-gnulib.sh b/import-gnulib.sh index 9912e09..31005da 100755 --- a/import-gnulib.sh +++ b/import-gnulib.sh @@ -271,9 +271,9 @@ Example: driver="$(git config --get merge.merge-changelog.driver | sed -e 's/[ ].*//')" if [ $? -eq 0 ]; then - if ! [ -x "$driver" ]; then - echo "ERROR: Merge driver $driver is not executable." >&2 - echo "ERROR: Please fix $config_file or install $driver" >&2 + if ! ("$driver" --help) </dev/null >/dev/null 2>&1; then + echo "ERROR: Merge driver $driver doesn't work." >&2 + echo "ERROR: Please fix $config_file or correctly install $driver" >&2 # Always fatal - if configured, the merge driver should work. exit 1 else