Skip to content

Instantly share code, notes, and snippets.

@timri
Created December 4, 2013 22:30
Show Gist options
  • Save timri/7796797 to your computer and use it in GitHub Desktop.
Save timri/7796797 to your computer and use it in GitHub Desktop.
Test with "lost" packfile
tim@rohan:/tmp$ rm -rf src/* rest/* bup/
tim@rohan:/tmp$ bup init
Initialisierte leeres Git-Repository in /tmp/bup/
tim@rohan:/tmp$ ls /etc/ >> src/file1
tim@rohan:/tmp$ bup index src ; bup save -n save-etc src
Indexing: 2, done.
Reading index: 2, done.
Saving: 100.00% (7/7k, 2/2 files), done.
bloom: creating from 1 file (10 objects).
tim@rohan:/tmp$ ls /usr/ >> src/file2
tim@rohan:/tmp$ bup index src ; bup save -n save-etc+usr src
Indexing: 3, done.
bup: merging indexes (8/8), done.
Reading index: 3, done.
Saving: 100.00% (4/4k, 3/3 files), done.
bloom: adding 1 file (7 objects).
tim@rohan:/tmp$ ls /var/ >> src/file3
tim@rohan:/tmp$ bup index src ; bup save -n save-etc+usr+var src
Indexing: 4, done.
bup: merging indexes (9/9), done.
Reading index: 4, done.
Saving: 100.00% (4/4k, 4/4 files), done.
bloom: adding 1 file (6 objects).
tim@rohan:/tmp$ rm -rf rest/*
tim@rohan:/tmp$ bup restore -C rest save-etc/latest
Restoring: 4, done.
tim@rohan:/tmp$ rm -rf rest/*
tim@rohan:/tmp$ bup restore -C rest save-etc+usr/latest
Restoring: 5, done.
tim@rohan:/tmp$ rm -rf rest/*
tim@rohan:/tmp$ bup restore -C rest save-etc+usr+var/latest
Restoring: 6, done.
tim@rohan:/tmp$ rm -rf rest/*
tim@rohan:/tmp$ ls -lt bup/objects/pack/pack-*.idx
-rw-r--r-- 1 tim tim 1240 Dez 4 23:22 bup/objects/pack/pack-ad9614067199f4adb6fbde08281d2b4acb3e05c4.idx
-rw-r--r-- 1 tim tim 1268 Dez 4 23:21 bup/objects/pack/pack-64bda8fc00ceae848a6fd91b2d46302257974461.idx
-rw-r--r-- 1 tim tim 1352 Dez 4 23:20 bup/objects/pack/pack-bd6c2b8921053a78f42d205a742fe6d82285dcdf.idx
tim@rohan:/tmp$ rm bup/objects/pack/pack-64bda8fc00ceae848a6fd91b2d46302257974461.*
tim@rohan:/tmp$ bup restore -C rest save-etc/latest
error: refs/heads/save-etc+usr does not point to a valid object!
error: refs/heads/save-etc+usr does not point to a valid object!
error: refs/heads/save-etc+usr does not point to a valid object!
Restoring: 4, done.
tim@rohan:/tmp$ rm -rf rest/*
tim@rohan:/tmp$ bup restore -C rest save-etc+usr/latest
error: refs/heads/save-etc+usr does not point to a valid object!
no file 'save-etc+usr' in '/'
Restoring: 0, done.
WARNING: 1 errors encountered while restoring.
tim@rohan:/tmp$ rm -rf rest/*
tim@rohan:/tmp$ bup restore -C rest save-etc+usr+var/latest
error: refs/heads/save-etc+usr does not point to a valid object!
error: refs/heads/save-etc+usr does not point to a valid object!
error: refs/heads/save-etc+usr does not point to a valid object!
Traceback (most recent call last):
File "/home/tim/src/bup/cmd/bup-restore", line 320, in <module>
do_root(target, owner_map)
File "/home/tim/src/bup/cmd/bup-restore", line 209, in do_root
do_node(n, sub, owner_map, meta = m)
File "/home/tim/src/bup/cmd/bup-restore", line 237, in do_node
meta_stream = mfile.open()
File "/home/tim/src/bup/lib/bup/vfs.py", line 327, in open
self._filereader = _FileReader(self.hash, self.size(),
File "/home/tim/src/bup/lib/bup/vfs.py", line 339, in size
self._cached_size = _chunk_len(self.hash)
File "/home/tim/src/bup/lib/bup/vfs.py", line 58, in _chunk_len
return sum(len(b) for b in cp().join(hash.encode('hex')))
File "/home/tim/src/bup/lib/bup/vfs.py", line 58, in <genexpr>
return sum(len(b) for b in cp().join(hash.encode('hex')))
File "/home/tim/src/bup/lib/bup/git.py", line 1045, in join
for d in self._join(self.get(id)):
File "/home/tim/src/bup/lib/bup/git.py", line 1020, in _join
type = it.next()
File "/home/tim/src/bup/lib/bup/git.py", line 986, in _fast_get
raise KeyError('blob %r is missing' % id)
KeyError: "blob 'e92591937bef19071348d365baaf7629057d315a' is missing"
tim@rohan:/tmp$ bup index src ; bup save -n save-repaired src
Indexing: 4, done.
error: refs/heads/save-etc+usr does not point to a valid object!
Reading index: 1, done.
Saving: 100.00% (0/0k, 1/1 files), done.
bloom: creating from 3 files (18 objects).
tim@rohan:/tmp$ rm -rf rest/*
tim@rohan:/tmp$ bup restore -C rest save-repaired/latest
error: refs/heads/save-etc+usr does not point to a valid object!
error: refs/heads/save-etc+usr does not point to a valid object!
error: refs/heads/save-etc+usr does not point to a valid object!
Traceback (most recent call last):
File "/home/tim/src/bup/cmd/bup-restore", line 320, in <module>
do_root(target, owner_map)
File "/home/tim/src/bup/cmd/bup-restore", line 209, in do_root
do_node(n, sub, owner_map, meta = m)
File "/home/tim/src/bup/cmd/bup-restore", line 260, in do_node
do_node(top, sub, owner_map, meta = m)
File "/home/tim/src/bup/cmd/bup-restore", line 260, in do_node
do_node(top, sub, owner_map, meta = m)
File "/home/tim/src/bup/cmd/bup-restore", line 249, in do_node
write_file_content(fullname, n)
File "/home/tim/src/bup/cmd/bup-restore", line 157, in write_file_content
for b in chunkyreader(n.open()):
File "/home/tim/src/bup/lib/bup/vfs.py", line 327, in open
self._filereader = _FileReader(self.hash, self.size(),
File "/home/tim/src/bup/lib/bup/vfs.py", line 339, in size
self._cached_size = _chunk_len(self.hash)
File "/home/tim/src/bup/lib/bup/vfs.py", line 58, in _chunk_len
return sum(len(b) for b in cp().join(hash.encode('hex')))
File "/home/tim/src/bup/lib/bup/vfs.py", line 58, in <genexpr>
return sum(len(b) for b in cp().join(hash.encode('hex')))
File "/home/tim/src/bup/lib/bup/git.py", line 1045, in join
for d in self._join(self.get(id)):
File "/home/tim/src/bup/lib/bup/git.py", line 1020, in _join
type = it.next()
File "/home/tim/src/bup/lib/bup/git.py", line 986, in _fast_get
raise KeyError('blob %r is missing' % id)
KeyError: "blob 'd60d0c2547a7812b1f5636b28229dcf08527db3e' is missing"
tim@rohan:/tmp$ rm -rf rest/*
tim@rohan:/tmp$ bup midx -f -a
tim@rohan:/tmp$ bup bloom -f
bloom: creating from 3 files (18 objects).
tim@rohan:/tmp$ bup index src ; bup save -n save-repaired src
Indexing: 4, done.
error: refs/heads/save-etc+usr does not point to a valid object!
Reading index: 1, done.
Saving: 100.00% (0/0k, 1/1 files), done.
bloom: adding 1 file (4 objects).
tim@rohan:/tmp$ bup restore -C rest save-repaired/latest
error: refs/heads/save-etc+usr does not point to a valid object!
error: refs/heads/save-etc+usr does not point to a valid object!
error: refs/heads/save-etc+usr does not point to a valid object!
Traceback (most recent call last):
File "/home/tim/src/bup/cmd/bup-restore", line 320, in <module>
do_root(target, owner_map)
File "/home/tim/src/bup/cmd/bup-restore", line 209, in do_root
do_node(n, sub, owner_map, meta = m)
File "/home/tim/src/bup/cmd/bup-restore", line 260, in do_node
do_node(top, sub, owner_map, meta = m)
File "/home/tim/src/bup/cmd/bup-restore", line 260, in do_node
do_node(top, sub, owner_map, meta = m)
File "/home/tim/src/bup/cmd/bup-restore", line 249, in do_node
write_file_content(fullname, n)
File "/home/tim/src/bup/cmd/bup-restore", line 157, in write_file_content
for b in chunkyreader(n.open()):
File "/home/tim/src/bup/lib/bup/vfs.py", line 327, in open
self._filereader = _FileReader(self.hash, self.size(),
File "/home/tim/src/bup/lib/bup/vfs.py", line 339, in size
self._cached_size = _chunk_len(self.hash)
File "/home/tim/src/bup/lib/bup/vfs.py", line 58, in _chunk_len
return sum(len(b) for b in cp().join(hash.encode('hex')))
File "/home/tim/src/bup/lib/bup/vfs.py", line 58, in <genexpr>
return sum(len(b) for b in cp().join(hash.encode('hex')))
File "/home/tim/src/bup/lib/bup/git.py", line 1045, in join
for d in self._join(self.get(id)):
File "/home/tim/src/bup/lib/bup/git.py", line 1020, in _join
type = it.next()
File "/home/tim/src/bup/lib/bup/git.py", line 986, in _fast_get
raise KeyError('blob %r is missing' % id)
KeyError: "blob 'd60d0c2547a7812b1f5636b28229dcf08527db3e' is missing"
tim@rohan:/tmp$ bup index --fake-invalid src ; bup save -n save-repaired src
Indexing: 4, done.
error: refs/heads/save-etc+usr does not point to a valid object!
Reading index: 4, done.
Saving: 100.00% (7/7k, 4/4 files), done.
bloom: adding 1 file (2 objects).
tim@rohan:/tmp$ rm -rf rest/*
tim@rohan:/tmp$ bup restore -C rest save-repaired/latest
error: refs/heads/save-etc+usr does not point to a valid object!
error: refs/heads/save-etc+usr does not point to a valid object!
error: refs/heads/save-etc+usr does not point to a valid object!
Restoring: 6, done.
tim@rohan:/tmp$
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment