Subject: Re: Round-tripping fast-export/import changes commit hashes

From: Ævar Arnfjörð Bjarmason <[email-masked]>
Date: Mon, 01 Mar 2021 21:02:06 +0100

On Mon, Mar 01 2021, anatoly techtonik wrote:

> On Sun, Feb 28, 2021 at 1:34 PM Ævar Arnfjörð Bjarmason
> <[email-masked]> wrote:
>>
>> I think Elijah means that in the general case people are using fast
>> export/import to export/import between different systems or in
>> combination with a utility like git-filter-repo.
>>
>> In those cases users are also changing the content of the repository, so
>> the hashes will change, invalidating signatures.
>>
>> But there's also cases where e.g. you don't modify the history, or only
>> part of it, and could then preserve these headers. I think there's no
>> inherent reason not to do so, just that nobody's cared enough to submit
>> patches etc.
>
> Is fast-export/import the only way to filter information in `git`? Maybe there
> is a slow json-export/import tool that gives a complete representation of all
> events in a repository? Or API that can be used to serialize and import that
> stream?

Aside from other things mentioned & any issues in fast export/import in
this thread, if you want round-trip correctness you're not going to want
JSON-anything. It's not capable of representing arbitrary binary data.

But in any case, it's not the fast-export format that's the issue, but
how the tools in git.git are munging/rewriting/omitting the repository
data in question...