sapling
sapling copied to clipboard
Git compatibility
For organizations and individuals wanting to try Eden, it would help to know going back to Git is possible if something goes wrong.
A few options:
- Export Eden repo as a Git repo, preserving history.
- Run a Git mirror backed by a (subdirectory of an) Eden repo. Read-only, read and write.
- Run an Eden mirror backed by a Git repo.
Is this something you've considered? To what extent does this compatibility make sense given the differences between Git and Eden?
For 1 and 2 we have somewhat similar functionality outside of Eden that is taking the Eden hosted internal repo and syncing changes to the GitHub repo. I don't think that tooling is publicly available.
If and when we add git protocol support do then that may provide an Eden native way to get a git repo from an Eden repo. No timeline for this at present.
For 3, we have some early git import functionality underway, see eden/mononoke/git/gitimport/src/main.rs
I don't think that tooling is publicly available.
It is - https://github.com/facebook/fbshipit :)
It also supports git -> eden, though the code for that is primarily used for importing pull requests rather than automated mirroring; in theory, both the sync pipelines ('shipit') and pull request pipelines ('importit') can be set up to/from any supported repo, not just eden-source-of-truth to github mirror.
one caveat: it expects the eden CLI to be called hg
Oh, a bigger caveat: it assumes a linear history. It can get very confused by merge commits
Eden CLI and Mononoke now build and test on GitHub actions. Probably you could import a git repo to Mononoke to test end to end with https://github.com/facebookexperimental/eden/blob/main/eden/mononoke/git/gitimport/src/main.rs, but I'm afraid there's no docs describing the process as yet.
A lot changed with the recent Sapling release. We now provide and support pre-built binaries that interop with Git. See the docs, and open another issue if you still have problems.