git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: "Johannes Schindelin via GitGitGadget" <gitgitgadget@gmail.com>
To: git@vger.kernel.org
Cc: Johannes Schindelin <johannes.schindelin@gmx.de>,
	Johannes Schindelin <johannes.schindelin@gmx.de>
Subject: [PATCH 01/15] scalar: create a rudimentary executable
Date: Mon, 30 Aug 2021 21:34:36 +0000	[thread overview]
Message-ID: <b8c7d3f84508ae0fb300f47c726764f4cbf46be9.1630359290.git.gitgitgadget@gmail.com> (raw)
In-Reply-To: <pull.1005.git.1630359290.gitgitgadget@gmail.com>

From: Johannes Schindelin <johannes.schindelin@gmx.de>

The idea of Scalar (https://github.com/microsoft/scalar), and before
that, of VFS for Git, has always been to prove that Git _can_ scale, and
to upstream whatever strategies have been demonstrated to help.

With this patch, we start the journey from that C# project to move what
is left to Git's own `contrib/` directory, reimplementing it in pure C,
with the intention to facilitate integrating the functionality into core
Git all while maintaining backwards-compatibility for existing Scalar
users (which will be much easier when both live in the same worktree).
It was always to plan to contribute all of the proven strategies back to
core Git.

For example, while the virtual filesystem provided by VFS for Git helped
the team developing the Windows operating system to move onto Git, while
trying to upstream it we realized that it cannot be done: getting the
virtual filesystem to work (which we only managed to implement fully on
Windows, but not on, say, macOS or Linux), and the required server-side
support for the GVFS protocol, made this not quite feasible.

The Scalar project learned from that and tackled the problem with
different tactics: instead of pretending to Git that the working
directory is fully populated, it _specifically_ teaches Git about
partial clone (which is based on VFS for Git's cache server), about
sparse checkout (which VFS for Git tried to do transparently, in the
file system layer), and regularly runs maintenance tasks to keep the
repository in a healthy state.

With partial clone, sparse checkout and `git maintenance` having been
upstreamed, there is little left that `scalar.exe` does that which
`git.exe` cannot do. One such thing is that `scalar clone <url>` will
automatically set up a partial, sparse clone, and configure
known-helpful settings from the start.

So let's bring this convenience into Git's tree.

The idea here is that you can (optionally) build Scalar via

	make -C contrib/scalar/Makefile

This will build the `scalar` executable and put it into the
contrib/scalar/ subdirectory.

The slightly awkward addition of the `contrib/scalar/*` bits to the
top-level `Makefile` are actually really required: we want to link to
`libgit.a`, which means that we will need to use the very same `CFLAGS`
and `LDFLAGS` as the rest of Git.

An early development version of this patch tried to replicate all the
conditional code in `contrib/scalar/Makefile` (e.g. `NO_POLL`) just like
`contrib/svn-fe/Makefile` used to do before it was retired. It turned
out to be quite the whack-a-mole game: the SHA-1-related flags, the
flags enabling/disabling `compat/poll/`, `compat/regex/`,
`compat/win32mmap.c` & friends depending on the current platform... To
put it mildly: it was a major mess.

Instead, this patch makes minimal changes to the top-level `Makefile` so
that the bits in `contrib/scalar/` can be compiled and linked, and
adds a `contrib/scalar/Makefile` that uses the top-level `Makefile` in a
most minimal way to do the actual compiling.

Note: With this commit, we only establish the infrastructure, no
Scalar functionality is implemented yet; We will do that incrementally
over the next few commits.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
---
 Makefile                  |  8 ++++++++
 contrib/scalar/.gitignore |  2 ++
 contrib/scalar/Makefile   | 34 ++++++++++++++++++++++++++++++++++
 contrib/scalar/scalar.c   | 36 ++++++++++++++++++++++++++++++++++++
 4 files changed, 80 insertions(+)
 create mode 100644 contrib/scalar/.gitignore
 create mode 100644 contrib/scalar/Makefile
 create mode 100644 contrib/scalar/scalar.c

diff --git a/Makefile b/Makefile
index c3565fc0f8f..2d5c822f7a8 100644
--- a/Makefile
+++ b/Makefile
@@ -2447,6 +2447,10 @@ endif
 .PHONY: objects
 objects: $(OBJECTS)
 
+SCALAR_SOURCES := contrib/scalar/scalar.c
+SCALAR_OBJECTS := $(SCALAR_SOURCES:c=o)
+OBJECTS += $(SCALAR_OBJECTS)
+
 dep_files := $(foreach f,$(OBJECTS),$(dir $f).depend/$(notdir $f).d)
 dep_dirs := $(addsuffix .depend,$(sort $(dir $(OBJECTS))))
 
@@ -2586,6 +2590,10 @@ $(REMOTE_CURL_PRIMARY): remote-curl.o http.o http-walker.o GIT-LDFLAGS $(GITLIBS
 	$(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) \
 		$(CURL_LIBCURL) $(EXPAT_LIBEXPAT) $(LIBS)
 
+contrib/scalar/scalar$X: $(SCALAR_OBJECTS) GIT-LDFLAGS $(GITLIBS)
+	$(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) \
+		$(filter %.o,$^) $(LIBS)
+
 $(LIB_FILE): $(LIB_OBJS)
 	$(QUIET_AR)$(RM) $@ && $(AR) $(ARFLAGS) $@ $^
 
diff --git a/contrib/scalar/.gitignore b/contrib/scalar/.gitignore
new file mode 100644
index 00000000000..ff3d47e84d0
--- /dev/null
+++ b/contrib/scalar/.gitignore
@@ -0,0 +1,2 @@
+/*.exe
+/scalar
diff --git a/contrib/scalar/Makefile b/contrib/scalar/Makefile
new file mode 100644
index 00000000000..40c03ad10e1
--- /dev/null
+++ b/contrib/scalar/Makefile
@@ -0,0 +1,34 @@
+QUIET_SUBDIR0  = +$(MAKE) -C # space to separate -C and subdir
+QUIET_SUBDIR1  =
+
+ifneq ($(findstring s,$(MAKEFLAGS)),s)
+ifndef V
+	QUIET_SUBDIR0  = +@subdir=
+	QUIET_SUBDIR1  = ;$(NO_SUBDIR) echo '   ' SUBDIR $$subdir; \
+			 $(MAKE) $(PRINT_DIR) -C $$subdir
+else
+	export V
+endif
+endif
+
+all:
+
+include ../../config.mak.uname
+-include ../../config.mak.autogen
+-include ../../config.mak
+
+TARGETS = scalar$(X) scalar.o
+GITLIBS = ../../common-main.o ../../libgit.a ../../xdiff/lib.a
+
+all: scalar$X
+
+$(GITLIBS):
+	$(QUIET_SUBDIR0)../.. $(QUIET_SUBDIR1) $(subst ../../,,$@)
+
+$(TARGETS): $(GITLIBS) scalar.c
+	$(QUIET_SUBDIR0)../.. $(QUIET_SUBDIR1) $(patsubst %,contrib/scalar/%,$@)
+
+clean:
+	$(RM) $(TARGETS)
+
+.PHONY: all clean FORCE
diff --git a/contrib/scalar/scalar.c b/contrib/scalar/scalar.c
new file mode 100644
index 00000000000..7cff29e0fcd
--- /dev/null
+++ b/contrib/scalar/scalar.c
@@ -0,0 +1,36 @@
+/*
+ * The Scalar command-line interface.
+ */
+
+#include "cache.h"
+#include "gettext.h"
+#include "parse-options.h"
+
+static struct {
+	const char *name;
+	int (*fn)(int, const char **);
+} builtins[] = {
+	{ NULL, NULL},
+};
+
+int cmd_main(int argc, const char **argv)
+{
+	struct strbuf scalar_usage = STRBUF_INIT;
+	int i;
+
+	if (argc > 1) {
+		argv++;
+		argc--;
+
+		for (i = 0; builtins[i].name; i++)
+			if (!strcmp(builtins[i].name, argv[0]))
+				return !!builtins[i].fn(argc, argv);
+	}
+
+	strbuf_addstr(&scalar_usage,
+		      N_("scalar <command> [<options>]\n\nCommands:\n"));
+	for (i = 0; builtins[i].name; i++)
+		strbuf_addf(&scalar_usage, "\t%s\n", builtins[i].name);
+
+	usage(scalar_usage.buf);
+}
-- 
gitgitgadget


  reply	other threads:[~2021-08-30 21:35 UTC|newest]

Thread overview: 303+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-30 21:34 [PATCH 00/15] [RFC] Upstreaming the Scalar command Johannes Schindelin via GitGitGadget
2021-08-30 21:34 ` Johannes Schindelin via GitGitGadget [this message]
2021-08-30 21:34 ` [PATCH 02/15] scalar: start documenting the command Johannes Schindelin via GitGitGadget
2021-08-30 21:34 ` [PATCH 03/15] scalar: create test infrastructure Johannes Schindelin via GitGitGadget
2021-08-31  8:15   ` Ævar Arnfjörð Bjarmason
2021-08-30 21:34 ` [PATCH 04/15] scalar: 'register' sets recommended config and starts maintenance Derrick Stolee via GitGitGadget
2021-08-31  8:11   ` Ævar Arnfjörð Bjarmason
2021-08-31 14:22     ` Derrick Stolee
2021-09-01 16:16   ` Junio C Hamano
2021-09-03 15:41     ` Johannes Schindelin
2021-09-03 17:35       ` Junio C Hamano
2021-08-30 21:34 ` [PATCH 05/15] scalar: 'unregister' stops background maintenance Derrick Stolee via GitGitGadget
2021-08-30 21:34 ` [PATCH 06/15] scalar: let 'unregister' handle a deleted enlistment directory gracefully Johannes Schindelin via GitGitGadget
2021-08-30 21:34 ` [PATCH 07/15] scalar: implement 'scalar list' Derrick Stolee via GitGitGadget
2021-08-30 21:34 ` [PATCH 08/15] scalar: implement the `clone` subcommand Johannes Schindelin via GitGitGadget
2021-08-31  8:23   ` Ævar Arnfjörð Bjarmason
2021-08-31 16:47     ` Eric Sunshine
2021-09-03 15:21       ` Johannes Schindelin
2021-09-01 16:45   ` Junio C Hamano
2021-09-03 12:30     ` Derrick Stolee
2021-09-03 17:18       ` Junio C Hamano
2021-09-03 15:20     ` Johannes Schindelin
2021-09-03 17:29       ` Junio C Hamano
2021-09-08 18:59         ` Johannes Schindelin
2021-09-09 10:29           ` Ævar Arnfjörð Bjarmason
2021-09-28  5:19   ` Elijah Newren
2021-10-06 20:40     ` Johannes Schindelin
2021-10-07 14:09       ` Elijah Newren
2021-08-30 21:34 ` [PATCH 09/15] scalar: teach 'clone' to support the --single-branch option Johannes Schindelin via GitGitGadget
2021-08-30 21:34 ` [PATCH 10/15] scalar: implement the `run` command Derrick Stolee via GitGitGadget
2021-08-31  8:27   ` Ævar Arnfjörð Bjarmason
2021-09-03 15:50     ` Johannes Schindelin
2021-09-03 17:49       ` Junio C Hamano
2021-09-08 19:11         ` Johannes Schindelin
2021-08-30 21:34 ` [PATCH 11/15] scalar: allow reconfiguring an existing enlistment Johannes Schindelin via GitGitGadget
2021-08-31  8:29   ` Ævar Arnfjörð Bjarmason
2021-09-03 15:53     ` Johannes Schindelin
2021-09-06  1:01       ` Ævar Arnfjörð Bjarmason
2021-08-30 21:34 ` [PATCH 12/15] scalar: teach 'reconfigure' to optionally handle all registered enlistments Johannes Schindelin via GitGitGadget
2021-08-31  6:19   ` Eric Sunshine
2021-09-03 15:23     ` Johannes Schindelin
2021-09-03 17:02       ` Eric Sunshine
2021-09-08 18:21         ` Johannes Schindelin
2021-08-30 21:34 ` [PATCH 13/15] scalar: implement the `delete` command Matthew John Cheetham via GitGitGadget
2021-08-30 21:34 ` [PATCH 14/15] scalar: implement the `version` command Johannes Schindelin via GitGitGadget
2021-08-31  6:24   ` Eric Sunshine
2021-09-03 15:24     ` Johannes Schindelin
2021-08-30 21:34 ` [PATCH 15/15] scalar: accept -C and -c options before the subcommand Johannes Schindelin via GitGitGadget
2021-08-31  8:32   ` Ævar Arnfjörð Bjarmason
2021-08-31 14:30     ` Derrick Stolee
2021-08-31 14:52       ` Ævar Arnfjörð Bjarmason
2021-08-31  0:51 ` [PATCH 00/15] [RFC] Upstreaming the Scalar command Derrick Stolee
2021-09-01 15:00   ` Elijah Newren
2021-09-03 17:54 ` [PATCH v2 " Johannes Schindelin via GitGitGadget
2021-09-03 17:54   ` [PATCH v2 01/15] scalar: create a rudimentary executable Johannes Schindelin via GitGitGadget
2021-09-14 10:47     ` Ævar Arnfjörð Bjarmason
2021-09-03 17:54   ` [PATCH v2 02/15] scalar: start documenting the command Johannes Schindelin via GitGitGadget
2021-09-03 17:54   ` [PATCH v2 03/15] scalar: create test infrastructure Johannes Schindelin via GitGitGadget
2021-09-03 17:54   ` [PATCH v2 04/15] scalar: 'register' sets recommended config and starts maintenance Derrick Stolee via GitGitGadget
2021-09-03 17:54   ` [PATCH v2 05/15] scalar: 'unregister' stops background maintenance Derrick Stolee via GitGitGadget
2021-09-03 17:54   ` [PATCH v2 06/15] scalar: let 'unregister' handle a deleted enlistment directory gracefully Johannes Schindelin via GitGitGadget
2021-09-03 17:54   ` [PATCH v2 07/15] scalar: implement 'scalar list' Derrick Stolee via GitGitGadget
2021-09-04  8:58     ` Bagas Sanjaya
2021-09-08 19:11       ` Johannes Schindelin
2021-09-03 17:54   ` [PATCH v2 08/15] scalar: implement the `clone` subcommand Johannes Schindelin via GitGitGadget
2021-09-06  1:12     ` Ævar Arnfjörð Bjarmason
2021-09-08 19:23       ` Johannes Schindelin
2021-09-03 17:54   ` [PATCH v2 09/15] scalar: teach 'clone' to support the --single-branch option Johannes Schindelin via GitGitGadget
2021-09-03 17:54   ` [PATCH v2 10/15] scalar: implement the `run` command Derrick Stolee via GitGitGadget
2021-09-03 17:54   ` [PATCH v2 11/15] scalar: allow reconfiguring an existing enlistment Johannes Schindelin via GitGitGadget
2021-09-03 17:54   ` [PATCH v2 12/15] scalar: teach 'reconfigure' to optionally handle all registered enlistments Johannes Schindelin via GitGitGadget
2021-09-03 17:54   ` [PATCH v2 13/15] scalar: implement the `delete` command Matthew John Cheetham via GitGitGadget
2021-09-03 17:54   ` [PATCH v2 14/15] scalar: implement the `version` command Johannes Schindelin via GitGitGadget
2021-09-03 17:54   ` [PATCH v2 15/15] scalar: accept -C and -c options before the subcommand Johannes Schindelin via GitGitGadget
2021-09-06  0:59   ` [PATCH v2 00/15] [RFC] Upstreaming the Scalar command Ævar Arnfjörð Bjarmason
2021-09-08 19:24   ` [PATCH v3 " Johannes Schindelin via GitGitGadget
2021-09-08 19:24     ` [PATCH v3 01/15] scalar: create a rudimentary executable Johannes Schindelin via GitGitGadget
2021-09-09 15:36       ` Elijah Newren
2021-09-13 13:32         ` Johannes Schindelin
2021-09-08 19:24     ` [PATCH v3 02/15] scalar: start documenting the command Johannes Schindelin via GitGitGadget
2021-09-08 19:24     ` [PATCH v3 03/15] scalar: create test infrastructure Johannes Schindelin via GitGitGadget
2021-09-08 19:24     ` [PATCH v3 04/15] scalar: 'register' sets recommended config and starts maintenance Derrick Stolee via GitGitGadget
2021-09-08 19:24     ` [PATCH v3 05/15] scalar: 'unregister' stops background maintenance Derrick Stolee via GitGitGadget
2021-09-08 19:24     ` [PATCH v3 06/15] scalar: let 'unregister' handle a deleted enlistment directory gracefully Johannes Schindelin via GitGitGadget
2021-09-08 19:24     ` [PATCH v3 07/15] scalar: implement 'scalar list' Derrick Stolee via GitGitGadget
2021-09-09  6:11       ` Bagas Sanjaya
2021-09-08 19:24     ` [PATCH v3 08/15] scalar: implement the `clone` subcommand Johannes Schindelin via GitGitGadget
2021-09-08 19:24     ` [PATCH v3 09/15] scalar: teach 'clone' to support the --single-branch option Johannes Schindelin via GitGitGadget
2021-09-08 19:24     ` [PATCH v3 10/15] scalar: implement the `run` command Derrick Stolee via GitGitGadget
2021-09-08 19:24     ` [PATCH v3 11/15] scalar: allow reconfiguring an existing enlistment Johannes Schindelin via GitGitGadget
2021-09-08 19:24     ` [PATCH v3 12/15] scalar: teach 'reconfigure' to optionally handle all registered enlistments Johannes Schindelin via GitGitGadget
2021-09-08 19:24     ` [PATCH v3 13/15] scalar: implement the `delete` command Matthew John Cheetham via GitGitGadget
2021-09-08 19:24     ` [PATCH v3 14/15] scalar: implement the `version` command Johannes Schindelin via GitGitGadget
2021-09-08 19:24     ` [PATCH v3 15/15] scalar: accept -C and -c options before the subcommand Johannes Schindelin via GitGitGadget
2021-09-09 10:14     ` [PATCH v3 00/15] [RFC] Upstreaming the Scalar command Ævar Arnfjörð Bjarmason
2021-09-13 14:20       ` Ævar Arnfjörð Bjarmason
2021-09-13 20:53         ` Johannes Schindelin
2021-09-14 10:59           ` Ævar Arnfjörð Bjarmason
2021-09-14 14:24             ` Train station analogy, was " Johannes Schindelin
2021-09-14 17:29               ` Junio C Hamano
2021-09-14 18:09                 ` Ævar Arnfjörð Bjarmason
2021-09-14 20:35                   ` Derrick Stolee
2021-09-14 23:22                     ` Theodore Ts'o
2021-09-15 17:51                     ` Ævar Arnfjörð Bjarmason
2021-09-14 21:49                 ` Junio C Hamano
2021-10-06 20:09                   ` Johannes Schindelin
2021-10-06 20:25                     ` Junio C Hamano
2021-10-07 10:58                       ` Johannes Schindelin
2021-10-07  1:03                     ` Ævar Arnfjörð Bjarmason
2021-09-14 18:25               ` Ævar Arnfjörð Bjarmason
2021-09-14 14:39     ` [PATCH v4 00/15] " Johannes Schindelin via GitGitGadget
2021-09-14 14:39       ` [PATCH v4 01/15] scalar: create a rudimentary executable Johannes Schindelin via GitGitGadget
2021-09-24 12:52         ` Ævar Arnfjörð Bjarmason
2021-09-24 17:54           ` Junio C Hamano
2021-09-26 19:15             ` Ævar Arnfjörð Bjarmason
2021-09-27 20:32               ` Junio C Hamano
2021-09-14 14:39       ` [PATCH v4 02/15] scalar: start documenting the command Johannes Schindelin via GitGitGadget
2021-09-14 14:39       ` [PATCH v4 03/15] scalar: create test infrastructure Johannes Schindelin via GitGitGadget
2021-09-14 14:39       ` [PATCH v4 04/15] scalar: 'register' sets recommended config and starts maintenance Derrick Stolee via GitGitGadget
2021-09-28  5:01         ` Elijah Newren
2021-09-28  7:27           ` Ævar Arnfjörð Bjarmason
2021-10-06 20:32           ` Johannes Schindelin
2021-09-28  5:05         ` Elijah Newren
2021-10-06 20:38           ` Johannes Schindelin
2021-09-14 14:39       ` [PATCH v4 05/15] scalar: 'unregister' stops background maintenance Derrick Stolee via GitGitGadget
2021-09-14 14:39       ` [PATCH v4 06/15] scalar: let 'unregister' handle a deleted enlistment directory gracefully Johannes Schindelin via GitGitGadget
2021-09-14 14:39       ` [PATCH v4 07/15] scalar: implement 'scalar list' Derrick Stolee via GitGitGadget
2021-09-14 14:39       ` [PATCH v4 08/15] scalar: implement the `clone` subcommand Johannes Schindelin via GitGitGadget
2021-09-14 14:39       ` [PATCH v4 09/15] scalar: teach 'clone' to support the --single-branch option Johannes Schindelin via GitGitGadget
2021-09-14 14:39       ` [PATCH v4 10/15] scalar: implement the `run` command Derrick Stolee via GitGitGadget
2021-09-14 14:39       ` [PATCH v4 11/15] scalar: allow reconfiguring an existing enlistment Johannes Schindelin via GitGitGadget
2021-09-28  5:24         ` Elijah Newren
2021-10-06 20:43           ` Johannes Schindelin
2021-09-14 14:39       ` [PATCH v4 12/15] scalar: teach 'reconfigure' to optionally handle all registered enlistments Johannes Schindelin via GitGitGadget
2021-09-14 14:39       ` [PATCH v4 13/15] scalar: implement the `delete` command Matthew John Cheetham via GitGitGadget
2021-09-28  6:24         ` Elijah Newren
     [not found]           ` <468CE4B8-D2C9-4FBC-B801-739F86C88ACB@outlook.com>
2021-10-06 20:48             ` Johannes Schindelin
2021-09-14 14:39       ` [PATCH v4 14/15] scalar: implement the `version` command Johannes Schindelin via GitGitGadget
2021-09-14 14:39       ` [PATCH v4 15/15] scalar: accept -C and -c options before the subcommand Johannes Schindelin via GitGitGadget
2021-09-14 15:10       ` [PATCH v4 00/15] Upstreaming the Scalar command Johannes Schindelin
2021-09-14 17:51         ` Junio C Hamano
2021-10-07 10:58       ` [PATCH v5 " Johannes Schindelin via GitGitGadget
2021-10-07 10:58         ` [PATCH v5 01/15] scalar: create a rudimentary executable Johannes Schindelin via GitGitGadget
2021-10-07 10:58         ` [PATCH v5 02/15] scalar: start documenting the command Johannes Schindelin via GitGitGadget
2021-10-07 10:58         ` [PATCH v5 03/15] scalar: create test infrastructure Johannes Schindelin via GitGitGadget
2021-10-07 10:58         ` [PATCH v5 04/15] scalar: 'register' sets recommended config and starts maintenance Derrick Stolee via GitGitGadget
2021-10-07 10:58         ` [PATCH v5 05/15] scalar: 'unregister' stops background maintenance Derrick Stolee via GitGitGadget
2021-10-07 10:59         ` [PATCH v5 06/15] scalar: let 'unregister' handle a deleted enlistment directory gracefully Johannes Schindelin via GitGitGadget
2021-10-07 10:59         ` [PATCH v5 07/15] scalar: implement 'scalar list' Derrick Stolee via GitGitGadget
2021-10-07 10:59         ` [PATCH v5 08/15] scalar: implement the `clone` subcommand Johannes Schindelin via GitGitGadget
2021-10-07 10:59         ` [PATCH v5 09/15] scalar: teach 'clone' to support the --single-branch option Johannes Schindelin via GitGitGadget
2021-10-07 10:59         ` [PATCH v5 10/15] scalar: implement the `run` command Derrick Stolee via GitGitGadget
2021-10-07 10:59         ` [PATCH v5 11/15] scalar: allow reconfiguring an existing enlistment Johannes Schindelin via GitGitGadget
2021-10-07 10:59         ` [PATCH v5 12/15] scalar: teach 'reconfigure' to optionally handle all registered enlistments Johannes Schindelin via GitGitGadget
2021-10-07 10:59         ` [PATCH v5 13/15] scalar: implement the `delete` command Matthew John Cheetham via GitGitGadget
2021-10-07 10:59         ` [PATCH v5 14/15] scalar: implement the `version` command Johannes Schindelin via GitGitGadget
2021-10-07 10:59         ` [PATCH v5 15/15] scalar: accept -C and -c options before the subcommand Johannes Schindelin via GitGitGadget
2021-10-07 11:28         ` [PATCH v5 00/15] Upstreaming the Scalar command Ævar Arnfjörð Bjarmason
2021-10-27  8:27         ` [PATCH v6 " Johannes Schindelin via GitGitGadget
2021-10-27  8:27           ` [PATCH v6 01/15] scalar: create a rudimentary executable Johannes Schindelin via GitGitGadget
2021-10-27  8:27           ` [PATCH v6 02/15] scalar: start documenting the command Johannes Schindelin via GitGitGadget
2021-10-27  8:27           ` [PATCH v6 03/15] scalar: create test infrastructure Johannes Schindelin via GitGitGadget
2021-10-27  8:27           ` [PATCH v6 04/15] scalar: 'register' sets recommended config and starts maintenance Derrick Stolee via GitGitGadget
2021-10-27  8:27           ` [PATCH v6 05/15] scalar: 'unregister' stops background maintenance Derrick Stolee via GitGitGadget
2021-10-27  8:27           ` [PATCH v6 06/15] scalar: let 'unregister' handle a deleted enlistment directory gracefully Johannes Schindelin via GitGitGadget
2021-10-27  8:27           ` [PATCH v6 07/15] scalar: implement 'scalar list' Derrick Stolee via GitGitGadget
2021-10-27  8:27           ` [PATCH v6 08/15] scalar: implement the `clone` subcommand Johannes Schindelin via GitGitGadget
2021-10-27  8:27           ` [PATCH v6 09/15] scalar: teach 'clone' to support the --single-branch option Johannes Schindelin via GitGitGadget
2021-10-27  8:27           ` [PATCH v6 10/15] scalar: implement the `run` command Derrick Stolee via GitGitGadget
2021-10-27  8:27           ` [PATCH v6 11/15] scalar: allow reconfiguring an existing enlistment Johannes Schindelin via GitGitGadget
2021-10-27  8:27           ` [PATCH v6 12/15] scalar: teach 'reconfigure' to optionally handle all registered enlistments Johannes Schindelin via GitGitGadget
2021-10-27  8:27           ` [PATCH v6 13/15] scalar: implement the `delete` command Matthew John Cheetham via GitGitGadget
2021-10-27  8:27           ` [PATCH v6 14/15] scalar: implement the `version` command Johannes Schindelin via GitGitGadget
2021-10-27  8:27           ` [PATCH v6 15/15] scalar: accept -C and -c options before the subcommand Johannes Schindelin via GitGitGadget
2021-10-27 21:57           ` [PATCH v6 00/15] Upstreaming the Scalar command Derrick Stolee
2021-11-17 14:19           ` [PATCH v7 00/17] " Johannes Schindelin via GitGitGadget
2021-11-17 14:19             ` [PATCH v7 01/17] scalar: add a README with a roadmap Johannes Schindelin via GitGitGadget
2021-11-17 15:40               ` Derrick Stolee
2021-11-18 13:51                 ` Johannes Schindelin
2021-11-17 14:19             ` [PATCH v7 02/17] scalar: create a rudimentary executable Johannes Schindelin via GitGitGadget
2021-11-17 14:19             ` [PATCH v7 03/17] scalar: start documenting the command Johannes Schindelin via GitGitGadget
2021-11-17 14:19             ` [PATCH v7 04/17] scalar: create test infrastructure Johannes Schindelin via GitGitGadget
2021-11-17 14:19             ` [PATCH v7 05/17] cmake: optionally build `scalar`, too Johannes Schindelin via GitGitGadget
2021-11-17 21:12               ` Matt Rogers
2021-11-18 13:32                 ` Johannes Schindelin
2021-11-17 14:19             ` [PATCH v7 06/17] ci: also run the `scalar` tests Johannes Schindelin via GitGitGadget
2021-11-17 14:19             ` [PATCH v7 07/17] scalar: 'register' sets recommended config and starts maintenance Derrick Stolee via GitGitGadget
2021-11-17 14:19             ` [PATCH v7 08/17] scalar: 'unregister' stops background maintenance Derrick Stolee via GitGitGadget
2021-11-17 14:19             ` [PATCH v7 09/17] scalar: let 'unregister' handle a deleted enlistment directory gracefully Johannes Schindelin via GitGitGadget
2021-11-17 14:19             ` [PATCH v7 10/17] scalar: implement 'scalar list' Derrick Stolee via GitGitGadget
2021-11-17 14:19             ` [PATCH v7 11/17] scalar: implement the `clone` subcommand Johannes Schindelin via GitGitGadget
2021-11-17 14:19             ` [PATCH v7 12/17] scalar: teach 'clone' to support the --single-branch option Johannes Schindelin via GitGitGadget
2021-11-17 14:19             ` [PATCH v7 13/17] scalar: implement the `run` command Derrick Stolee via GitGitGadget
2021-11-17 14:19             ` [PATCH v7 14/17] scalar: allow reconfiguring an existing enlistment Johannes Schindelin via GitGitGadget
2021-11-17 14:19             ` [PATCH v7 15/17] scalar: teach 'reconfigure' to optionally handle all registered enlistments Johannes Schindelin via GitGitGadget
2021-11-17 14:19             ` [PATCH v7 16/17] scalar: implement the `delete` command Matthew John Cheetham via GitGitGadget
2021-11-17 14:19             ` [PATCH v7 17/17] scalar: implement the `version` command Johannes Schindelin via GitGitGadget
2021-11-18 14:11             ` [PATCH v7 00/17] Upstreaming the Scalar command Ævar Arnfjörð Bjarmason
2021-11-19 23:03             ` [PATCH v8 " Johannes Schindelin via GitGitGadget
2021-11-19 23:03               ` [PATCH v8 01/17] scalar: add a README with a roadmap Johannes Schindelin via GitGitGadget
2021-11-19 23:03               ` [PATCH v8 02/17] scalar: create a rudimentary executable Johannes Schindelin via GitGitGadget
2021-11-19 23:03               ` [PATCH v8 03/17] scalar: start documenting the command Johannes Schindelin via GitGitGadget
2021-11-19 23:03               ` [PATCH v8 04/17] scalar: create test infrastructure Johannes Schindelin via GitGitGadget
2021-11-30 13:27                 ` Ævar Arnfjörð Bjarmason
2021-11-19 23:03               ` [PATCH v8 05/17] cmake: optionally build `scalar`, too Johannes Schindelin via GitGitGadget
2021-11-19 23:03               ` [PATCH v8 06/17] ci: also run the `scalar` tests Johannes Schindelin via GitGitGadget
2021-11-19 23:03               ` [PATCH v8 07/17] scalar: 'register' sets recommended config and starts maintenance Derrick Stolee via GitGitGadget
2021-11-19 23:03               ` [PATCH v8 08/17] scalar: 'unregister' stops background maintenance Derrick Stolee via GitGitGadget
2021-11-19 23:03               ` [PATCH v8 09/17] scalar: let 'unregister' handle a deleted enlistment directory gracefully Johannes Schindelin via GitGitGadget
2021-11-19 23:03               ` [PATCH v8 10/17] scalar: implement 'scalar list' Derrick Stolee via GitGitGadget
2021-11-19 23:03               ` [PATCH v8 11/17] scalar: implement the `clone` subcommand Johannes Schindelin via GitGitGadget
2021-11-19 23:03               ` [PATCH v8 12/17] scalar: teach 'clone' to support the --single-branch option Johannes Schindelin via GitGitGadget
2021-11-19 23:03               ` [PATCH v8 13/17] scalar: implement the `run` command Derrick Stolee via GitGitGadget
2021-11-19 23:03               ` [PATCH v8 14/17] scalar: allow reconfiguring an existing enlistment Johannes Schindelin via GitGitGadget
2021-11-19 23:03               ` [PATCH v8 15/17] scalar: teach 'reconfigure' to optionally handle all registered enlistments Johannes Schindelin via GitGitGadget
2021-11-19 23:03               ` [PATCH v8 16/17] scalar: implement the `delete` command Matthew John Cheetham via GitGitGadget
2021-11-19 23:03               ` [PATCH v8 17/17] scalar: implement the `version` command Johannes Schindelin via GitGitGadget
2021-11-20 17:22               ` [PATCH v8 00/17] Upstreaming the Scalar command Elijah Newren
2021-11-22 12:21                 ` Johannes Schindelin
2021-11-22 16:36                   ` Ævar Arnfjörð Bjarmason
2021-11-22 22:08                     ` Johannes Schindelin
2021-11-22 23:29                       ` Ævar Arnfjörð Bjarmason
2021-11-23 11:52                         ` Johannes Schindelin
2021-11-23 12:45                           ` Ævar Arnfjörð Bjarmason
2021-11-23 13:05                             ` Johannes Schindelin
2021-11-30 11:54               ` [PATCH v9 " Johannes Schindelin via GitGitGadget
2021-11-30 11:54                 ` [PATCH v9 01/17] scalar: add a README with a roadmap Johannes Schindelin via GitGitGadget
2021-11-30 11:54                 ` [PATCH v9 02/17] scalar: create a rudimentary executable Johannes Schindelin via GitGitGadget
2021-11-30 11:54                 ` [PATCH v9 03/17] scalar: start documenting the command Johannes Schindelin via GitGitGadget
2021-11-30 11:54                 ` [PATCH v9 04/17] scalar: create test infrastructure Johannes Schindelin via GitGitGadget
2021-11-30 11:54                 ` [PATCH v9 05/17] cmake: optionally build `scalar`, too Johannes Schindelin via GitGitGadget
2021-11-30 11:54                 ` [PATCH v9 06/17] ci: also run the `scalar` tests Johannes Schindelin via GitGitGadget
2021-11-30 11:54                 ` [PATCH v9 07/17] scalar: 'register' sets recommended config and starts maintenance Derrick Stolee via GitGitGadget
2021-11-30 11:54                 ` [PATCH v9 08/17] scalar: 'unregister' stops background maintenance Derrick Stolee via GitGitGadget
2021-11-30 11:54                 ` [PATCH v9 09/17] scalar: let 'unregister' handle a deleted enlistment directory gracefully Johannes Schindelin via GitGitGadget
2021-11-30 11:54                 ` [PATCH v9 10/17] scalar: implement 'scalar list' Derrick Stolee via GitGitGadget
2021-11-30 11:54                 ` [PATCH v9 11/17] scalar: implement the `clone` subcommand Johannes Schindelin via GitGitGadget
2021-11-30 11:54                 ` [PATCH v9 12/17] scalar: teach 'clone' to support the --single-branch option Johannes Schindelin via GitGitGadget
2021-11-30 11:54                 ` [PATCH v9 13/17] scalar: implement the `run` command Derrick Stolee via GitGitGadget
2021-11-30 11:54                 ` [PATCH v9 14/17] scalar: allow reconfiguring an existing enlistment Johannes Schindelin via GitGitGadget
2021-11-30 11:54                 ` [PATCH v9 15/17] scalar: teach 'reconfigure' to optionally handle all registered enlistments Johannes Schindelin via GitGitGadget
2021-11-30 11:54                 ` [PATCH v9 16/17] scalar: implement the `delete` command Matthew John Cheetham via GitGitGadget
2021-11-30 11:54                 ` [PATCH v9 17/17] scalar: implement the `version` command Johannes Schindelin via GitGitGadget
2021-11-30 12:16                 ` [PATCH v9 00/17] Upstreaming the Scalar command Ævar Arnfjörð Bjarmason
2021-11-30 14:11                   ` Johannes Schindelin
2021-11-30 14:50                     ` Ævar Arnfjörð Bjarmason
2021-12-01 17:58                     ` Junio C Hamano
2021-12-02 14:53                       ` Johannes Schindelin
2021-12-02 17:03                         ` Junio C Hamano
2021-12-02 17:39                           ` Elijah Newren
2021-12-02 18:42                             ` Junio C Hamano
2021-12-08 11:26                               ` Johannes Schindelin
2021-12-09  4:02                                 ` Junio C Hamano
2021-12-03 13:34                 ` [PATCH v10 00/15] " Johannes Schindelin via GitGitGadget
2021-12-03 13:34                   ` [PATCH v10 01/15] scalar: add a README with a roadmap Johannes Schindelin via GitGitGadget
2021-12-03 13:34                   ` [PATCH v10 02/15] scalar: create a rudimentary executable Johannes Schindelin via GitGitGadget
2021-12-03 13:34                   ` [PATCH v10 03/15] scalar: start documenting the command Johannes Schindelin via GitGitGadget
2021-12-03 13:34                   ` [PATCH v10 04/15] scalar: create test infrastructure Johannes Schindelin via GitGitGadget
2021-12-03 13:34                   ` [PATCH v10 05/15] scalar: 'register' sets recommended config and starts maintenance Derrick Stolee via GitGitGadget
2021-12-03 13:34                   ` [PATCH v10 06/15] scalar: 'unregister' stops background maintenance Derrick Stolee via GitGitGadget
2021-12-03 13:34                   ` [PATCH v10 07/15] scalar: let 'unregister' handle a deleted enlistment directory gracefully Johannes Schindelin via GitGitGadget
2021-12-03 13:34                   ` [PATCH v10 08/15] scalar: implement 'scalar list' Derrick Stolee via GitGitGadget
2021-12-03 13:34                   ` [PATCH v10 09/15] scalar: implement the `clone` subcommand Johannes Schindelin via GitGitGadget
2021-12-03 13:34                   ` [PATCH v10 10/15] scalar: teach 'clone' to support the --single-branch option Johannes Schindelin via GitGitGadget
2021-12-03 13:34                   ` [PATCH v10 11/15] scalar: implement the `run` command Derrick Stolee via GitGitGadget
2021-12-03 13:34                   ` [PATCH v10 12/15] scalar: allow reconfiguring an existing enlistment Johannes Schindelin via GitGitGadget
2021-12-03 13:34                   ` [PATCH v10 13/15] scalar: teach 'reconfigure' to optionally handle all registered enlistments Johannes Schindelin via GitGitGadget
2021-12-03 13:34                   ` [PATCH v10 14/15] scalar: implement the `delete` command Matthew John Cheetham via GitGitGadget
2021-12-03 13:34                   ` [PATCH v10 15/15] scalar: implement the `version` command Johannes Schindelin via GitGitGadget
2021-12-03 15:48                   ` [PATCH v10 00/15] Upstreaming the Scalar command Elijah Newren
2021-12-05 10:02                     ` Junio C Hamano
2021-12-07 20:05                       ` Ævar Arnfjörð Bjarmason
2021-12-08 19:55                         ` Junio C Hamano
2021-12-08 20:04                           ` [RFC/PATCH] Makefile: add test-all target Junio C Hamano
2021-12-08 21:30                             ` Derrick Stolee
2021-12-08 22:22                               ` Junio C Hamano
2021-12-08 21:52                             ` Jeff King
2021-12-08 22:25                               ` Junio C Hamano
2021-12-09 17:57                               ` Junio C Hamano
2021-12-10  8:37                                 ` Jeff King
2021-12-13  9:12                                   ` Junio C Hamano
2021-12-09  3:44                             ` Ævar Arnfjörð Bjarmason
2021-12-09 18:12                               ` Junio C Hamano
2021-12-10  2:38                                 ` Ævar Arnfjörð Bjarmason
2021-12-10  8:50                                   ` Jeff King
2021-12-10  9:30                                     ` Ævar Arnfjörð Bjarmason
2021-12-10 23:43                                     ` Johannes Schindelin
2021-12-10 23:27                                 ` Elijah Newren
2021-12-13  9:12                                   ` Junio C Hamano
2021-12-10 23:14                             ` Johannes Schindelin
2021-12-13  8:42                               ` Junio C Hamano
2021-12-14 13:16                                 ` Jeff King
2021-12-14 13:18                                   ` Jeff King
2021-12-11 11:08                             ` Bagas Sanjaya
2021-12-08 11:15                       ` [PATCH v10 00/15] Upstreaming the Scalar command Johannes Schindelin
2021-12-08 13:04                         ` Ævar Arnfjörð Bjarmason
2021-12-08 14:17                         ` Derrick Stolee
2021-12-08 18:29                         ` Elijah Newren
2021-12-09  3:52                         ` Junio C Hamano
2021-12-11  0:29                           ` Johannes Schindelin
2021-12-11  1:07                             ` Ævar Arnfjörð Bjarmason
2021-12-11  5:15                             ` Elijah Newren
2021-12-11 13:46                               ` Johannes Schindelin

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

  List information: http://vger.kernel.org/majordomo-info.html

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

  git send-email \
    --in-reply-to=b8c7d3f84508ae0fb300f47c726764f4cbf46be9.1630359290.git.gitgitgadget@gmail.com \
    --to=gitgitgadget@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=johannes.schindelin@gmx.de \
    /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.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

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 read-only IMAP folder(s) and NNTP newsgroup(s).