Comment 8 for bug 1232992

Revision history for this message
John A Meinel (jameinel) wrote : Re: [Bug 1232992] Re: bzr update exceeds pypy's maximum recursion depth in gigantic repositories such as MariaDB.

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 2013-10-03 8:26, David Yingling wrote:
> That's kinda funny, because it's MariaDB's open source repo. I have
> made no local commits or changes. The only bzr commands I've run
> are ones to list tags, and to try to change to a different tag.
>
> The only thing in ".bzr/branch/location" is:
>
> file:///home/dly/Desktop/Code/maria/trunk/
>
> Which is the local path to the repository. Does having this there
> create a loop? I deleted the file, and that caused me to get an
> error about the file not existing. Then, I created an empty file
> with the correct name using touch. I no longer got the error
> message, but I still got the crazy back trace. So, if there is a
> loop, it can't be because of the contents of that file, because it
> crashes with a back trace even when that file is empty. A new
> .bzr.log file has been attached. The latest stuff will be the last
> few bzr tags and bzr update runs.

"The local path to the repository" means it is pointing at itself. If
you make it an empty file, I'm guessing we interpret "" using the
local directory, and again it points back at itself.

I don't know how you ended up checking out a branch to itself. (though
the freedom with which you edit files under .bzr/ is a bit concerning)
What I would have expected is to just have a regular branch there.

>
> I also created an archive of the MariaDB repo's .bzr directory.
> It's only 5.3 megabytes. The .bzr/branch/location.old file is the
> old .bzr/branch/location file you can rename it to that if you
> want.
>
> Thanks, Dave.
>

So (a) having a .bzr/branch/location file means that you don't have a
local branch, but you have a local working tree pointing at "some
other branch". In this case, that somehow ended up pointed directly
back at itself. So you had a lightweight checkout pointing at a branch
that is pointing at itself and we try to open it, to see that it is a
reference and we open that, etc.

It needs to point "somewhere else". Probably the easiest way to do
that is with "bzr switch --force" which would be something like:

bzr branch $MARIADB /home/dly/Desktop/Code/maria/alt-trunk
cd /home/dly/Desktop/Code/maria/trunk
bzr switch --force home/dly/Desktop/Code/maria/alt-trunk

John
=:->
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.13 (Cygwin)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iEYEARECAAYFAlJNNnkACgkQJdeBCYSNAAM07ACgk8SZQgg62LHaWbQuhpLoT6AT
wqoAn0cGjYntHQxEHZaD3yvSvbuCpPYq
=F40Y
-----END PGP SIGNATURE-----