bzr-git needs nested trees

Asked by Eli Zaretskii on 2011-03-18

Trying to "bzr branch" from some git repositories on git.savannah.gnu.org aborts with the following error message:

The repository you are fetching from contains submodules. To continue, upgrade your Bazaar repository to a format that supports nested trees, such as 'development-subtree'.

Examples of such repositories:

git://git.savannah.nongnu.org/grep.git
git://git.savannah.nongnu.org/sed.git
git://git.savannah.nongnu.org/cpio.git
git://git.savannah.nongnu.org/bison.git

What exactly needs nested trees in these repositories? If I "git clone" them, I see a normal directory tree, which seems like a single git repository. What does bzr need the nested tree for?

By the way, when will the nested tree be available in stable bzr releases? Are there plans to include them in a specific future version?

Question information

Language:
English Edit question
Status:
Answered
For:
Bazaar Git Plugin Edit question
Assignee:
No assignee Edit question
Last query:
2011-03-19
Last reply:
2011-04-27
Jelmer Vernooij (jelmer) said : #1

On Fri, 2011-03-18 at 20:55 +0000, Eli Zaretskii wrote:
> New question #149638 on Bazaar Git Plugin:
> https://answers.launchpad.net/bzr-git/+question/149638
>
> Trying to "bzr branch" from some git repositories on git.savannah.gnu.org aborts with the following error message:
>
> The repository you are fetching from contains submodules. To continue,
> upgrade your Bazaar repository to a format that supports nested trees,
> such as 'development-subtree'.
>
> Examples of such repositories:
>
> git://git.savannah.nongnu.org/grep.git
> git://git.savannah.nongnu.org/sed.git
> git://git.savannah.nongnu.org/cpio.git
> git://git.savannah.nongnu.org/bison.git
>
> What exactly needs nested trees in these repositories? If I "git
> clone" them, I see a normal directory tree, which seems like a single
> git repository. What does bzr need the nested tree for?
They contain git submodules, which are the equivalent of nested trees.
bzr-git converts git submodules to nested trees, but the standard bzr
format doesn't support nested trees yet.

> By the way, when will the nested tree be available in stable bzr releases? Are there plans to include them in a specific future version?
There is an open bug about this -
https://bugs.launchpad.net/bzr/+bug/402814

Cheers,

Jelmer

Eli Zaretskii (eliz) said : #2

Thanks for the info. Would it be a reasonable temporary measure to ignore the submodules and produce a tree without them, rather than bail out and fail the entire "bzr branch" command? Perhaps with an optional switch? What bad things will happen to the tree if bzr-git does that?

Jelmer Vernooij (jelmer) said : #3

Hmm, I thought I'd replied to this but apparently not.

If bzr-git would ignore submodules then it would create different trees for the same revision ids at the moment that Bazaar starts supporting nested trees. The only way to work around this would be to change the revision id scheme that bzr-git uses, and thus change the identity of *all* imports.

Rather than deal with the fallout of this and penalizing all bzr-git users, I think we should just finish the implementation of nested trees in bzr core.

If you don't care about referential integrity but would like to import a git repository with nested trees, I would recommend using bzr-fastimport.

Jelmer Vernooij (jelmer) said : #4

On Wed, 2011-04-27 at 16:12 +0000, Jelmer Vernooij wrote:
> If you don't care about referential integrity but would like to import a
> git repository with nested trees, I would recommend using bzr-
> fastimport.
s/referential integrity/deterministic imports/

Can you help with this problem?

Provide an answer of your own, or ask Eli Zaretskii for more information if necessary.

To post a message you must log in.