ControlDir.sprout() call breaks bzr-git and bzr-hg cloning

Bug #717937 reported by Jelmer Vernooij
20
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Bazaar
Fix Released
Critical
Jelmer Vernooij
Bazaar Git Plugin
Fix Released
Critical
Jelmer Vernooij
Bazaar Hg Plugin
Fix Released
Critical
Jelmer Vernooij
Bazaar Subversion Plugin
Fix Released
High
Jelmer Vernooij

Bug Description

  affects bzr
  status triaged
  importance high

ControlDir.sprout() now requires inspection to the source repository's
revision graph. This breaks sprouting from git repositories, which don't
provide access to the revision graph.

bzr-git could provide a custom implementation of ControlDir._sprout to
work around this, but that method is really large so could robably
benefit from being split up before we do so.

Related branches

Vincent Ladeuil (vila)
Changed in bzr:
status: Triaged → Confirmed
Jelmer Vernooij (jelmer)
summary: - ControlDir.sprout() call breaks bzr-git cloning
+ ControlDir.sprout() call breaks bzr-git and bzr-hg cloning
Revision history for this message
Jelmer Vernooij (jelmer) wrote :

Hi Andrew,

This seems to be triggered by the fetch-all-tags code that was recently introduced. It'd be great if we could come up with some way that doesn't necessarily require get_parent_map() calls to fetch tags. E.g. git and hg already have existing mechanisms as part of their object fetch implementation to fetch tags so the graph inspection is not necessary and in fact breaks cloning at the moment.

Jelmer Vernooij (jelmer)
Changed in bzr:
status: Confirmed → In Progress
importance: High → Critical
assignee: nobody → Jelmer Vernooij (jelmer)
Revision history for this message
Andrew Bennetts (spiv) wrote :

Chatting on IRC the problem is basically that sprout now executes graph searches itself (via FetchSpecFactory), whereas before that was delegated to the fetch implementation.

So I think we need to revisit the design decision to restrict the fetch_spec param of fetch to implementations of AbstractSearchResult: bzr-hg and bzr-git clearly want to have some control over how Searches turned into fetches. In particular, I don't think they want to go via a SearchResult; determining what to fetch given a query is delegated to the underlying git/hg libraries.

Jelmer also points out that we could perhaps move some of the new logic onto interrepo.

Revision history for this message
Andrew Bennetts (spiv) wrote :

bzr-svn is also affected: while graph access is possible in bzr-svn, it's very very slow.

Revision history for this message
John C Barstow (jbowtie) wrote :

This is going to affect bzr-tfs as well, as soon as I publish a 2.3-compatible release.

Revision history for this message
Jelmer Vernooij (jelmer) wrote :

FWIW these changes are only in 2.4.

Jelmer Vernooij (jelmer)
Changed in bzr-git:
status: New → Triaged
Changed in bzr-hg:
status: New → Triaged
Changed in bzr-svn:
status: New → Triaged
Changed in bzr-git:
importance: Undecided → Critical
Changed in bzr-svn:
importance: Undecided → Critical
Changed in bzr-hg:
importance: Undecided → Critical
assignee: nobody → Jelmer Vernooij (jelmer)
Changed in bzr-svn:
assignee: nobody → Jelmer Vernooij (jelmer)
Changed in bzr-git:
assignee: nobody → Jelmer Vernooij (jelmer)
milestone: none → 0.6.0
Changed in bzr-svn:
milestone: none → 1.1.0
importance: Critical → High
Jelmer Vernooij (jelmer)
Changed in bzr-hg:
milestone: none → 0.2
Jelmer Vernooij (jelmer)
Changed in bzr-svn:
status: Triaged → In Progress
Changed in bzr-git:
status: Triaged → In Progress
Changed in bzr:
milestone: none → 2.4b2
Jelmer Vernooij (jelmer)
Changed in bzr-git:
status: In Progress → Fix Committed
Jelmer Vernooij (jelmer)
Changed in bzr-svn:
status: In Progress → Fix Committed
Jelmer Vernooij (jelmer)
Changed in bzr-hg:
status: Triaged → Fix Committed
Changed in bzr:
status: In Progress → Fix Released
Jelmer Vernooij (jelmer)
Changed in bzr-git:
status: Fix Committed → Fix Released
Jelmer Vernooij (jelmer)
Changed in bzr-svn:
status: Fix Committed → Fix Released
Jelmer Vernooij (jelmer)
Changed in bzr-hg:
status: Fix Committed → Fix Released
milestone: 0.2 → 0.1.1
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.