Part of bzrlib.branch View In Hierarchy
Known subclasses: bzrlib.branch.BzrBranch, bzrlib.foreign.ForeignBranch, bzrlib.remote.RemoteBranch, bzrlib.tests.test_bzrdir._TestBranch, bzrlib.tests.test_bzrdir.SampleBranch
Instance Variables | base | Base directory/url of the branch; using control_url and control_transport is more standardized. |
hooks | An instance of BranchHooks. | |
_master_branch_cache | cached result of get_master_branch, see _clear_cached_state. |
Method | control_transport | Undocumented |
Method | user_transport | Undocumented |
Method | __init__ | Undocumented |
Method | break_lock | Break a lock if one is present from another instance. |
Static Method | open | Open the branch rooted at base. |
Static Method | open_from_transport | Open the branch rooted at transport |
Static Method | open_containing | Open an existing branch which contains url. |
Method | get_config | Get a bzrlib.config.BranchConfig for this Branch. |
Method | get_config_stack | Get a bzrlib.config.BranchStack for this Branch. |
Method | is_locked | Undocumented |
Method | lock_write | Lock the branch for write operations. |
Method | lock_read | Lock the branch for read operations. |
Method | unlock | Undocumented |
Method | peek_lock_mode | Return lock mode for the Branch: 'r', 'w' or None |
Method | get_physical_lock_status | Undocumented |
Method | dotted_revno_to_revision_id | Return the revision_id for a dotted revno. |
Method | revision_id_to_dotted_revno | Given a revision id, return its dotted revno. |
Method | get_revision_id_to_revno_map | Return the revision_id => dotted revno map. |
Method | iter_merge_sorted_revisions | Walk the revisions for a branch in merge sorted order. |
Method | leave_lock_in_place | Tell this branch object not to release the physical lock when this |
Method | dont_leave_lock_in_place | Tell this branch object to release the physical lock when this |
Method | bind | Bind the local branch the other branch. |
Method | get_append_revisions_only | Whether it is only possible to append revisions to the history. |
Method | set_append_revisions_only | Undocumented |
Method | set_reference_info | Set the branch location to use for a tree reference. |
Method | get_reference_info | Get the tree_path and branch_location for a tree reference. |
Method | fetch | Copy revisions from from_branch into this branch. |
Method | get_bound_location | Return the URL of the branch we are bound to. |
Method | get_old_bound_location | Return the URL of the branch we used to be bound to |
Method | get_commit_builder | Obtain a CommitBuilder for this branch. |
Method | get_master_branch | Return the branch we are bound to. |
Method | get_revision_delta | Return the delta for one revision. |
Method | get_stacked_on_url | Get the URL this branch is stacked against. |
Method | print_file | Print file to stdout. |
Method | set_revision_history | See Branch.set_revision_history. |
Method | set_last_revision_info | Set the last revision of this branch. |
Method | generate_revision_history | See Branch.generate_revision_history |
Method | set_parent | See Branch.set_parent. |
Method | set_stacked_on_url | Set the URL this branch is stacked against. |
Method | revision_history | Return sequence of revision ids on this branch. |
Method | revno | Return current revision number for this branch. |
Method | unbind | Older format branches cannot bind or unbind. |
Method | last_revision | Return last revision id, or NULL_REVISION. |
Method | last_revision_info | Return information about the last revision. |
Method | import_last_revision_info | Set the last revision info, importing from another repo if necessary. |
Method | import_last_revision_info_and_tags | Set the last revision info, importing from another repo if necessary. |
Method | revision_id_to_revno | Given a revision id, return its revno |
Method | get_rev_id | Find the revision id of the specified revno. |
Method | pull | Mirror source into this branch. |
Method | push | Mirror this branch into target. |
Method | basis_tree | Return Tree object for last revision. |
Method | get_parent | Return the parent location of the branch. |
Method | get_child_submit_format | Return the preferred format of submissions to this branch. |
Method | get_submit_branch | Return the submit location of the branch. |
Method | set_submit_branch | Return the submit location of the branch. |
Method | get_public_branch | Return the public location of the branch. |
Method | set_public_branch | Return the submit location of the branch. |
Method | get_push_location | Return the None or the location to push this branch to. |
Method | set_push_location | Set a new push location for this branch. |
Method | update | Synchronise this branch with the master branch if any. |
Method | check_revno | Check whether a revno corresponds to any revision. |
Method | check_real_revno | Check whether a revno corresponds to a real revision. |
Method | clone | Clone this branch into to_bzrdir preserving all semantic values. |
Method | sprout | Create a new line of development from the branch, into to_bzrdir. |
Method | copy_content_into | Copy the content of self into destination. |
Method | update_references | Undocumented |
Method | check | Check consistency of the branch. |
Method | create_clone_on_transport | Create a clone of this branch and its bzrdir. |
Method | create_checkout | Create a checkout of a branch. |
Method | reconcile | Make sure the data stored in this branch is consistent. |
Method | reference_parent | Return the parent branch for a tree-reference file_id |
Method | supports_tags | Undocumented |
Method | automatic_tag_name | Try to automatically find the tag name for a revision. |
Method | heads_to_fetch | Return the heads that must and that should be fetched to copy this |
Method | _open_hook | Called by init to allow simpler extension of the base class. |
Method | _activate_fallback_location | Activate the branch/repository from url as a fallback repository. |
Method | _check_stackable_repo | Undocumented |
Method | _extend_partial_history | Extend the partial history to include a given index |
Method | _get_check_refs | Get the references needed for check(). |
Method | _push_should_merge_tags | Should _basic_push merge this branch's tags into the target? |
Method | _get_config | Get the concrete config for just the config in this branch. |
Method | _get_fallback_repository | Get the repository we fallback to at url. |
Method | _get_tags_bytes | Get the bytes of a serialised tags dict. |
Method | _get_nick | Undocumented |
Method | _set_nick | Undocumented |
Method | _lefthand_history | Undocumented |
Method | _do_dotted_revno_to_revision_id | Worker function for dotted_revno_to_revision_id. |
Method | _do_revision_id_to_dotted_revno | Worker function for revision_id_to_revno. |
Method | _gen_revno_map | Create a new mapping from revision ids to dotted revnos. |
Method | _filter_merge_sorted_revisions | Iterate over an inclusive range of sorted revisions. |
Method | _filter_start_non_ancestors | Undocumented |
Method | _set_revision_history | Undocumented |
Method | _unstack | Change a branch to be unstacked, copying data as needed. |
Method | _set_tags_bytes | Mirror method for _get_tags_bytes. |
Method | _set_tags_bytes_locked | Undocumented |
Method | _cache_revision_history | Set the cached revision history to rev_history. |
Method | _cache_revision_id_to_revno | Set the cached revision_id => revno map to revision_id_to_revno. |
Method | _clear_cached_state | Clear any cached data on this branch, e.g. cached revision history. |
Method | _gen_revision_history | Return sequence of revision hashes on to this branch. |
Method | _revision_history | Undocumented |
Method | _read_last_revision_info | Undocumented |
Method | _get_parent_location | Undocumented |
Method | _set_config_location | Undocumented |
Method | _get_config_location | Undocumented |
Method | _run_post_change_branch_tip_hooks | Run the post_change_branch_tip hooks. |
Method | _run_pre_change_branch_tip_hooks | Run the pre_change_branch_tip hooks. |
Method | _synchronize_history | Synchronize last revision and revision history between branches. |
Method | _get_checkout_format | Return the most suitable metadir for a checkout of this branch. |
Method | _check_if_descendant_or_diverged | Ensure that revision_b is a descendant of revision_a. |
Method | _revision_relations | Determine the relationship between two revisions. |
Inherited from ControlComponent:
Method | control_url | Undocumented |
Method | user_url | Undocumented |
Uses the ui factory to ask for confirmation if the lock may be from an active process.
This will probe the repository for its lock as well.
If a stop_index is supplied, stop when that index has been reached. If a stop_revision is supplied, stop when that revision is encountered. Otherwise, stop when the beginning of history is reached.
Parameters | stop_index | The index which should be present. When it is present, history extension will stop. |
stop_revision | The revision id which should be present. When it is encountered, history extension will stop. |
For instance, if the branch is at URL/.bzr/branch, Branch.open(URL) -> a Branch instance.
This probes for a branch at url, and searches upwards from there.
Basically we keep looking up until we find the control directory or run into the root. If there isn't one, raises NotBranchError. If there is one and it is either an unrecognised format or an unsupported format, UnknownFormatError or UnsupportedFormatError are raised. If there is one, it is returned, along with the unused portion of url.
The default implementation returns False if this branch has no tags, and True the rest of the time. Subclasses may override this.
This can then be used to get and set configuration options for the branch.
Returns | A bzrlib.config.BranchConfig. |
This can then be used to get and set configuration options for the branch.
Returns | A bzrlib.config.BranchStack. |
This is not intended for client use; see Branch.get_config for the public API.
Added in 1.14.
Returns | An object supporting get_option and set_option. |
Note that not all branches support tags, nor do all use the same tags logic: this method is specific to BasicTags. Other tag implementations may use the same method name and behave differently, safely, because of the double-dispatch via format.make_tags->tags_instance->get_tags_dict.
Returns | The bytes of the tags file. | |
See Also | Branch._set_tags_bytes. |
Parameters | token | A token to permit reacquiring a previously held and preserved lock. |
Returns | A BranchWriteLockResult. |
Returns | A bzrlib.lock.LogicalLockResult. |
Parameters | revno | a tuple like (1,) or (1,1,2) |
_cache_reverse | a private parameter enabling storage of the reverse mapping in a top level cache. (This should only be done in selective circumstances as we want to avoid having the mapping cached multiple times.) | |
Returns | the revision_id | |
Raises | errors.NoSuchRevision | if the revno doesn't exist |
Subclasses should override this if they wish to provide a more efficient implementation.
Returns | a tuple like (1,) or (400,1,3). |
This will be regenerated on demand, but will be cached.
Returns | A dictionary mapping revision_id => dotted revno. This dictionary should not be modified by the caller. |
Dotted revnos are generated based on the current tip in the revision history. This is the worker function for get_revision_id_to_revno_map, which just caches the return value.
Returns | A dictionary mapping revision_id => dotted revno. |
Merge sorted order is the output from a merge-aware, topological sort, i.e. all parents come before their children going forward; the opposite for reverse.
Parameters | start_revision_id | the revision_id to begin walking from. If None, the branch tip is used. |
stop_revision_id | the revision_id to terminate the walk after. If None, the rest of history is included. | |
stop_rule | if stop_revision_id is not None, the precise rule to use for termination:
| |
direction | either 'reverse' or 'forward':
| |
Returns | an iterator over (revision_id, depth, revno, end_of_merge) tuples where:
|
If lock_write doesn't return a token, then this method is not supported.
If lock_write doesn't return a token, then this method is not supported.
Parameters | other | The branch to bind to (type: Branch) |
Parameters | from_branch | Where to copy from. |
last_revision | What revision to stop at (None for at the end of the branch. | |
limit | Optional rough limit of revisions to fetch | |
Returns | None |
Older format branches cannot bind, please be sure to use a metadir branch.
Parameters | parents | Revision ids of the parents of the new revision. |
config | Optional configuration to use. | |
timestamp | Optional timestamp recorded for commit. | |
timezone | Optional timezone for timestamp. | |
committer | Optional committer to set for commit. | |
revprops | Optional dictionary of revision properties. | |
revision_id | Optional revision id. | |
lossy | Whether to discard data that can not be natively represented, when pushing to a foreign VCS |
Returns | Either a Branch, or None |
The delta is relative to its mainline predecessor, or the empty tree for revision 1.
Raises | NotStacked | If the branch is not stacked. |
UnstackableBranchFormat | If the branch does not support stacking. |
file
to stdout.The caller is responsible for checking that the revno is correct for this revision id.
It may be possible to set the branch last revision to an id not present in the repository. However, branches can also be configured to check constraints on history, in which case this may not be permitted.
Raises | UnstackableBranchFormat | If the branch does not support stacking. |
UnstackableRepositoryFormat | If the repository does not support stacking. |
Don't call this directly, use set_stacked_on_url(None).
See Also | Branch._get_tags_bytes. |
The revision_history method will use this cache to avoid regenerating the revision history.
This API is semi-public; it only for use by subclasses, all other code should consider it to be private.
This API is semi-public; it only for use by subclasses, all other code should consider it to be private.
This means the next call to revision_history will need to call _gen_revision_history.
This API is semi-public; it only for use by subclasses, all other code should consider it to be private.
Unlike revision_history, this method always regenerates or rereads the revision history, i.e. it does not cache the result, so repeated calls may be expensive.
Concrete subclasses should override this instead of revision_history so that subclasses do not need to deal with caching logic.
This API is semi-public; it only for use by subclasses, all other code should consider it to be private.
This method will cache the revision history for as long as it is safe to do so.
That is equivalent to the number of revisions committed to this branch.
Returns | A tuple (revno, revision_id). |
Parameters | source_repo | Source repository to optionally fetch from |
revno | Revision number of the new tip | |
revid | Revision id of the new tip |
This is used by the bound branch code to upload a revision to the master branch first before updating the tip of the local branch. Revisions referenced by source's tags are also transferred.
Parameters | source | Source branch to optionally fetch from |
revno | Revision number of the new tip | |
revid | Revision id of the new tip | |
lossy | Whether to discard metadata that can not be natively represented | |
Returns | Tuple with the new revision number and revision id (should only be different from the arguments when lossy=True) |
This branch is considered to be 'local', having low latency.
Returns | PullResult instance |
This branch is considered to be 'local', having low latency.
This is the default location for pull/missing. The usual pattern is that the user can override it by specifying a location.
This is the default location for bundle. The usual pattern is that the user can override it by specifying a location.
This is the default location for bundle. The usual pattern is that the user can override it by specifying a location.
This is used by merge directives.
This is the default location for bundle. The usual pattern is that the user can override it by specifying a location.
Returns | None or the last_revision pivoted out during the update. |
Clone this branch into to_bzrdir preserving all semantic values.
Most API users will want 'create_clone_on_transport', which creates a new bzrdir and branch on the fly.
Create a new line of development from the branch, into to_bzrdir.
to_bzrdir controls the branch format.
This version is most efficient when the destination is also a BzrBranch6, but works for BzrBranch5, as long as the destination's repository contains all the lefthand ancestors of the intended last_revision. If not, set_last_revision_info will fail.
Parameters | destination | The branch to copy the history into |
revision_id | The revision-id to truncate history at. May be None to copy complete history. |
Copy the content of self into destination.
In particular this checks that revisions given in the revision-history do actually match up in the revision graph, and that they're all present in the repository.
Callers will typically also want to check the repository.
Parameters | refs | Calculated refs for this branch as specified by branch._get_check_refs() |
Returns | A BranchCheckResult. |
Parameters | to_transport | The transport to clone onto. |
revision_id | The revision id to use as tip in the new branch. If None the tip is obtained from this branch. | |
stacked_on | An optional URL to stack the clone on. | |
create_prefix | Create any missing directories leading up to to_transport. | |
use_existing_dir | Use an existing directory if one exists. |
Parameters | to_location | The url to produce the checkout at |
revision_id | The revision to check out | |
lightweight | If True, produce a lightweight checkout, otherwise, produce a bound branch (heavyweight checkout) | |
accelerator_tree | A tree which can be used for retrieving file contents more quickly than the revision tree, i.e. a workingtree. The revision tree will be used for cases where accelerator_tree's content is different. | |
hardlink | If true, hard-link files from accelerator_tree, where possible. | |
Returns | The tree of the created checkout |
Parameters | file_id | The file_id of the tree reference |
path | The path of the file_id in the tree | |
Returns | A branch associated with the file_id |
Parameters | revision_id | Revision id of the revision. |
Returns | A tag name or None if no tag name could be determined. |
This is a helper function for update_revisions.
Returns | True if revision_b is a descendant of revision_a. | |
Raises | DivergedBranches if revision_b has diverged from revision_a. |
Returns | One of: 'a_descends_from_b', 'b_descends_from_a', 'diverged' |
Returns | a 2-tuple of (must_fetch, if_present_fetch). must_fetch is a set of heads that must be fetched. if_present_fetch is a set of heads that must be fetched if present, but no error is necessary if they are not present. |