shalists = [[]]
def _push(part):
+ assert(part)
parts.append(part)
shalists.append([])
dirp = dir.split('/')
while parts > dirp:
_pop()
- for part in dirp[len(parts):]:
- _push(part)
+ if dir != '/':
+ for part in dirp[len(parts):]:
+ _push(part)
if not file:
# directory already handled.
def new_tree(self, shalist):
shalist = sorted(shalist, key = _shalist_sort_key)
- l = ['%s %s\0%s' % (mode,name,bin)
- for (mode,name,bin) in shalist]
+ l = []
+ for (mode,name,bin) in shalist:
+ assert(mode)
+ assert(mode[0] != '0')
+ assert(name)
+ assert(len(bin) == 20)
+ l.append('%s %s\0%s' % (mode,name,bin))
return self.maybe_write('tree', ''.join(l))
def _new_commit(self, tree, parent, author, adate, committer, cdate, msg):
cd "$BUP_DIR" || exit 1
#git repack -Ad
#git prune
- (cd "$TOP/t/sampledata" && WVPASS bup save -vvn master .) || WVFAIL
+ (cd "$TOP/t/sampledata" && WVPASS bup save -vvn master /) || WVFAIL
n=$(git fsck --full --strict 2>&1 |
egrep -v 'dangling (commit|tree)' |
tee -a /dev/stderr |