git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[RFC PATCH v5 3/6] fast-import: add feature command

From
Sverre Rabbelier <srabbelier@gmail.com>
Date
Aug 27, 2009, 18:12 UTC
Message-ID
<1251396736-928-3-git-send-email-srabbelier@gmail.com>
In-Reply-To
<1251396736-928-2-git-send-email-srabbelier@gmail.com>
From: Sverre Rabbelier <srabbelier@google.com>

This allows the fronted to require a specific feature to be supported by the frontend, or abort.

Also add support for the first feature, date-format=.
Signed-off-by: Sverre Rabbelier <srabbelier@gmail.com>
---
	New in this series, currently RFC. This should make it easier
	for frontends to specify their needs.
 Documentation/git-fast-import.txt |   16 ++++++++++++++++
 fast-import.c                     |   13 +++++++++++++
 2 files changed, 29 insertions(+), 0 deletions(-)
diff --git a/Documentation/git-fast-import.txt b/Documentation/git-fast-import.txt
index c2f483a..1e293f2 100644
--- a/Documentation/git-fast-import.txt
+++ b/Documentation/git-fast-import.txt
@@ -303,6 +303,10 @@ and control the current import process.  More detailed discussion
 	standard output.  This command is optional and is not needed
 	to perform an import.
 
+`feature`::
+	Require that fast-import supports the specified feature, or
+	abort if it does not.
+
 `commit`
 ~~~~~~~~
 Create or update a branch with a new commit, recording one logical
@@ -813,6 +817,18 @@ Placing a `progress` command immediately after a `checkpoint` will
 inform the reader when the `checkpoint` has been completed and it
 can safely access the refs that fast-import updated.
 
+`feature`
+~~~~~~~~~
+Require that fast-import supports the specified feature, or abort if
+it does not.
+
+....
+	'feature' SP <feature> LF
+....
+
+The <feature> part of the command may be any string matching
+[a-zA-Z-] and should be understood by a version of fast-import.
+
 Crash Reports
 -------------
 If fast-import is supplied invalid input it will terminate with a
diff --git a/fast-import.c b/fast-import.c
index 812fcf0..9bf06a4 100644
--- a/fast-import.c
+++ b/fast-import.c
@@ -2450,6 +2450,17 @@ static void parse_one_option(const char *option)
 	}
 }
 
+static void parse_feature(void)
+{
+	char *feature = command_buf.buf + 8;
+
+	if (!prefixcmp(feature, "date-format=")) {
+		option_date_format(feature + 12);
+	} else {
+		die("This version of fast-import does not support feature %s.", feature);
+	}
+}
+
 static int git_pack_config(const char *k, const char *v, void *cb)
 {
 	if (!strcmp(k, "pack.depth")) {
@@ -2526,6 +2537,8 @@ int main(int argc, const char **argv)
 			parse_checkpoint();
 		else if (!prefixcmp(command_buf.buf, "progress "))
 			parse_progress();
+		else if (!prefixcmp(command_buf.buf, "feature "))
+			parse_feature();
 		else
 			die("Unsupported command: %s", command_buf.buf);
 	}
-- 
1.6.4.122.g6ffd7
Previous: Sverre RabbelierNext: Sverre Rabbelier
Message 3 of 10 in “fast-import: put option parsing code in seperate functions”
  1. 1/6 fast-import: put option parsing code in seperate functionsSverre Rabbelier, Aug 27, 2009
  2. 2/6 fast-import: put marks reading in it's own functionSverre Rabbelier, Aug 27, 2009
  3. 3/6 fast-import: add feature commandSverre Rabbelier, Aug 27, 2009
  4. 4/6 fast-import: test the new feature commandSverre Rabbelier, Aug 27, 2009
  5. 5/6 fast-import: add option commandSverre Rabbelier, Aug 27, 2009
  6. 6/6 fast-import: test the new option commandSverre Rabbelier, Aug 27, 2009
  7. Julian PhillipsAug 27, 2009
  8. Sverre RabbelierAug 27, 2009
  9. Julian PhillipsAug 27, 2009
  10. Sverre RabbelierAug 27, 2009

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.