Re: [PATCH v3 2/2] commit: add --ignore-submodules[=when] parameter
Ronald Weiss weiss.ron...@gmail.com writes: On 8. 4. 2014 20:43, Jens Lehmann wrote: Useful when values for commit are 'all' (default) or 'none'. The others ('dirty' and 'untracked') have same effect as 'none', as commit is only interested in whether the submodule's HEAD differs from what is commited in the superproject. Unless it outputs a status message, then 'dirty' and 'untracked' do influence what is shown there. Apart from that (and maybe tests for these two cases ;-) this is looking good to me. OK, I updated the patch for commit to take that into account. Also, I rebased both patches onto current master. Sending them in a moment. If you don't have any more complaints, can I add Acked-by: you and resend the patches to Junio? It is not When I see no more complaints, I'll resend with your Ack. An Ack is a positive thing, not lack of discovery of further issues. Rather, it is more like I'll wait for your Acks and then I'll resend with your Ack, or If they look good, reply with Ack and let the maintainer pick them up. Thanks. -- To unsubscribe from this list: send the line unsubscribe git in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH v3 2/2] commit: add --ignore-submodules[=when] parameter
On 14. 4. 2014 20:30, Junio C Hamano wrote: Ronald Weiss weiss.ron...@gmail.com writes: On 8. 4. 2014 20:43, Jens Lehmann wrote: Useful when values for commit are 'all' (default) or 'none'. The others ('dirty' and 'untracked') have same effect as 'none', as commit is only interested in whether the submodule's HEAD differs from what is commited in the superproject. Unless it outputs a status message, then 'dirty' and 'untracked' do influence what is shown there. Apart from that (and maybe tests for these two cases ;-) this is looking good to me. OK, I updated the patch for commit to take that into account. Also, I rebased both patches onto current master. Sending them in a moment. If you don't have any more complaints, can I add Acked-by: you and resend the patches to Junio? It is not When I see no more complaints, I'll resend with your Ack. An Ack is a positive thing, not lack of discovery of further issues. I'm really sorry if the tone of my message sounded harsh to you, it wasn't meant like that at all. Rather, it is more like I'll wait for your Acks and then I'll resend with your Ack, or If they look good, reply with Ack and let the maintainer pick them up. OK. -- To unsubscribe from this list: send the line unsubscribe git in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH v3 2/2] commit: add --ignore-submodules[=when] parameter
Ronald Weiss weiss.ron...@gmail.com writes: On 14. 4. 2014 20:30, Junio C Hamano wrote: Ronald Weiss weiss.ron...@gmail.com writes: On 8. 4. 2014 20:43, Jens Lehmann wrote: Useful when values for commit are 'all' (default) or 'none'. The others ('dirty' and 'untracked') have same effect as 'none', as commit is only interested in whether the submodule's HEAD differs from what is commited in the superproject. Unless it outputs a status message, then 'dirty' and 'untracked' do influence what is shown there. Apart from that (and maybe tests for these two cases ;-) this is looking good to me. OK, I updated the patch for commit to take that into account. Also, I rebased both patches onto current master. Sending them in a moment. If you don't have any more complaints, can I add Acked-by: you and resend the patches to Junio? It is not When I see no more complaints, I'll resend with your Ack. An Ack is a positive thing, not lack of discovery of further issues. I'm really sorry if the tone of my message sounded harsh to you, it wasn't meant like that at all. No, that wasn't harsh at all. I just did not want to get a patch with Acked-by with somebody's name on it, when there is not yet an Ack, as that will confuse me greatly. My mental bandwidth is not wide enough to keep track of all the in-flight topics I haven't yet picked up. I should be the one to say sorry if my message sounded harsh. Thanks. Rather, it is more like I'll wait for your Acks and then I'll resend with your Ack, or If they look good, reply with Ack and let the maintainer pick them up. OK. -- To unsubscribe from this list: send the line unsubscribe git in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH v3 2/2] commit: add --ignore-submodules[=when] parameter
On 8. 4. 2014 20:43, Jens Lehmann wrote: Useful when values for commit are 'all' (default) or 'none'. The others ('dirty' and 'untracked') have same effect as 'none', as commit is only interested in whether the submodule's HEAD differs from what is commited in the superproject. Unless it outputs a status message, then 'dirty' and 'untracked' do influence what is shown there. Apart from that (and maybe tests for these two cases ;-) this is looking good to me. OK, I updated the patch for commit to take that into account. Also, I rebased both patches onto current master. Sending them in a moment. If you don't have any more complaints, can I add Acked-by: you and resend the patches to Junio? -- To unsubscribe from this list: send the line unsubscribe git in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH v3 2/2] commit: add --ignore-submodules[=when] parameter
Am 08.04.2014 01:03, schrieb Ronald Weiss: Git commit honors the 'ignore' setting from .gitmodules or .git/config, but didn't allow to override it from command line, like other commands do. Useful when values for commit are 'all' (default) or 'none'. The others ('dirty' and 'untracked') have same effect as 'none', as commit is only interested in whether the submodule's HEAD differs from what is commited in the superproject. Unless it outputs a status message, then 'dirty' and 'untracked' do influence what is shown there. Apart from that (and maybe tests for these two cases ;-) this is looking good to me. This patch depends on Jens Lehmann's patch commit -m: commit staged submodules regardless of ignore config. Without it, commit -m --ignore-submodules would not work and tests introduced here would fail. Signed-off-by: Ronald Weiss weiss.ron...@gmail.com --- Documentation/git-commit.txt| 6 ++ builtin/commit.c| 8 ++- t/t7513-commit-ignore-submodules.sh | 42 + 3 files changed, 55 insertions(+), 1 deletion(-) create mode 100644 t/t7513-commit-ignore-submodules.sh diff --git a/Documentation/git-commit.txt b/Documentation/git-commit.txt index 1a7616c..8d3b2db 100644 --- a/Documentation/git-commit.txt +++ b/Documentation/git-commit.txt @@ -13,6 +13,7 @@ SYNOPSIS [-F file | -m msg] [--reset-author] [--allow-empty] [--allow-empty-message] [--no-verify] [-e] [--author=author] [--date=date] [--cleanup=mode] [--[no-]status] +[--ignore-submodules[=when]] [-i | -o] [-S[keyid]] [--] [file...] DESCRIPTION @@ -271,6 +272,11 @@ The possible options are: The default can be changed using the status.showUntrackedFiles configuration variable documented in linkgit:git-config[1]. +--ignore-submodules[=when]:: + Can be used to override any settings of the 'submodule.*.ignore' + option in linkgit:git-config[1] or linkgit:gitmodules[5]. + when can be either none or all, which is the default. + -v:: --verbose:: Show unified diff between the HEAD commit and what diff --git a/builtin/commit.c b/builtin/commit.c index 0db215b..121c185 100644 --- a/builtin/commit.c +++ b/builtin/commit.c @@ -360,7 +360,7 @@ static char *prepare_index(int argc, const char **argv, const char *prefix, */ if (all || (also pathspec.nr)) { fd = hold_locked_index(index_lock, 1); - add_files_to_cache(also ? prefix : NULL, pathspec, 0, NULL); + add_files_to_cache(also ? prefix : NULL, pathspec, 0, ignore_submodule_arg); refresh_cache_or_die(refresh_flags); update_main_cache_tree(WRITE_TREE_SILENT); if (write_cache(fd, active_cache, active_nr) || @@ -1492,6 +1492,9 @@ int cmd_commit(int argc, const char **argv, const char *prefix) OPT_BOOL(0, amend, amend, N_(amend previous commit)), OPT_BOOL(0, no-post-rewrite, no_post_rewrite, N_(bypass post-rewrite hook)), { OPTION_STRING, 'u', untracked-files, untracked_files_arg, N_(mode), N_(show untracked files, optional modes: all, normal, no. (Default: all)), PARSE_OPT_OPTARG, NULL, (intptr_t)all }, + { OPTION_STRING, 0, ignore-submodules, ignore_submodule_arg, N_(when), + N_(ignore changes to submodules, optional when: all, none. (Default: all)), + PARSE_OPT_OPTARG, NULL, (intptr_t)all }, /* end commit contents options */ OPT_HIDDEN_BOOL(0, allow-empty, allow_empty, @@ -1531,6 +1534,9 @@ int cmd_commit(int argc, const char **argv, const char *prefix) argc = parse_and_validate_options(argc, argv, builtin_commit_options, builtin_commit_usage, prefix, current_head, s); + + s.ignore_submodule_arg = ignore_submodule_arg; + if (dry_run) return dry_run_commit(argc, argv, prefix, current_head, s); index_file = prepare_index(argc, argv, prefix, current_head, 0); diff --git a/t/t7513-commit-ignore-submodules.sh b/t/t7513-commit-ignore-submodules.sh new file mode 100644 index 000..83ce04c --- /dev/null +++ b/t/t7513-commit-ignore-submodules.sh @@ -0,0 +1,42 @@ +#!/bin/sh +# +# Copyright (c) 2014 Ronald Weiss +# + +test_description='Test of git commit --ignore-submodules' + +. ./test-lib.sh + +test_expect_success 'create submodule' ' + test_create_repo sm ( + cd sm + foo + git add foo + git commit -m Add foo + ) + git submodule add ./sm + git commit -m Add sm +' + +update_sm () { + (cd sm + echo bar foo + git add foo + git commit -m Updated foo + ) +} + +test_expect_success 'commit -a --ignore-submodules=all
Re: [PATCH v3 2/2] commit: add --ignore-submodules[=when] parameter
On 8. 4. 2014 20:43, Jens Lehmann wrote: Am 08.04.2014 01:03, schrieb Ronald Weiss: Git commit honors the 'ignore' setting from .gitmodules or .git/config, but didn't allow to override it from command line, like other commands do. Useful when values for commit are 'all' (default) or 'none'. The others ('dirty' and 'untracked') have same effect as 'none', as commit is only interested in whether the submodule's HEAD differs from what is commited in the superproject. Unless it outputs a status message, then 'dirty' and 'untracked' do influence what is shown there. Apart from that (and maybe tests for these two cases ;-) this is looking good to me. Hm, You mean the status message, which is pre-inserted as comment into the commit message, when opening an editor to write the commit message? OK, that really makes a difference, although really small and actually affecting nothing. I'll take it into account. But are You sure the tests for this would be actually useful? If only effect of them would be increasing time needed to run the full test suite, then it's better to not have them :-). But I can do that, if You still think it's useful. -- To unsubscribe from this list: send the line unsubscribe git in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html