public inbox for git@vger.kernel.org 
 help / color / mirror / Atom feed
From: Martin Waitz <tali@admingilde•org>
To: git@vger•kernel.org
Subject: [PATCH] allow commands to be executed in submodules
Date: Sun, 20 May 2007 17:39:08 +0200	[thread overview]
Message-ID: <20070520153908.GF5412@admingilde.org> (raw)

Add an extra "submodule" field to struct child_process to be able to
easily start commands which are to be executed in a submodule
repository.

Signed-off-by: Martin Waitz <tali@admingilde•org>
---

 run-command.c     |   13 ++++++
 run-command.h     |    1 +
 2 files changed, 14 insertions(+), 0 deletions(-)

diff --git a/run-command.c b/run-command.c
index eff523e..c2475e4 100644
--- a/run-command.c
+++ b/run-command.c
@@ -73,6 +73,19 @@ int start_command(struct child_process *cmd)
 			close(cmd->out);
 		}
 
+		if (cmd->submodule) {
+			int err = chdir(cmd->submodule);
+			if (err) {
+				die("cannot exec %s in %s.",
+					cmd->argv[0], cmd->submodule);
+			}
+			/* don't inherit supermodule environment */
+			unsetenv(GIT_DIR_ENVIRONMENT);
+			unsetenv(DB_ENVIRONMENT);
+			unsetenv(INDEX_ENVIRONMENT);
+			unsetenv(GRAFT_ENVIRONMENT);
+		}
+
 		if (cmd->git_cmd) {
 			execv_git_cmd(cmd->argv);
 		} else {
diff --git a/run-command.h b/run-command.h
index 3680ef9..2940186 100644
--- a/run-command.h
+++ b/run-command.h
@@ -16,6 +16,7 @@ struct child_process {
 	pid_t pid;
 	int in;
 	int out;
+	const char *submodule;
 	unsigned close_in:1;
 	unsigned close_out:1;
 	unsigned no_stdin:1;
-- 
1.5.2.2.g081e


-- 
Martin Waitz

             reply	other threads:[~2007-05-20 15:39 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-05-20 15:39 Martin Waitz [this message]
2007-05-20 18:14 ` [PATCH] allow commands to be executed in submodules Alex Riesen
2007-05-20 18:25   ` Junio C Hamano
2007-05-20 20:48     ` Martin Waitz
2007-05-20 20:59       ` Alex Riesen
2007-05-20 21:08         ` Martin Waitz
     [not found]   ` <20070521090339.GH942MdfPADPa@greensroom.kotnet.org>
2007-05-21 22:48     ` [PATCH] Add ability to specify environment extension to run_command Alex Riesen
2007-05-21 23:02       ` Junio C Hamano
2007-05-22  6:03         ` Martin Waitz
2007-05-22  6:33           ` Junio C Hamano
2007-05-22  6:38             ` Shawn O. Pearce
2007-05-22  6:54               ` Sven Verdoolaege
2007-05-22 21:51             ` Alex Riesen
2007-05-22 21:47         ` Alex Riesen
2007-05-22 21:48           ` [PATCH] Add run_command_v_opt_cd: chdir into a directory before exec Alex Riesen
2007-05-22 21:48             ` [PATCH] Add ability to specify environment extension to run_command Alex Riesen
2007-05-22 21:49               ` [PATCH] Allow environment variables to be unset in the processes started by run_command Alex Riesen
2007-05-22 22:19           ` [PATCH] Add ability to specify environment extension to run_command Junio C Hamano
2007-05-22 23:14             ` Alex Riesen
2007-05-23 20:21               ` [PATCH] Allow environment variables to be unset in the processes started by run_command Alex Riesen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20070520153908.GF5412@admingilde.org \
    --to=tali@admingilde$(echo .)org \
    --cc=git@vger$(echo .)kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox