Eigen is a C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms.

For more information go to http://eigen.tuxfamily.org/.

Mirroring Eigen

This repository is a mirror of the C++ linear algebra library Eigen.

Because Eigen is hosted on BitBucket in a Mercurial repository, you will need a way to convert between mercurial and git. We use git-remote-hg for this purpose.


Check out this repository.

git clone https://fuchsia.googlesource.com/third_party/eigen cd eigen

Add a remote pointing to the mercurial bucket on bitbucket.

git remote add bitbucket hg::https://bitbucket.org/eigen/eigen git fetch bitbucket

Now, we need to update the branches we care about. As of the writing of this document, we only care about upstream/master (the Eigen tip of tree) and upstream/3.3 (the 3.3.x line of stable releases).

Track the branch on fuchsia.googlesource.com.

git checkout --track origin/upstream/master

Fetch the changes from bitbucket.org and upload.

git pull bitbucket master git push origin upstream/master

Repeat the process for the other branches we care about.

Bumping the Version Used In Fuchsia

As you noticed, the master branch on fuchsia.googlesource.com is not the same as the master branch on bitbucket. That's because our master branch is kept at a stable release.

To see if you need to update the master branch, see if a new stable version is available.

git log -1

Look for “tag: 3.3.4” or similar on the first line. This is version at which fuchsia is building eigen.

git ls-remote bitbucket

And see if there is a tag for the new version.

If there is, check it out on the master branch.

git checkout master git reset --hard 3.3.5

And push to fuchsia.

git push origin 3.3.5 git push origin master