def _initialize(self): """Iterate over git-ls-tree and create GitTreeItems.""" status, output = git.ls_tree('--full-tree', '-r', '-t', '-z', self.ref, with_status=True, with_stderr=True) if status != 0: cola.notifier().broadcast(signals.log_cmd, status, output) return if not output: return for line in core.decode(output[:-1]).split('\0'): # .....6 ...4 ......................................40 # 040000 tree c127cde9a0c644a3a8fef449a244f47d5272dfa6 relative # 100644 blob 139e42bf4acaa4927ec9be1ec55a252b97d3f1e2 relative/path objtype = line[7] relpath = line[6 + 1 + 4 + 1 + 40 + 1:] if objtype == 't': parent = self.dir_entries[utils.dirname(relpath)] self.add_directory(parent, relpath) elif objtype == 'b': self.add_file(relpath)
def parse_ls_tree(rev): """Return a list of(mode, type, sha1, path) tuples.""" output = [] lines = git.ls_tree(rev, r=True)[STDOUT].splitlines() regex = re.compile(r"^(\d+)\W(\w+)\W(\w+)[ \t]+(.*)$") for line in lines: match = regex.match(line) if match: mode = match.group(1) objtype = match.group(2) sha1 = match.group(3) filename = match.group(4) output.append((mode, objtype, sha1, filename)) return output
def parse_ls_tree(rev): """Return a list of(mode, type, sha1, path) tuples.""" output = [] lines = git.ls_tree(rev, r=True)[STDOUT].splitlines() regex = re.compile(r'^(\d+)\W(\w+)\W(\w+)[ \t]+(.*)$') for line in lines: match = regex.match(line) if match: mode = match.group(1) objtype = match.group(2) sha1 = match.group(3) filename = match.group(4) output.append((mode, objtype, sha1, filename,) ) return output
def _initialize(self): """Iterate over git-ls-tree and create GitTreeItems.""" status, output = git.ls_tree('--full-tree', '-r', '-t', '-z', self.ref, with_status=True, with_stderr=True) if status != 0: cola.notifier().broadcast(signals.log_cmd, status, output) return for line in output.rstrip('\0').split('\0'): # .....6 ...4 ......................................40 # 040000 tree c127cde9a0c644a3a8fef449a244f47d5272dfa6 relative # 100644 blob 139e42bf4acaa4927ec9be1ec55a252b97d3f1e2 relative/path objtype = line[7] relpath = line[6 + 1 + 4 + 1 + 40 + 1:] if objtype == 't': parent = self.dir_entries[utils.dirname(relpath)] self.add_directory(parent, relpath) elif objtype == 'b': self.add_file(relpath)
def _initialize(self): """Iterate over git-ls-tree and create GitTreeItems.""" status, out, err = git.ls_tree("--full-tree", "-r", "-t", "-z", self.ref) if status != 0: Interaction.log_status(status, out, err) return if not out: return for line in out[:-1].split("\0"): # .....6 ...4 ......................................40 # 040000 tree c127cde9a0c644a3a8fef449a244f47d5272dfa6 relative # 100644 blob 139e42bf4acaa4927ec9be1ec55a252b97d3f1e2 relative/path objtype = line[7] relpath = line[6 + 1 + 4 + 1 + 40 + 1 :] if objtype == "t": parent = self.dir_entries[utils.dirname(relpath)] self.add_directory(parent, relpath) elif objtype == "b": self.add_file(relpath)
def _initialize(self): """Iterate over git-ls-tree and create GitTreeItems.""" status, out, err = git.ls_tree('--full-tree', '-r', '-t', '-z', self.ref) if status != 0: Interaction.log_status(status, out, err) return if not out: return for line in out[:-1].split('\0'): # .....6 ...4 ......................................40 # 040000 tree c127cde9a0c644a3a8fef449a244f47d5272dfa6 relative # 100644 blob 139e42bf4acaa4927ec9be1ec55a252b97d3f1e2 relative/path objtype = line[7] relpath = line[6 + 1 + 4 + 1 + 40 + 1:] if objtype == 't': parent = self.dir_entries[utils.dirname(relpath)] self.add_directory(parent, relpath) elif objtype == 'b': self.add_file(relpath)