summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2013-10-19 11:54:08 -0400
committerGravatar Joey Hess <joey@kitenet.net>2013-10-19 11:54:08 -0400
commit43ee6974ede750ca0ddaa79e61ee4c19f967e77a (patch)
treebbc9daf6c114c9fe03dd588ba479b0dbc4029627 /doc
parent2cc98c19fcb930cf5008495c23f62cc7d6c2f1a1 (diff)
update
Diffstat (limited to 'doc')
-rw-r--r--doc/design/assistant/disaster_recovery.mdwn16
1 files changed, 8 insertions, 8 deletions
diff --git a/doc/design/assistant/disaster_recovery.mdwn b/doc/design/assistant/disaster_recovery.mdwn
index 67054273e..ccc6a5e6e 100644
--- a/doc/design/assistant/disaster_recovery.mdwn
+++ b/doc/design/assistant/disaster_recovery.mdwn
@@ -99,14 +99,14 @@ and inject them back into .git/objects to recover:
packs it can handle (which may include parts of corrupt packs)
back to loose objects. And delete all packs.
2. Delete all loose corrupt objects.
-3. Make a new (bare) clone from the remote. Use `--reference` pointing
- at the broken repository, to avoid re-downloading objects that
- are present in it. (git does not seem to provide an easy way to just
- fetch specific missing objects from a remote; `git fetch-pack` only
- operates on refs... but this clone method should be pretty efficient)
-4. Unpack any packs in the clone, so we can operate on loose objects.
-5. Copy each missing object from the new clone's .git/objects to the
- repository.
+3. Make a new (bare) clone from the remote.
+ (Note: git does not seem to provide a way to fetch specific missing
+ objects from the remote. Also, cannot use `--reference` against
+ a repository with missing refs. So this seems unavoidably
+ network-expensive.)
+5. Use git-cat-file in raw mode on the clone to dump each missing object,
+ and feed it into git-hash-object in the corrupt repo. (This avoids
+ needing to unpack packs in the clone.)
6. If each bad object was able to be repaired this way, we're done!
(If not, can reuse the clone for getting objects from the next remote.)