* [PATCH 0/2] Respun patches for git aliases enhancement @ 2007-02-11 0:33 Theodore Ts'o 2007-02-11 0:33 ` [PATCH 1/2] Print a sane error message if an alias expands to an invalid git command Theodore Ts'o 2007-02-11 16:32 ` [PATCH 0/2] Respun patches for git aliases enhancement Johannes Schindelin 0 siblings, 2 replies; 4+ messages in thread From: Theodore Ts'o @ 2007-02-11 0:33 UTC (permalink / raw) To: Junio C Hamano; +Cc: git These patches have been respun to fix a spelling typo and in response to comments from Johannes. - Ted ^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH 1/2] Print a sane error message if an alias expands to an invalid git command 2007-02-11 0:33 [PATCH 0/2] Respun patches for git aliases enhancement Theodore Ts'o @ 2007-02-11 0:33 ` Theodore Ts'o 2007-02-11 0:33 ` [PATCH 2/2] Allow aliases to expand to shell commands Theodore Ts'o 2007-02-11 16:32 ` [PATCH 0/2] Respun patches for git aliases enhancement Johannes Schindelin 1 sibling, 1 reply; 4+ messages in thread From: Theodore Ts'o @ 2007-02-11 0:33 UTC (permalink / raw) To: Junio C Hamano; +Cc: git, Theodore Ts'o Signed-off-by: "Theodore Ts'o" <tytso@mit.edu> --- git.c | 9 ++++++++- 1 files changed, 8 insertions(+), 1 deletions(-) diff --git a/git.c b/git.c index 82a8357..c43d4ff 100644 --- a/git.c +++ b/git.c @@ -387,8 +387,15 @@ int main(int argc, const char **argv, char **envp) done_alias = 1; } - if (errno == ENOENT) + if (errno == ENOENT) { + if (done_alias) { + fprintf(stderr, "Expansion of alias '%s' failed; " + "'%s' is not a git-command\n", + cmd, argv[0]); + exit(1); + } help_unknown_cmd(cmd); + } fprintf(stderr, "Failed to run command '%s': %s\n", cmd, strerror(errno)); -- 1.5.0.rc4.2.g4249 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH 2/2] Allow aliases to expand to shell commands 2007-02-11 0:33 ` [PATCH 1/2] Print a sane error message if an alias expands to an invalid git command Theodore Ts'o @ 2007-02-11 0:33 ` Theodore Ts'o 0 siblings, 0 replies; 4+ messages in thread From: Theodore Ts'o @ 2007-02-11 0:33 UTC (permalink / raw) To: Junio C Hamano; +Cc: git, Theodore Ts'o If the alias expansion is prefixed with an exclamation point, treat it as a shell command which is run using system(3). Signed-off-by: "Theodore Ts'o" <tytso@mit.edu> --- Documentation/config.txt | 6 ++++++ git.c | 10 ++++++++++ 2 files changed, 16 insertions(+), 0 deletions(-) diff --git a/Documentation/config.txt b/Documentation/config.txt index 4e650af..e6e9409 100644 --- a/Documentation/config.txt +++ b/Documentation/config.txt @@ -222,6 +222,12 @@ alias.*:: spaces, the usual shell quoting and escaping is supported. quote pair and a backslash can be used to quote them. + If the alias expansion is prefixed with an exclamation point, + it will be treated as a shell command. For example, defining + "alias.new = !gitk --all --not ORIG_HEAD", the invocation + "git new" is equivalent to running the shell command + "gitk --all --not ORIG_HEAD". + apply.whitespace:: Tells `git-apply` how to handle whitespaces, in the same way as the '--whitespace' option. See gitlink:git-apply[1]. diff --git a/git.c b/git.c index c43d4ff..2f10d50 100644 --- a/git.c +++ b/git.c @@ -159,6 +159,16 @@ static int handle_alias(int *argcp, const char ***argv) alias_command = (*argv)[0]; git_config(git_alias_config); if (alias_string) { + if (alias_string[0] == '!') { + trace_printf("trace: alias to shell cmd: %s => %s\n", + alias_command, alias_string + 1); + ret = system(alias_string + 1); + if (ret >= 0 && WIFEXITED(ret) && + WEXITSTATUS(ret) != 127) + exit(WEXITSTATUS(ret)); + die("Failed to run '%s' when expanding alias '%s'\n", + alias_string + 1, alias_command); + } count = split_cmdline(alias_string, &new_argv); option_count = handle_options(&new_argv, &count); memmove(new_argv - option_count, new_argv, -- 1.5.0.rc4.2.g4249 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH 0/2] Respun patches for git aliases enhancement 2007-02-11 0:33 [PATCH 0/2] Respun patches for git aliases enhancement Theodore Ts'o 2007-02-11 0:33 ` [PATCH 1/2] Print a sane error message if an alias expands to an invalid git command Theodore Ts'o @ 2007-02-11 16:32 ` Johannes Schindelin 1 sibling, 0 replies; 4+ messages in thread From: Johannes Schindelin @ 2007-02-11 16:32 UTC (permalink / raw) To: Theodore Ts'o; +Cc: Junio C Hamano, git Hi, On Sat, 10 Feb 2007, Theodore Ts'o wrote: > These patches have been respun to fix a spelling typo and in response > to comments from Johannes. Sorry to have apply-checked only now: Ted, could you run the second commit through "git show --check"? It has 4 whitespaces at end. But I am sure that Junio can fix them. Apart from that: Acked-by: Johannes Schindelin <johannes.schindelin@gmx.de> Ciao, Dscho ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2007-02-11 16:32 UTC | newest] Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2007-02-11 0:33 [PATCH 0/2] Respun patches for git aliases enhancement Theodore Ts'o 2007-02-11 0:33 ` [PATCH 1/2] Print a sane error message if an alias expands to an invalid git command Theodore Ts'o 2007-02-11 0:33 ` [PATCH 2/2] Allow aliases to expand to shell commands Theodore Ts'o 2007-02-11 16:32 ` [PATCH 0/2] Respun patches for git aliases enhancement Johannes Schindelin
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.