Hello Eigen users and contributers!
As some may have noticed, bitbucket/atlassian is "sunsetting" its
mercurial support:
https://bitbucket.org/blog/sunsetting-mercurial-support-in-bitbucket
If they stick to their timeline, we will have to migrate until June
1st, 2020. That means we still have time, but if we do nothing, things
will break ...
Converting the repository itself to git should not be a bigger issue
-- and if we do this we could as well migrate to a more mainstream
provider (i.e., github).
I think the main problems for migration are:
a) Migrating open pull-requests (for historical reasons, the
closed/merged ones should probably be archived as well)
b) Fixing internal links inside commit messages ("grafted from ...",
"fixes error introduced in commit ...")
c) Fixing external links to the repository. Most notably, any links
from our bugtracker will eventually fail (even if we stayed with
bitbucket, the hashes won't match). I doubt that we could set up any
automatic forwarding for that.
d) Any third-party which relies on our main repository will need to
change as well (not directly "our" problem, but we need to give a
reasonable amount of time for everyone to migrate to whatever will be
our future official repository).
Smaller issues (relatively easy to fix or not as important):
e) Change links from our wiki (to downloads)
f) Change URLs for automated doxygen generation and for unit-tests
g) Automatic links from the repository to our bugtracker (currently
"Bug X" automatically links to
http://eigen.tuxfamily.org/bz/show_bug.cgi?id=X)
h) Change hashes in bench/perf_monitoring/changesets.txt
I probably missed a few things ...
I see essentially three options:
1. Migrate to another mercurial provider
2. Convert to git, stay at bitbucket
3. Convert to git, migrate to another provider
Honestly, I see no good reason for option 2. And the only real reason
I see for option 1 would be that it safes a lot of hassle with b) and
h) -- also perhaps it would simplify c) (e.g., we could easily crawl
through our bugzilla-database and just replace some URLs).
Any opinions on this? Preferences for how to proceed, or other
alternatives?
Does anyone have experience with migrating from hg to git? Or
migrating between providers? Especially, also dealing with the issues
listed above.
Does anyone see issues I forgot?
Cheers,
Christoph