~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/branchbuilder.py

  • Committer: Patch Queue Manager
  • Date: 2012-02-25 15:28:53 UTC
  • mfrom: (6475.1.1 bzr.dev)
  • Revision ID: pqm@pqm.ubuntu.com-20120225152853-nz1w2gsfv7lc1yq4
(jelmer) Update documentation to mention command hooks landed in bzr 2.6
 rather than 2.5. (Brian de Alwis)

Show diffs side-by-side

added added

removed removed

Lines of Context:
16
16
 
17
17
"""Utility for create branches with particular contents."""
18
18
 
 
19
from __future__ import absolute_import
 
20
 
19
21
from bzrlib import (
20
22
    controldir,
21
23
    commit,
87
89
                transport.base, format=format, force_new_tree=False)
88
90
        self._tree = None
89
91
 
90
 
    def build_commit(self, **commit_kwargs):
 
92
    def build_commit(self, parent_ids=None, allow_leftmost_as_ghost=False,
 
93
                     **commit_kwargs):
91
94
        """Build a commit on the branch.
92
95
 
93
96
        This makes a commit with no real file content for when you only want
96
99
        :param commit_kwargs: Arguments to pass through to commit, such as
97
100
             timestamp.
98
101
        """
 
102
        if parent_ids is not None:
 
103
            if len(parent_ids) == 0:
 
104
                base_id = revision.NULL_REVISION
 
105
            else:
 
106
                base_id = parent_ids[0]
 
107
            if base_id != self._branch.last_revision():
 
108
                self._move_branch_pointer(base_id,
 
109
                    allow_leftmost_as_ghost=allow_leftmost_as_ghost)
99
110
        tree = memorytree.MemoryTree.create_on_branch(self._branch)
100
111
        tree.lock_write()
101
112
        try:
 
113
            if parent_ids is not None:
 
114
                tree.set_parent_ids(parent_ids,
 
115
                    allow_leftmost_as_ghost=allow_leftmost_as_ghost)
102
116
            tree.add('')
103
117
            return self._do_commit(tree, **commit_kwargs)
104
118
        finally: