Part of lp.code.model.directbranchcommit View In Hierarchy
Use this to write a set of files into a branch efficiently, without caring what was in there before. The files may be new to the branch or they may exist there already; in the latter case they will be overwritten.
The branch is write-locked for the entire lifetime of this object. Be sure to call unlock() when done. This will be done for you as part of a successful commit, but unlocking more than once will do no harm.
The trick for this was invented by Aaron Bentley. It saves having to do a full checkout of the branch.
|Method||__init__||Create context for direct commit to branch.|
|Method||writeFile||Write file to branch; may be an update or a new file.|
|Method||getBzrCommitterID||Find the committer id to pass to bzr.|
|Method||commit||Commit to branch.|
|Method||unlock||Release commit lock, if held.|
|Method||_getDir||Get trans_id for directory "path." Create if necessary.|
|Method||_checkForRace||Check if bzrbranch has any changes waiting to be scanned.|
Create context for direct commit to branch. Before constructing a `DirectBranchCommit`, set up a server that allows write access to lp-internal:/// URLs: bzrserver = get_rw_server() bzrserver.start_server() try: branchcommit = DirectBranchCommit(branch) # ... finally: bzrserver.stop_server() Or in tests, just call `useBzrBranches` before creating a `DirectBranchCommit`. :param db_branch: a Launchpad `Branch` object. :param committer: the `Person` writing to the branch. Defaults to the branch owner. :param no_race_check: don't check for other commits before committing our changes, for use in tests. :param committer_id: Optional identification (typically with email address) of the person doing the commit, for use in bzr. If not given, the `committer`'s email address will be used instead.
If you write a file multiple times, the first one is used and the rest ignored.
If it does, raise
|Parameters||commit_message||Message for branch's commit log.|
|txn||Transaction to commit. Can be helpful in avoiding long idle times in database transactions. May be committed more than once.|