Part of bzrlib.transform View In Hierarchy
Known subclasses: bzrlib.transform.DiskTreeTransform
Method | __init__ | Constructor. |
Method | __enter__ | Support Context Manager API. |
Method | __exit__ | Support Context Manager API. |
Method | finalize | Release the working tree lock, if held. |
Method | create_path | Assign a transaction id to a new path |
Method | adjust_path | Change the path that is assigned to a transaction id. |
Method | adjust_root_path | Emulate moving the root by moving all children, instead. |
Method | fixup_new_roots | Reinterpret requests to change the root directory |
Method | trans_id_tree_file_id | Determine the transaction id of a working tree file. |
Method | trans_id_file_id | Determine or set the transaction id associated with a file ID. |
Method | trans_id_tree_path | Determine (and maybe set) the transaction ID for a tree path. |
Method | get_tree_parent | Determine id of the parent in the tree. |
Method | delete_contents | Schedule the contents of a path entry for deletion |
Method | cancel_deletion | Cancel a scheduled deletion |
Method | unversion_file | Schedule a path entry to become unversioned |
Method | delete_versioned | Delete and unversion a versioned file |
Method | set_executability | Schedule setting of the 'execute' bit |
Method | set_tree_reference | Set the reference associated with a directory |
Method | version_file | Schedule a file to become versioned. |
Method | cancel_versioning | Undo a previous versioning of a file |
Method | new_paths | Determine the paths of all new and changed files. |
Method | final_kind | Determine the final file kind, after any changes applied. |
Method | tree_file_id | Determine the file id associated with the trans_id in the tree |
Method | final_file_id | Determine the file id after any changes are applied, or None. |
Method | inactive_file_id | Return the inactive file_id associated with a transaction id. |
Method | final_parent | Determine the parent file_id, after any changes are applied. |
Method | final_name | Determine the final filename, after all changes are applied. |
Method | by_parent | Return a map of parent: children for known parents. |
Method | path_changed | Return True if a trans_id's path has changed. |
Method | new_contents | Undocumented |
Method | find_conflicts | Find any violations of inventory or filesystem invariants |
Method | has_named_child | Undocumented |
Method | new_file | Convenience method to create files. |
Method | new_directory | Convenience method to create directories. |
Method | new_symlink | Convenience method to create symbolic link. |
Method | new_orphan | Schedule an item to be orphaned. |
Method | iter_changes | Produce output in the same format as Tree.iter_changes. |
Method | get_preview_tree | Return a tree representing the result of the transform. |
Method | commit | Commit the result of this TreeTransform to a branch. |
Method | serialize | Serialize this TreeTransform. |
Method | deserialize | Deserialize a stored TreeTransform. |
Method | __get_root | Undocumented |
Method | _assign_id | Produce a new tranform id |
Method | _inventory_altered | Determine which trans_ids need new Inventory entries. |
Method | _check_malformed | Undocumented |
Method | _add_tree_children | Add all the children of all active parents to the known paths. |
Method | _has_named_child | Does a parent already have a name child. |
Method | _available_backup_name | Find an available backup name. |
Method | _parent_loops | No entry should be its own ancestor |
Method | _unversioned_parents | If parent directories are versioned, children must be versioned. |
Method | _improper_versioning | Cannot version a file with no contents, or a bad type. |
Method | _executability_conflicts | Check for bad executability changes. |
Method | _overwrite_conflicts | Check for overwrites (not permitted on Win32) |
Method | _duplicate_entries | No directory may have two entries with the same name. |
Method | _duplicate_ids | Each inventory id may only be used once |
Method | _parent_type_conflicts | Children must have a directory parent |
Method | _set_executability | Set the executability of versioned files |
Method | _new_entry | Helper function to create a new filesystem entry. |
Method | _get_potential_orphans | Find the potential orphans in a directory. |
Method | _affected_ids | Return the set of transform ids affected by the transform |
Method | _get_file_id_maps | Return mapping of file_ids to trans_ids in the to and from states |
Method | _from_file_data | Get data about a file in the from (tree) state |
Method | _to_file_data | Get data about a file in the to (target) state |
Method | _text_parent | Undocumented |
Method | _get_parents_texts | Get texts for compression parents of this file. |
Method | _get_parents_lines | Get lines for compression parents of this file. |
Parameters | tree | The tree that will be transformed, but not necessarily the output tree. |
pb | ignored | |
case_sensitive | If True, the target of the transform is case sensitive, not just case preserving. |
This is required if apply has not been invoked, but can be invoked even after apply.
We do this by undoing the association of root's transaction id with the current tree. This allows us to create a new directory with that transaction id. We unversion the root directory and version the physically new directory, and hope someone versions the tree root later.
Instead of creating a root directory, or moving an existing directory, all the attributes and children of the new root are applied to the existing root directory.
This means that the old root trans-id becomes obsolete, so it is recommended only to invoke this after the root trans-id has become irrelevant.
This reflects only files that already exist, not ones that will be added by transactions.
Parameters | filesystem_only | if True, only calculate values for files that require renames or execute bit changes. |
An new entry is needed when anything that would be reflected by an inventory entry changes, including file name, file_id, parent file_id, file kind, and the execute bit.
Some care is taken to return entries with real changes, not cases where the value is deleted and then restored to its original value, but some actually unchanged values may be returned.
Returns | A list of (path, trans_id) for all items requiring an inventory change. Ordered by path. |
Returns | None if the file does not exist/has no contents. (It is conceivable that a path would be created without the corresponding contents insertion command) |
None indicates that the file will not be versioned after changes are applied.
ROOT_PARENT is returned for the tree root.
Only new paths and parents of tree files with assigned ids are used.
Active parents are those which gain children, and those which are removed. This is a necessary first step in detecting conflicts.
Parameters | name | The searched for name. |
parent_id | The parent for which the check is made. | |
known_children | The already known children. This should have
been recently obtained from self.by_parent.get(parent_id)
(or will be if None is passed). |
Parameters | name | The basename of the file. |
target_id | The directory trans_id where the backup should be placed. |
However, existing entries with no contents are okay.
Check for bad executability changes. Only versioned files may have their executability set, because 1. only versioned entries can have executability under windows 2. only files can be executable. (The execute bit on a directory does not indicate searchability)
name is the name of the file to create. parent_id is the transaction id of the parent directory of the file. contents is an iterator of bytestrings, which will be used to produce the file. :param file_id: The inventory ID of the file, if it is to be versioned. :param executable: Only valid when a file_id has been supplied.
name is the name of the directory to create. parent_id is the transaction id of the parent directory of the directory. file_id is the inventory ID of the directory, if it is to be versioned.
name is the name of the symlink to create. parent_id is the transaction id of the parent directory of the symlink. target is a bytestring of the target of the symlink. file_id is the inventory ID of the file, if it is to be versioned.
When a directory is about to be removed, its children, if they are not versioned are moved out of the way: they don't have a parent anymore.
Parameters | trans_id | The trans_id of the existing item. |
parent_id | The parent trans_id of the item. |
A directory can't be safely deleted if there are versioned files in it. If all the contained files are unversioned then they can be orphaned.
The 'None' return value means that the directory contains at least one versioned file and should not be deleted.
Parameters | dir_id | The directory trans id. |
Returns | A list of the orphan trans ids or None if at least one versioned file is present. |
Return a (name, parent, kind, executable) tuple
Return a (name, parent, kind, executable) tuple
Will produce nonsensical results if invoked while inventory/filesystem conflicts (as reported by TreeTransform.find_conflicts()) are present.
This reads the Transform, but only reproduces changes involving a file_id. Files that are not versioned in either of the FROM or TO states are not reflected.
The tree is a snapshot, and altering the TreeTransform will invalidate it.
Parameters | branch | The branch to commit to. |
message | The message to attach to the commit. | |
merge_parents | Additional parent revision-ids specified by pending merges. | |
strict | If True, abort the commit if there are unversioned files. | |
timestamp | if not None, seconds-since-epoch for the time and date. (May be a float.) | |
timezone | Optional timezone for timestamp, as an offset in seconds. | |
committer | Optional committer in email-id format. (e.g. "J Random Hacker <jrandom@example.com>") | |
authors | Optional list of authors in email-id format. | |
revprops | Optional dictionary of revision properties. | |
revision_id | Optional revision id. (Specifying a revision-id may reduce performance for some non-native formats.) | |
Returns | The revision_id of the revision committed. |