Re: [PATCH] Add 'git fast-export', the sister of 'git fast-import'

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Johannes Schindelin <Johannes.Schindelin@xxxxxx> writes:

> diff --git a/Documentation/git-fast-export.txt b/Documentation/git-fast-export.txt
> new file mode 100644
> index 0000000..073ff7f
> --- /dev/null
> +++ b/Documentation/git-fast-export.txt
> ...
> +DESCRIPTION
> +-----------
> +This program dumps the given revisions in a form suitable to be piped
> +into gitlink:git-fast-import[1].
> +
> +You can use it as a human readable bundle replacement (see
> +gitlink:git-bundle[1]), or as a kind of an interactive
> +gitlink:git-filter-branch[1].
> +
> +
> +OPTIONS
> +-------
> +--progress=<n>::
> +	Insert 'progress' statements every <n> objects, to be shown by
> +	gitlink:git-fast-import[1] during import.
> +
> +--signed-tags=(ignore|warn|strip|abort)::
> +	Specify how to handle signed tags.  Since any transformation
> +	after the export can change the tag names (which can also happen
> +	when excluding revisions) the signatures will not match.
> ++
> +When asking to 'abort' (which is the default), this program will die
> +when encountering a signed tag.  With 'strip', the tags will be made
> +unsigned, with 'ignore', they will be silently ignored (i.e. not exported)
> +and with 'warn', they will be exported, but you will see a warning.

I am not sure if abort should be the default.

If a straight dump-restore is made without rewriting, the result will be
identical to the original, right?

The reason I mention a straight dump-restore is because ...

> +$ git fast-export master~5..master |
> +	sed "s|refs/heads/master|refs/heads/other|" |
> +	git fast-import

... I find this a quite unrealistic example to assume that the data
stream does not have some string and convert blindly without parsing.

On the other hand, we _could_ also have a separate filter that works on
input stream for fast-import, but that filter should know what the
fast-import input stream looks like (a simple sed does not cut it).  

So unless the future direction is to deprecate filter-branch and replace
it with such a fast-import based filter in between fast-export and
fast-import, I think the use of fast-export is to make verbatim copy
without munging the contents, which leads me to think --signed-tag
option should default to "export it as-is".

... which seem to be missing from the available values to the option.

> diff --git a/builtin-fast-export.c b/builtin-fast-export.c
> new file mode 100755
> index 0000000..48d0c54
> --- /dev/null
> +++ b/builtin-fast-export.c
> ...
> +/*
> + * TODO:
> + * - tags (--signed-tags=(ignore|warn|strip|abort)
> + */

This comment is stale?

-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux