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

Re: [PATCH v7 3/6] fast-import: add feature command

From
Shawn O. Pearce <spearce@spearce.org>
Date
Sep 12, 2009, 18:51 UTC
Message-ID
<20090912185122.GQ1033@spearce.org>
In-Reply-To
<1252247748-14507-4-git-send-email-srabbelier@gmail.com>
Sverre Rabbelier <srabbelier@gmail.com> wrote:
> 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=.
...
Show 12 quoted lines
> +`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.
> +
Where is the documentation for 'feature date-format=<FORMAT>'?

Also, IIRC the fast-import list agreed that the <feature> name must match the re ^[a-zA-Z][a-zA-Z-]*$. Saying that here does somewhat help another fast-import developer to use the same stream format, but it does not help a user to understand what features they can ask for in their stream.

Show 28 quoted lines
> 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();

So its legal to change the data format in the middle of a stream? I thought we agreed on fast-import list that "feature" needs to come before any data commands, and isn't legal once data commands have appeared in the stream. Thus it should not be possible to request a change in the date-format once a blob or commit has been stored.

-- 
Shawn.
Previous: Miklos VajnaNext: Sverre Rabbelier
Message 13 of 15 in “fast-import: add new feature and option command”
  1. 0/6 fast-import: add new feature and option commandSverre Rabbelier, Sep 6, 2009
  2. 1/6 fast-import: put option parsing code in separate functionsSverre Rabbelier, Sep 6, 2009
  3. 2/6 fast-import: put marks reading in it's own functionSverre Rabbelier, Sep 6, 2009
  4. 3/6 fast-import: add feature commandSverre Rabbelier, Sep 6, 2009
  5. 4/6 fast-import: test the new feature commandSverre Rabbelier, Sep 6, 2009
  6. 5/6 fast-import: add option commandSverre Rabbelier, Sep 6, 2009
  7. 6/6 fast-import: test the new option commandSverre Rabbelier, Sep 6, 2009
  8. Shawn O. PearceSep 12, 2009
  9. Sverre RabbelierSep 12, 2009
  10. Shawn O. PearceSep 12, 2009
  11. Sverre RabbelierSep 12, 2009
  12. Miklos VajnaSep 13, 2009
  13. Shawn O. PearceSep 12, 2009
  14. Sverre RabbelierSep 12, 2009
  15. Shawn O. PearceSep 12, 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.