self._not_busy()
def rev_list(self, refs, count=None, parse=None, format=None):
+ """See git.rev_list for the general semantics, but note that with the
+ current interface, the parse function must be able to handle
+ (consume) any blank lines produced by the format because the
+ first one received that it doesn't consume will be interpreted
+ as a terminator for the entire rev-list result.
+
+ """
self._require_command('rev-list')
assert (count is None) or (isinstance(count, Integral))
if format:
conn.write('\n')
conn.write('\n')
if not format:
- for _ in range(len(refs)):
- line = conn.readline()
- if not line:
- raise ClientError('unexpected EOF')
+ for line in lines_until_sentinel(conn, '\n', ClientError):
line = line.strip()
assert len(line) == 40
yield line
else:
- for _ in range(len(refs)):
- line = conn.readline()
- if not line:
- raise ClientError('unexpected EOF')
+ for line in lines_until_sentinel(conn, '\n', ClientError):
if not line.startswith('commit '):
raise ClientError('unexpected line ' + repr(line))
- yield line[7:].strip(), parse(conn)
+ cmt_oidx = line[7:].strip()
+ assert len(cmt_oidx) == 40
+ yield cmt_oidx, parse(conn)
# FIXME: confusing
not_ok = self.check_ok()
if not_ok:
s = line.strip()
if not s.startswith('commit '):
raise Exception('unexpected line ' + s)
- yield s[7:], parse(p.stdout)
+ s = s[7:]
+ assert len(s) == 40
+ yield s, parse(p.stdout)
line = p.stdout.readline()
rv = p.wait() # not fatal
WVPASS touch -t 200910032348 src
WVPASS touch -t 200910032348 .
WVPASS bup index src
+# Include two saves to test multiple results per ref from rev_list.
+WVPASS bup save -n src -d 242312159 --strip src
WVPASS bup save -n src -d 242312160 --strip src
WVPASS bup tag some-tag src
WVPASSEQ "$(WVPASS bup-ls /.tag)" "some-tag"
WVPASSEQ "$(WVPASS bup-ls /src)" \
-"1977-09-05-125600
+"1977-09-05-125559
+1977-09-05-125600
latest"
WVPASSEQ "$(WVPASS bup-ls src/latest)" "bad-symlink
WVSTART "$ls_cmd_desc (backup set - long)"
WVPASSEQ "$(bup-ls -l --numeric-ids src | cut -d' ' -f 1-2)" \
"drwx------ $uid/$gid
+drwx------ $uid/$gid
lrwxr-xr-x 0/0"
WVPASSEQ "$(bup-ls -ds "src/1977-09-05-125600" | tr -s ' ' ' ')" \