[MERGE/RFC] Use Branch.pull() to update master branch.

Jelmer Vernooij jelmer at samba.org
Wed Feb 25 18:48:33 GMT 2009


On Wed, 2009-02-25 at 12:07 -0600, John Arbash Meinel wrote:
> Jelmer Vernooij wrote:
> > The attached patch makes the commit code use Branch.pull() to update the
> > master branch when committing to a bound branch. 
> > 
> > This is required for bzr-svn as it can't update just the repository, it
> > has to update the branch as well. Previously it had some magic in the
> > Repository.fetch() code to handle this, but that is vulnerable to race
> > conditions. (#248289)
> > 
> > Is Branch.pull() the right call here, or should I be adding something
> > custom?

> This might be ok. I think the main problem is that we can't update
> self.last_revision until after the data has been fetched to the master.
> So 'new_rev_id' doesn't *exist* in the source branch. So the code
> as-written means that branches must support pull() with a revision that
> is not in their ancestry.
So perhaps we can have a separate function on Branch for this ? It could
take a other_repo and new_revid argument and default to:

if not self.repository.has_same_location(other_repo):
     self.repository.fetch(other_repo, new_revid)
self.generate_revision_history(new_revid)

Perhaps Branch.import_new_revision(other_repo, new_revid) ?

Cheers,

Jelmer

-- 
Jelmer Vernooij <jelmer at samba.org> - http://samba.org/~jelmer/
Jabber: jelmer at jabber.fsfe.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 315 bytes
Desc: This is a digitally signed message part
Url : https://lists.ubuntu.com/archives/bazaar/attachments/20090225/99944947/attachment.pgp 


More information about the bazaar mailing list