Skip to content

Commit

Permalink
meson: fix git ls-files invocations during rebase
Browse files Browse the repository at this point in the history
Normally ls-files prints the full path to files from the repo root. But when
$GIT_WORK_TREE is set, ls-files prints paths relative to the current
directory. When rebasing, $GIT_WORK_TREE is set in the commands executed from
'rebase -x'. This causes problems if meson config is touched and the meson
reconfigures itself. ($GIT_WORK_TREE shouldn't be relevant, since the paths that
ls-files reports don't depend on the work tree, but whatever.) Let's unset
GIT_WORK_TREE to avoid the issue.

$ (cd test; git --git-dir=$PWD/../.git ls-files ':/test/dmidecode-dumps/*.bin')
test/dmidecode-dumps/HP-Z600.bin
test/dmidecode-dumps/Lenovo-ThinkPad-X280.bin
test/dmidecode-dumps/Lenovo-Thinkcentre-m720s.bin

$ (cd test; GIT_WORK_TREE=$PWD/.. git --git-dir=$PWD/../.git ls-files ':/test/dmidecode-dumps/*.bin')
dmidecode-dumps/HP-Z600.bin
dmidecode-dumps/Lenovo-ThinkPad-X280.bin
dmidecode-dumps/Lenovo-Thinkcentre-m720s.bin

Fixes #18148.
  • Loading branch information
keszybz authored and yuwata committed Jan 9, 2021
1 parent 66bf461 commit a412ec5
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 4 deletions.
7 changes: 4 additions & 3 deletions meson.build
Expand Up @@ -3651,10 +3651,11 @@ endforeach

if git.found()
all_files = run_command(
'env', '-u', 'GIT_WORK_TREE',
git,
['--git-dir=@0@/.git'.format(project_source_root),
'ls-files',
':/*.[ch]'])
'--git-dir=@0@/.git'.format(project_source_root),
'ls-files', ':/*.[ch]')

all_files = files(all_files.stdout().split())

custom_target(
Expand Down
3 changes: 2 additions & 1 deletion test/fuzz/meson.build
Expand Up @@ -23,9 +23,10 @@ sanitizers = [['address,undefined', sanitize_address_undefined]]

if git.found()
out = run_command(
'env', '-u', 'GIT_WORK_TREE',
git,
'--git-dir=@0@/.git'.format(project_source_root),
'ls-files', ':/test/fuzz/*/*')
'ls-files', ':/test/fuzz/*/*')
else
out = run_command(
'sh', '-c', 'ls @0@/test/fuzz/*/*'.format(project_source_root))
Expand Down
1 change: 1 addition & 0 deletions test/meson.build
Expand Up @@ -142,6 +142,7 @@ if want_tests != 'false' and dmi_arches.contains(host_machine.cpu_family())

if git.found()
out = run_command(
'env', '-u', 'GIT_WORK_TREE',
git,
'--git-dir=@0@/.git'.format(project_source_root),
'ls-files', ':/test/dmidecode-dumps/*.bin')
Expand Down

0 comments on commit a412ec5

Please sign in to comment.