Summary:
In D41769964, we decided not to stop `gitimport` simply because `create-bookmark` fails cause that could be due to the fact that the bookmark being created already exists. If that is indeed the case, we try to resolve the bookmark and move it to the new value. However, there could be other unrelated reasons for `create_bookmark` to fail in which case we would still try to resolve the bookmark and end up in unexpected situations (e.g. Luibov trying to import `paws` repo faced this problem). This diff does two things:
- Performs an early check to determine if the bookmark exists by resolving it. If it does exist, it executes the move bookmark branch of code
- If the bookmark doesn't exist, then it creates it.
If there are any errors during bookmark creation or movement, they get logged for the user.
Reviewed By: mitrandir77
Differential Revision: D46071703
fbshipit-source-id: 446b0bc720d13b9e9314feccdb147b2bab0b7cd9
Mononoke is a next-generation server for the Mercurial source control
system, meant to scale up to accepting
thousands of commits every hour across millions of files. It is primarily
written in the Rust programming language.
Caveat Emptor
Mononoke is still in development. We are making it available now because we plan to
start making references to it from our other open source projects.
The version that we provide on GitHub is omitting some functions.
This is because the code is exported verbatim from an internal repository at Facebook, and
not all of the scaffolding from our internal repository can be easily extracted. The key areas
where we need to shore things up are:
Support for running thrift based apis.
Production metadata SQL support (e.g. something like a MySQL backend). We provide sqlite in OSS for now.
Production blobstore storage backends (e.g. something like S3). We provide SQL (on sqlite) and File System backends currently in OSS.
Linux is Mononoke's primary target plaform with OSS CI also running on MacOS. Other Unix-like OSes may be supported in the future.
Subsystem Docs
Most of our documentation is in internal systems, however a few subsystems have in-repo markdown docs available: