Restoring a Git repo from the bundles requires some careful treatment to ensure that the restored repo is really identical to the state at the time of archival, in particular if there are deleted branches or similar.
The workflow of the script would probably go something like this:
Create a new empty repo
Retrieve the index for the supplied bundle, and fetch from the bundle
If the bundle is based other bundles, fetch those as well, recursively
Delete all refs (probably temporarily disabling GC), then set all refs on the supplied bundle index
I’m not sure that actually works or it needs to be built from the oldest bundle instead since the newer bundles would only contain incomplete packs.
Restoring a Git repo from the bundles requires some careful treatment to ensure that the restored repo is really identical to the state at the time of archival, in particular if there are deleted branches or similar.
The workflow of the script would probably go something like this:
1. Create a new empty repo
2. Retrieve the index for the supplied bundle, and fetch from the bundle
3. If the bundle is based other bundles, fetch those as well, recursively
4. Delete all refs (probably temporarily disabling GC), then set all refs on the supplied bundle index
I'm not sure that actually works or it needs to be built from the oldest bundle instead since the newer bundles would only contain incomplete packs.
Restoring a Git repo from the bundles requires some careful treatment to ensure that the restored repo is really identical to the state at the time of archival, in particular if there are deleted branches or similar.
The workflow of the script would probably go something like this:
I’m not sure that actually works or it needs to be built from the oldest bundle instead since the newer bundles would only contain incomplete packs.