/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to pristine_tar.py

  • Committer: Jelmer Vernooij
  • Date: 2012-08-26 12:39:14 UTC
  • mto: (0.200.1614 trunk)
  • mto: This revision was merged to the branch mainline in revision 6960.
  • Revision ID: jelmer@samba.org-20120826123914-yvynmlfo3lrrxl6a
Add function for reading pristine tar data from a git repo.

Show diffs side-by-side

added added

removed removed

Lines of Context:
21
21
    standard_b64decode,
22
22
    )
23
23
 
 
24
from dulwich.objects import Tree
 
25
 
24
26
 
25
27
def revision_pristine_tar_data(rev):
26
28
    """Export the pristine tar data from a revision."""
34
36
        raise KeyError
35
37
 
36
38
    return standard_b64decode(uuencoded)
 
39
 
 
40
 
 
41
def get_pristine_tar_tree(repo):
 
42
    """Retrieve the pristine tar tree for a repository.
 
43
 
 
44
    """
 
45
    try:
 
46
        cid = repo.refs["refs/heads/pristine-tar"]
 
47
    except KeyError:
 
48
        return Tree()
 
49
    tid = repo.object_store[cid].tree
 
50
    return repo.object_store[tid]
 
51
 
 
52
 
 
53
def read_git_pristine_tar_data(repo, filename):
 
54
    """Read pristine data from a Git repository.
 
55
 
 
56
    :param repo: Git repository to read from
 
57
    :param filename: Name of file to read
 
58
    :return: Tuple with delta and id
 
59
    """
 
60
    tree = get_pristine_tar_tree(repo)
 
61
    delta = tree[filename + ".delta"][1]
 
62
    gitid = tree[filename + ".id"][1]
 
63
    return (repo.object_store[delta].data,
 
64
            repo.object_store[gitid].data)