From: Matheus Tavares <matheus.bernardino@usp.br>
To: git@vger.kernel.org
Cc: gitster@pobox.com, stolee@gmail.com, newren@gmail.com,
jonathantanmy@google.com, jrnieder@gmail.com
Subject: [PATCH v5 0/8] grep: honor sparse checkout and add option to ignore it
Date: Wed, 2 Sep 2020 03:17:29 -0300 [thread overview]
Message-ID: <cover.1599026986.git.matheus.bernardino@usp.br> (raw)
In-Reply-To: <cover.1591974940.git.matheus.bernardino@usp.br>
This series makes git-grep restrict its output to the sparsity patterns when
requested by the user. A new global option is added to control this behavior
in grep and hopefully more commands in the future. There are also a
couple fixes in t/helper/test-config and in a test that uses it.
Changes since v4:
- Rebased on top of master to use repo_config_get_string_tmp(), added in
jk/leakfix, in t/helper/test-config (patch 6).
- Added patch 2, to make sure a test that relies on test-config checks its
output in addition to the exit code, to avoid false positives.
- Split patch "t/helper/test-config: return exit codes consistently" into
three separated ones, as these are in fact three non-related changes:
"t/helper/test-config: unify exit labels"
"t/helper/test-config: check argc before accessing argv"
"t/helper/test-config: be consistent with exit codes"
- Removed TC_USAGE_ERROR in favor of calling die(). Also removed the
test_config_exit_code enum.
- On "config: correctly read worktree configs in submodules":
* Improved commit message to focus on the problem instead of the
implementation and remove section about the grep example.
* Made use of the parse_options API
* Allocated subrepo struct in the stack instead of malloc()'ing.
Matheus Tavares (8):
doc: grep: unify info on configuration variables
t1308-config-set: avoid false positives when using test-config
t/helper/test-config: be consistent with exit codes
t/helper/test-config: check argc before accessing argv
t/helper/test-config: unify exit labels
config: correctly read worktree configs in submodules
grep: honor sparse checkout patterns
config: add setting to ignore sparsity patterns in some cmds
Documentation/config.txt | 2 +
Documentation/config/grep.txt | 18 +-
Documentation/config/sparse.txt | 20 ++
Documentation/git-grep.txt | 36 +--
Documentation/git.txt | 4 +
Makefile | 1 +
builtin/grep.c | 134 ++++++++++-
config.c | 21 +-
contrib/completion/git-completion.bash | 2 +
git.c | 5 +
sparse-checkout.c | 18 ++
sparse-checkout.h | 11 +
t/helper/test-config.c | 126 ++++++----
t/t1308-config-set.sh | 8 +-
t/t2404-worktree-config.sh | 16 ++
t/t7011-skip-worktree-reading.sh | 9 -
t/t7817-grep-sparse-checkout.sh | 321 +++++++++++++++++++++++++
t/t9902-completion.sh | 4 +-
18 files changed, 652 insertions(+), 104 deletions(-)
create mode 100644 Documentation/config/sparse.txt
create mode 100644 sparse-checkout.c
create mode 100644 sparse-checkout.h
create mode 100755 t/t7817-grep-sparse-checkout.sh
Range-diff against v4:
1: fc47a96bfa = 1: 70c9a4e741 doc: grep: unify info on configuration variables
-: ---------- > 2: f53782f14c t1308-config-set: avoid false positives when using test-config
-: ---------- > 3: 85e1588d6c t/helper/test-config: be consistent with exit codes
-: ---------- > 4: 0750191342 t/helper/test-config: check argc before accessing argv
2: 874aab36dd ! 5: 56535b0e36 t/helper/test-config: return exit codes consistently
@@ Metadata
Author: Matheus Tavares <matheus.bernardino@usp.br>
## Commit message ##
- t/helper/test-config: return exit codes consistently
+ t/helper/test-config: unify exit labels
- The test-config helper may exit with a variety of at least four
- different codes, to reflect the status of the requested operations.
- These codes are sometimes checked in the tests, but not all of the codes
- are returned consistently by the helper: 1 will usually refer to a
- "value not found", but usage errors can also return 1 or 128. Moreover,
- 128 is also expected on errors within the configset functions. These
- inconsistent uses of the exit codes can lead to false positives in the
- tests. Although all tests which expect errors and check the helper's
- exit code currently also check the output, it's still better to
- standardize the exit codes and avoid future problems in new tests.
- While we are here, let's also check that we have the expected argc for
- configset_get_value and configset_get_value_multi, before trying to use
- argv.
-
- Note: this change is implemented with the unification of the exit
- labels. This might seem unnecessary, for now, but it will benefit the
- next patch, which will increase the cleanup section.
+ test-config's main function has three different exit labels, all of
+ which have to perform the same cleanup code before returning. Unify the
+ labels in preparation for a future patch which will increase the cleanup
+ section.
Signed-off-by: Matheus Tavares <matheus.bernardino@usp.br>
## t/helper/test-config.c ##
-@@
- * iterate -> iterate over all values using git_config(), and print some
- * data for each
- *
-+ * Exit codes:
-+ * 0: success
-+ * 1: value not found for the given config key
-+ * 2: config file path given as argument is inaccessible or doesn't exist
-+ * 129: test-config usage error
-+ *
-+ * Note: tests may also expect 128 for die() calls in the config machinery.
-+ *
- * Examples:
- *
- * To print the value with highest priority for key "foo.bAr Baz.rock":
@@ t/helper/test-config.c: static int early_config_cb(const char *var, const char *value, void *vdata)
return 0;
}
-+enum test_config_exit_code {
-+ TC_SUCCESS = 0,
-+ TC_VALUE_NOT_FOUND = 1,
-+ TC_CONFIG_FILE_ERROR = 2,
-+ TC_USAGE_ERROR = 129,
-+};
++#define TC_VALUE_NOT_FOUND 1
++#define TC_CONFIG_FILE_ERROR 2
+
int cmd__config(int argc, const char **argv)
{
- int i, val;
+- int i, val;
++ int i, val, ret = 0;
const char *v;
const struct string_list *strptr;
struct config_set cs;
-+ enum test_config_exit_code ret = TC_SUCCESS;
if (argc == 3 && !strcmp(argv[1], "read_early_config")) {
read_early_config(early_config_cb, (void *)argv[2]);
- return 0;
-+ return TC_SUCCESS;
++ return ret;
}
setup_git_directory();
-
- git_configset_init(&cs);
-
-- if (argc < 2) {
-- fprintf(stderr, "Please, provide a command name on the command-line\n");
-- goto exit1;
-- } else if (argc == 3 && !strcmp(argv[1], "get_value")) {
-+ if (argc < 2)
-+ goto print_usage_error;
-+
-+ if (argc == 3 && !strcmp(argv[1], "get_value")) {
- if (!git_config_get_value(argv[2], &v)) {
- if (!v)
+@@ t/helper/test-config.c: int cmd__config(int argc, const char **argv)
printf("(NULL)\n");
else
printf("%s\n", v);
@@ t/helper/test-config.c: int cmd__config(int argc, const char **argv)
- goto exit1;
+ ret = TC_VALUE_NOT_FOUND;
}
-- } else if (!strcmp(argv[1], "configset_get_value")) {
-+ } else if (argc >= 3 && !strcmp(argv[1], "configset_get_value")) {
+ } else if (argc >= 3 && !strcmp(argv[1], "configset_get_value")) {
for (i = 3; i < argc; i++) {
int err;
if ((err = git_configset_add_file(&cs, argv[i]))) {
@@ t/helper/test-config.c: int cmd__config(int argc, const char **argv)
- goto exit1;
+ ret = TC_VALUE_NOT_FOUND;
}
-- } else if (!strcmp(argv[1], "configset_get_value_multi")) {
-+ } else if (argc >= 3 && !strcmp(argv[1], "configset_get_value_multi")) {
+ } else if (argc >= 3 && !strcmp(argv[1], "configset_get_value_multi")) {
for (i = 3; i < argc; i++) {
int err;
if ((err = git_configset_add_file(&cs, argv[i]))) {
@@ t/helper/test-config.c: int cmd__config(int argc, const char **argv)
git_config(iterate_cb, NULL);
- goto exit0;
+ } else {
-+print_usage_error:
-+ fprintf(stderr, "Invalid syntax. Usage: test-tool config <cmd> [args]\n");
-+ ret = TC_USAGE_ERROR;
++ die("%s: Please check the syntax and the function name", argv[0]);
}
- die("%s: Please check the syntax and the function name", argv[0]);
3: c5093099f3 < -: ---------- t/helper/test-config: facilitate addition of new cli options
4: b510de0de0 ! 6: 3e02e1bd24 config: correctly read worktree configs in submodules
@@ Metadata
## Commit message ##
config: correctly read worktree configs in submodules
- One of the steps in do_git_config_sequence() is to load the
- worktree-specific config file. Although the function receives a git_dir
- string, it relies on git_pathdup(), which uses the_repository->git_dir,
- to make the path to the file. Furthermore, it also checks that
- extensions.worktreeConfig is set through the
- repository_format_worktree_config variable, which refers to
- the_repository only. Thus, when a submodule has worktree-specific
- settings, a command executed in the superproject that recurses into the
- submodule won't find the said settings.
+ The config machinery is not able to read worktree configs from a
+ submodule in a process where the_repository represents the superproject.
+ Furthermore, when extensions.worktreeConfig is set on the superproject,
+ querying for a worktree config in a submodule will, instead, return
+ the value set at the superproject.
- This will be especially important in the next patch: git-grep will learn
- to honor sparse checkouts and, when running with --recurse-submodules,
- the submodule's sparse checkout settings must be loaded. As these
- settings are stored in the config.worktree file, they would be ignored
- without this patch. So let's fix this by reading the right
- config.worktree file and extensions.worktreeConfig setting, based on the
- git_dir and commondir paths given to do_git_config_sequence(). Also
- add a test to avoid any regressions.
+ The problem resides in do_git_config_sequence(). Although the function
+ receives a git_dir string, it uses the_repository->git_dir when making
+ the path to the worktree config file. And when checking if
+ extensions.worktreeConfig is set, it uses the global
+ repository_format_worktree_config variable, which refers to
+ the_repository only. So let's fix this by using the git_dir given to the
+ function and reading the extension value from the right place. Also add
+ a test to avoid any regressions.
Signed-off-by: Matheus Tavares <matheus.bernardino@usp.br>
@@ t/helper/test-config.c
#include "config.h"
#include "string-list.h"
+#include "submodule-config.h"
++#include "parse-options.h"
/*
* This program exposes the C API of the configuration mechanism
@@ t/helper/test-config.c
*
* get_value -> prints the value with highest priority for the entered key
*
-@@ t/helper/test-config.c: int cmd__config(int argc, const char **argv)
+@@ t/helper/test-config.c: static int early_config_cb(const char *var, const char *value, void *vdata)
+ #define TC_VALUE_NOT_FOUND 1
+ #define TC_CONFIG_FILE_ERROR 2
+
++static const char *test_config_usage[] = {
++ "test-tool config [--submodule=<path>] <cmd> [<args>]",
++ NULL
++};
++
+ int cmd__config(int argc, const char **argv)
+ {
+ int i, val, ret = 0;
+ const char *v;
const struct string_list *strptr;
- struct config_set cs = { .hash_initialized = 0 };
- enum test_config_exit_code ret = TC_SUCCESS;
-+ struct repository *repo = the_repository;
+ struct config_set cs;
++ struct repository subrepo, *repo = the_repository;
+ const char *subrepo_path = NULL;
-
- argc--; /* skip over "config" */
- argv++;
-@@ t/helper/test-config.c: int cmd__config(int argc, const char **argv)
- if (argc == 0)
- goto print_usage_error;
-
-+ if (skip_prefix(*argv, "--submodule=", &subrepo_path)) {
-+ argc--;
-+ argv++;
-+ if (argc == 0)
-+ goto print_usage_error;
-+ }
+
- if (argc == 2 && !strcmp(argv[0], "read_early_config")) {
-+ if (subrepo_path) {
-+ fprintf(stderr, "Cannot use --submodule with read_early_config\n");
-+ return TC_USAGE_ERROR;
-+ }
- read_early_config(early_config_cb, (void *)argv[1]);
- return TC_SUCCESS;
++ struct option options[] = {
++ OPT_STRING(0, "submodule", &subrepo_path, "path",
++ "run <cmd> on the submodule at <path>"),
++ OPT_END()
++ };
++
++ argc = parse_options(argc, argv, NULL, options, test_config_usage,
++ PARSE_OPT_KEEP_ARGV0 | PARSE_OPT_STOP_AT_NON_OPTION);
++ if (argc < 2)
++ die("Please, provide a command name on the command-line");
+
+ if (argc == 3 && !strcmp(argv[1], "read_early_config")) {
++ if (subrepo_path)
++ die("cannot use --submodule with read_early_config");
+ read_early_config(early_config_cb, (void *)argv[2]);
+ return ret;
}
@@ t/helper/test-config.c: int cmd__config(int argc, const char **argv)
- setup_git_directory();
+
git_configset_init(&cs);
+- if (argc < 2)
+- die("Please, provide a command name on the command-line");
+ if (subrepo_path) {
+ const struct submodule *sub;
-+ struct repository *subrepo = xcalloc(1, sizeof(*repo));
+
+ sub = submodule_from_path(the_repository, &null_oid, subrepo_path);
-+ if (!sub || repo_submodule_init(subrepo, the_repository, sub)) {
-+ fprintf(stderr, "Invalid argument to --submodule: '%s'\n",
-+ subrepo_path);
-+ free(subrepo);
-+ ret = TC_USAGE_ERROR;
-+ goto out;
-+ }
-+ repo = subrepo;
-+ }
++ if (!sub || repo_submodule_init(&subrepo, the_repository, sub))
++ die("invalid argument to --submodule: '%s'", subrepo_path);
+
- if (argc == 2 && !strcmp(argv[0], "get_value")) {
-- if (!git_config_get_value(argv[1], &v)) {
-+ if (!repo_config_get_value(repo, argv[1], &v)) {
++ repo = &subrepo;
++ }
+
+ if (argc == 3 && !strcmp(argv[1], "get_value")) {
+- if (!git_config_get_value(argv[2], &v)) {
++ if (!repo_config_get_value(repo, argv[2], &v)) {
if (!v)
printf("(NULL)\n");
else
@@ t/helper/test-config.c: int cmd__config(int argc, const char **argv)
ret = TC_VALUE_NOT_FOUND;
}
- } else if (argc == 2 && !strcmp(argv[0], "get_value_multi")) {
-- strptr = git_config_get_value_multi(argv[1]);
-+ strptr = repo_config_get_value_multi(repo, argv[1]);
+ } else if (argc == 3 && !strcmp(argv[1], "get_value_multi")) {
+- strptr = git_config_get_value_multi(argv[2]);
++ strptr = repo_config_get_value_multi(repo, argv[2]);
if (strptr) {
for (i = 0; i < strptr->nr; i++) {
v = strptr->items[i].string;
@@ t/helper/test-config.c: int cmd__config(int argc, const char **argv)
ret = TC_VALUE_NOT_FOUND;
}
- } else if (argc == 2 && !strcmp(argv[0], "get_int")) {
-- if (!git_config_get_int(argv[1], &val)) {
-+ if (!repo_config_get_int(repo, argv[1], &val)) {
+ } else if (argc == 3 && !strcmp(argv[1], "get_int")) {
+- if (!git_config_get_int(argv[2], &val)) {
++ if (!repo_config_get_int(repo, argv[2], &val)) {
printf("%d\n", val);
} else {
- printf("Value not found for \"%s\"\n", argv[1]);
+ printf("Value not found for \"%s\"\n", argv[2]);
ret = TC_VALUE_NOT_FOUND;
}
- } else if (argc == 2 && !strcmp(argv[0], "get_bool")) {
-- if (!git_config_get_bool(argv[1], &val)) {
-+ if (!repo_config_get_bool(repo, argv[1], &val)) {
+ } else if (argc == 3 && !strcmp(argv[1], "get_bool")) {
+- if (!git_config_get_bool(argv[2], &val)) {
++ if (!repo_config_get_bool(repo, argv[2], &val)) {
printf("%d\n", val);
} else {
+
- printf("Value not found for \"%s\"\n", argv[1]);
+ printf("Value not found for \"%s\"\n", argv[2]);
ret = TC_VALUE_NOT_FOUND;
}
- } else if (argc == 2 && !strcmp(argv[0], "get_string")) {
-- if (!git_config_get_string_tmp(argv[1], &v)) {
-+ if (!repo_config_get_string_tmp(repo, argv[1], &v)) {
+ } else if (argc == 3 && !strcmp(argv[1], "get_string")) {
+- if (!git_config_get_string_tmp(argv[2], &v)) {
++ if (!repo_config_get_string_tmp(repo, argv[2], &v)) {
printf("%s\n", v);
} else {
- printf("Value not found for \"%s\"\n", argv[1]);
+ printf("Value not found for \"%s\"\n", argv[2]);
ret = TC_VALUE_NOT_FOUND;
}
- } else if (argc >= 2 && !strcmp(argv[0], "configset_get_value")) {
-+ if (subrepo_path) {
-+ fprintf(stderr, "Cannot use --submodule with configset_get_value\n");
-+ ret = TC_USAGE_ERROR;
-+ goto out;
-+ }
- for (i = 2; i < argc; i++) {
+ } else if (argc >= 3 && !strcmp(argv[1], "configset_get_value")) {
++ if (subrepo_path)
++ die("cannot use --submodule with configset_get_value");
++
+ for (i = 3; i < argc; i++) {
int err;
if ((err = git_configset_add_file(&cs, argv[i]))) {
@@ t/helper/test-config.c: int cmd__config(int argc, const char **argv)
ret = TC_VALUE_NOT_FOUND;
}
- } else if (argc >= 2 && !strcmp(argv[0], "configset_get_value_multi")) {
-+ if (subrepo_path) {
-+ fprintf(stderr, "Cannot use --submodule with configset_get_value_multi\n");
-+ ret = TC_USAGE_ERROR;
-+ goto out;
-+ }
- for (i = 2; i < argc; i++) {
+ } else if (argc >= 3 && !strcmp(argv[1], "configset_get_value_multi")) {
++ if (subrepo_path)
++ die("cannot use --submodule with configset_get_value_multi");
++
+ for (i = 3; i < argc; i++) {
int err;
if ((err = git_configset_add_file(&cs, argv[i]))) {
@@ t/helper/test-config.c: int cmd__config(int argc, const char **argv)
ret = TC_VALUE_NOT_FOUND;
}
- } else if (!strcmp(argv[0], "iterate")) {
+ } else if (!strcmp(argv[1], "iterate")) {
- git_config(iterate_cb, NULL);
+ repo_config(repo, iterate_cb, NULL);
} else {
- print_usage_error:
-- fprintf(stderr, "Invalid syntax. Usage: test-tool config <cmd> [args]\n");
-+ fprintf(stderr, "Invalid syntax. Usage: test-tool config"
-+ " [--submodule=<path>] <cmd> [args]\n");
- ret = TC_USAGE_ERROR;
+ die("%s: Please check the syntax and the function name", argv[0]);
}
out:
git_configset_clear(&cs);
-+ if (repo != the_repository) {
++ if (repo != the_repository)
+ repo_clear(repo);
-+ free(repo);
-+ }
return ret;
}
5: 6d9720abf5 = 7: 902556a7b6 grep: honor sparse checkout patterns
6: affb931d35 = 8: 70e7d7b90c config: add setting to ignore sparsity patterns in some cmds
--
2.28.0
next prev parent reply other threads:[~2020-09-02 6:18 UTC|newest]
Thread overview: 123+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-03-24 6:04 [RFC PATCH 0/3] grep: honor sparse checkout and add option to ignore it Matheus Tavares
2020-03-24 6:11 ` [RFC PATCH 1/3] doc: grep: unify info on configuration variables Matheus Tavares
2020-03-24 7:57 ` Elijah Newren
2020-03-24 21:26 ` Junio C Hamano
2020-03-24 23:38 ` Matheus Tavares
2020-03-24 6:12 ` [RFC PATCH 2/3] grep: honor sparse checkout patterns Matheus Tavares
2020-03-24 7:15 ` Elijah Newren
2020-03-24 15:12 ` Derrick Stolee
2020-03-24 16:16 ` Elijah Newren
2020-03-24 17:02 ` Derrick Stolee
2020-03-24 23:01 ` Matheus Tavares Bernardino
2020-03-24 22:55 ` Matheus Tavares Bernardino
2020-04-21 2:10 ` Matheus Tavares Bernardino
2020-04-21 3:08 ` Elijah Newren
2020-04-22 12:08 ` Derrick Stolee
2020-04-23 6:09 ` Matheus Tavares Bernardino
2020-03-24 6:13 ` [RFC PATCH 3/3] grep: add option to ignore sparsity patterns Matheus Tavares
2020-03-24 7:54 ` Elijah Newren
2020-03-24 18:30 ` Junio C Hamano
2020-03-24 19:07 ` Elijah Newren
2020-03-25 20:18 ` Junio C Hamano
2020-03-30 3:23 ` Matheus Tavares Bernardino
2020-03-31 19:12 ` Elijah Newren
2020-03-31 20:02 ` Derrick Stolee
2020-04-27 17:15 ` Matheus Tavares Bernardino
2020-04-29 16:46 ` Elijah Newren
2020-04-29 17:21 ` Elijah Newren
2020-03-25 23:15 ` Matheus Tavares Bernardino
2020-03-26 6:02 ` Elijah Newren
2020-03-27 15:51 ` Junio C Hamano
2020-03-27 19:01 ` Elijah Newren
2020-03-30 1:12 ` Matheus Tavares Bernardino
2020-03-31 16:48 ` Elijah Newren
2020-05-10 0:41 ` [RFC PATCH v2 0/4] grep: honor sparse checkout and add option to ignore it Matheus Tavares
2020-05-10 0:41 ` [RFC PATCH v2 1/4] doc: grep: unify info on configuration variables Matheus Tavares
2020-05-10 0:41 ` [RFC PATCH v2 2/4] config: load the correct config.worktree file Matheus Tavares
2020-05-11 19:10 ` Junio C Hamano
2020-05-12 22:55 ` Matheus Tavares Bernardino
2020-05-12 23:22 ` Junio C Hamano
2020-05-10 0:41 ` [RFC PATCH v2 3/4] grep: honor sparse checkout patterns Matheus Tavares
2020-05-11 19:35 ` Junio C Hamano
2020-05-13 0:05 ` Matheus Tavares Bernardino
2020-05-13 0:17 ` Junio C Hamano
2020-05-21 7:26 ` Elijah Newren
2020-05-21 17:35 ` Matheus Tavares Bernardino
2020-05-21 17:52 ` Elijah Newren
2020-05-22 5:49 ` Matheus Tavares Bernardino
2020-05-22 14:26 ` Elijah Newren
2020-05-22 15:36 ` Elijah Newren
2020-05-22 20:54 ` Matheus Tavares Bernardino
2020-05-22 21:06 ` Elijah Newren
2020-06-10 11:40 ` Derrick Stolee
2020-06-10 16:22 ` Matheus Tavares Bernardino
2020-06-10 17:42 ` Derrick Stolee
2020-06-10 18:14 ` Matheus Tavares Bernardino
2020-06-10 20:12 ` Elijah Newren
2020-06-10 19:58 ` Elijah Newren
2020-05-21 7:36 ` Elijah Newren
2020-05-10 0:41 ` [RFC PATCH v2 4/4] config: add setting to ignore sparsity patterns in some cmds Matheus Tavares
2020-05-10 4:23 ` Matheus Tavares Bernardino
2020-05-21 17:18 ` Elijah Newren
2020-05-21 7:09 ` Elijah Newren
2020-05-28 1:12 ` [PATCH v3 0/5] grep: honor sparse checkout and add option to ignore it Matheus Tavares
2020-05-28 1:12 ` [PATCH v3 1/5] doc: grep: unify info on configuration variables Matheus Tavares
2020-05-28 1:13 ` [PATCH v3 2/5] t/helper/test-config: return exit codes consistently Matheus Tavares
2020-05-30 14:29 ` Elijah Newren
2020-06-01 4:36 ` Matheus Tavares Bernardino
2020-05-28 1:13 ` [PATCH v3 3/5] config: correctly read worktree configs in submodules Matheus Tavares
2020-05-30 14:49 ` Elijah Newren
2020-06-01 4:38 ` Matheus Tavares Bernardino
2020-05-28 1:13 ` [PATCH v3 4/5] grep: honor sparse checkout patterns Matheus Tavares
2020-05-30 15:48 ` Elijah Newren
2020-06-01 4:44 ` Matheus Tavares Bernardino
2020-06-03 2:38 ` Elijah Newren
2020-06-10 17:08 ` Matheus Tavares Bernardino
2020-05-28 1:13 ` [PATCH v3 5/5] config: add setting to ignore sparsity patterns in some cmds Matheus Tavares
2020-05-30 16:18 ` Elijah Newren
2020-06-01 4:45 ` Matheus Tavares Bernardino
2020-06-03 2:39 ` Elijah Newren
2020-06-10 21:15 ` Matheus Tavares Bernardino
2020-06-11 0:35 ` Elijah Newren
2020-06-12 15:44 ` [PATCH v4 0/6] grep: honor sparse checkout and add option to ignore it Matheus Tavares
2020-06-12 15:44 ` [PATCH v4 1/6] doc: grep: unify info on configuration variables Matheus Tavares
2020-06-12 15:45 ` [PATCH v4 2/6] t/helper/test-config: return exit codes consistently Matheus Tavares
2020-06-12 15:45 ` [PATCH v4 3/6] t/helper/test-config: facilitate addition of new cli options Matheus Tavares
2020-06-12 15:45 ` [PATCH v4 4/6] config: correctly read worktree configs in submodules Matheus Tavares
2020-06-16 19:13 ` Elijah Newren
2020-06-21 16:05 ` Matheus Tavares Bernardino
2020-09-01 2:41 ` Jonathan Nieder
2020-09-01 21:44 ` Matheus Tavares Bernardino
2020-06-12 15:45 ` [PATCH v4 5/6] grep: honor sparse checkout patterns Matheus Tavares
2020-06-12 15:45 ` [PATCH v4 6/6] config: add setting to ignore sparsity patterns in some cmds Matheus Tavares
2020-06-16 22:31 ` [PATCH v4 0/6] grep: honor sparse checkout and add option to ignore it Elijah Newren
2020-09-02 6:17 ` Matheus Tavares [this message]
2020-09-02 6:17 ` [PATCH v5 1/8] doc: grep: unify info on configuration variables Matheus Tavares
2020-09-02 6:17 ` [PATCH v5 2/8] t1308-config-set: avoid false positives when using test-config Matheus Tavares
2020-09-02 6:57 ` Eric Sunshine
2020-09-02 16:16 ` Matheus Tavares Bernardino
2020-09-02 16:38 ` Eric Sunshine
2020-09-02 6:17 ` [PATCH v5 3/8] t/helper/test-config: be consistent with exit codes Matheus Tavares
2020-09-02 6:17 ` [PATCH v5 4/8] t/helper/test-config: check argc before accessing argv Matheus Tavares
2020-09-02 7:18 ` Eric Sunshine
2020-09-02 6:17 ` [PATCH v5 5/8] t/helper/test-config: unify exit labels Matheus Tavares
2020-09-02 7:30 ` Eric Sunshine
2020-09-02 6:17 ` [PATCH v5 6/8] config: correctly read worktree configs in submodules Matheus Tavares
2020-09-02 20:15 ` Jonathan Nieder
2020-09-09 13:04 ` Matheus Tavares Bernardino
2020-09-09 23:32 ` Jonathan Nieder
2020-09-02 6:17 ` [PATCH v5 7/8] grep: honor sparse checkout patterns Matheus Tavares
2020-09-02 6:17 ` [PATCH v5 8/8] config: add setting to ignore sparsity patterns in some cmds Matheus Tavares
2020-09-10 17:21 ` [PATCH v6 0/9] grep: honor sparse checkout and add option to ignore it Matheus Tavares
2020-09-10 17:21 ` [PATCH v6 1/9] doc: grep: unify info on configuration variables Matheus Tavares
2020-09-10 17:21 ` [PATCH v6 2/9] t1308-config-set: avoid false positives when using test-config Matheus Tavares
2020-09-10 17:21 ` [PATCH v6 3/9] t/helper/test-config: be consistent with exit codes Matheus Tavares
2020-09-10 17:21 ` [PATCH v6 4/9] t/helper/test-config: diagnose missing arguments Matheus Tavares
2020-09-10 17:21 ` [PATCH v6 5/9] t/helper/test-config: unify exit labels Matheus Tavares
2020-09-10 17:21 ` [PATCH v6 6/9] config: make do_git_config_sequence receive a 'struct repository' Matheus Tavares
2020-09-10 17:21 ` [PATCH v6 7/9] config: correctly read worktree configs in submodules Matheus Tavares
2020-09-10 17:21 ` [PATCH v6 8/9] grep: honor sparse checkout patterns Matheus Tavares
2020-09-10 17:21 ` [PATCH v6 9/9] config: add setting to ignore sparsity patterns in some cmds Matheus Tavares
2021-02-09 21:33 ` [PATCH v7] grep: honor sparse-checkout on working tree searches Matheus Tavares
2021-02-09 23:23 ` Junio C Hamano
2021-02-10 6:12 ` Elijah Newren
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=cover.1599026986.git.matheus.bernardino@usp.br \
--to=matheus.bernardino@usp.br \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=jonathantanmy@google.com \
--cc=jrnieder@gmail.com \
--cc=newren@gmail.com \
--cc=stolee@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
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;
as well as URLs for NNTP newsgroup(s).