From d8de29c4472e2f744a1bed37d7ec8710b1feebb8 Mon Sep 17 00:00:00 2001 From: LaMont Jones Date: Tue, 12 Apr 2022 23:33:59 +0000 Subject: [PATCH] forall: fix multi-manifest variables. - REPO_PATH is relative to the root of the client. REPO_OUTERPATH is not needed. - REPO_INNERPATH is relative to the sub manifest root. - REPO_OUTERPATH is the path for the sub manifest root relative to the root of the client. Change-Id: I031692891cfef2634d1358584d27a6a4df735c20 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/334899 Reviewed-by: Mike Frysinger Tested-by: LaMont Jones --- subcmds/forall.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/subcmds/forall.py b/subcmds/forall.py index cc578b52..f9f34e33 100644 --- a/subcmds/forall.py +++ b/subcmds/forall.py @@ -84,6 +84,11 @@ REPO_PROJECT is set to the unique name of the project. REPO_PATH is the path relative the the root of the client. +REPO_OUTERPATH is the path of the sub manifest's root relative to the root of +the client. + +REPO_INNERPATH is the path relative to the root of the sub manifest. + REPO_REMOTE is the name of the remote system from the manifest. REPO_LREV is the name of the revision from the manifest, translated @@ -290,8 +295,9 @@ def DoWork(project, mirror, opt, cmd, shell, cnt, config): env[name] = val setenv('REPO_PROJECT', project.name) - setenv('REPO_PATH', project.relpath) - setenv('REPO_OUTERPATH', project.RelPath(local=opt.this_manifest_only)) + setenv('REPO_OUTERPATH', project.manifest.path_prefix) + setenv('REPO_INNERPATH', project.relpath) + setenv('REPO_PATH', project.RelPath(local=opt.this_manifest_only)) setenv('REPO_REMOTE', project.remote.name) try: # If we aren't in a fully synced state and we don't have the ref the manifest