Configuration Information [Automatically generated, do not change]:
Machine: x86_64
OS: linux-gnu
Compiler: gcc
Compilation CFLAGS: -DPROGRAM='bash' -DCONF_HOSTTYPE='x86_64'
-DCONF_OSTYPE='l$
uname output: Linux 20180329x99-a 4.13.0-38-generic #43~16.04.1-Ubuntu
SMP Wed $
Machine Type: x86_64-pc-linux-gnu
Bash Version: 4.3
Patch Level: 48
Release Status: release
Description:
There seems to be a new incompatibility or incorrect string parsing in
how the Google "repo" utility interacts with the bash shell. Previously
I could invoke the "repo" command, passing to it a string to execute
multiple commands separated by semicolons (';' characters), and all
commands would execute. Now with the latest bash 4.3.38, only the first
command executes, and processing stops at the semicolon.
Please see below reproduction steps.
Repeat-By:
Using bash 4.3.11(1)-release, installed with Ubuntu 14.04 LTS, the command
repo forall -c "pwd; git log -n 1 --format=fuller ; echo"
produces correct output: for each and every git repository encountered,
the above command outputs
1) The current directory
2) Information about the latest commit in the repository
3) A blank line
Using bash 4.3.48(1)-release, installed with Ubuntu 16.04 LTS, the command
repo forall -c "pwd; git log -n 1 --format=fuller ; echo"
produces incomplete output: for each and every git repository
encountered, the above command outputs
1) The current directory
and nothing else. (Subcommands after the semicolon do not get invoked.)
The above were all tested with the exact same versions of "repo" and "git":
repo version v1.12.37
(from https://gerrit.googlesource.com/git-repo)
repo launcher version 1.23
(from /usr/local/bin/repo)
git version 2.7.4
Python 2.7.12 (default, Dec 4 2017, 14:50:18)
[GCC 5.4.0 20160609]
Regards,
Tow