[ANNOUNCE] git-cinnabar 0.5.0

Mike Hommey mh at glandium.org
Sun Aug 12 03:19:15 BST 2018


Git-cinnabar is a git remote helper to interact with mercurial
repositories. It allows to clone, pull and push from/to mercurial remote
repositories, using git.

Code on https://github.com/glandium/git-cinnabar
This release on

What's new since 0.4.0?

- git-cinnabar-helper is now mandatory. You can either download one with `git cinnabar download` on supported platforms or build one with `make`.
- Performance and memory consumption improvements.
- Metadata changes require to run `git cinnabar upgrade`.
- Mercurial tags are consolidated in a separate (fake) repository. See the README file.
- Updated git to 2.18.0 for the helper.
- Improved memory consumption and performance.
- Improved experimental support for pushing merges.
- Support for [clonebundles](https://www.mercurial-scm.org/wiki/ClonebundlesExtension) for faster clones when the server provides them.
- Removed support for the .git/hgrc file for mercurial specific configuration.
- Support any version of Git (was previously limited to 1.8.5 minimum)
- Git packs created by git-cinnabar are now smaller.
- Fixed incompatibilities with Mercurial 3.4 and >= 4.4.
- Fixed tag cache, which could lead to missing tags.
- The prebuilt helper for Linux now works across more distributions (as long as libcurl.so.4 is present, it should work)
- Properly support the `pack.packsizelimit` setting.
- Experimental support for initial clone from a git repository containing git-cinnabar metadata.
- Now can successfully clone the pypy and GNU octave mercurial repositories.
- More user-friendly errors.

Development process changes

It took about 6 months between version 0.3 and 0.4. It took more than 18 months to reach version 0.5 after that. That's a long time to wait for a new version, considering all the improvements that have happened under the hood.

>From now on, the `release` branch will point to the last tagged release, which is roughly the same as before, but won't be the default branch when cloning anymore.

The default branch when cloning will now be `master`, which will receive changes that are acceptable for dot releases (0.5.x). These include:
- Changes in behavior that are backwards compatible (e.g. adding new options which default to the current behavior).
- Changes that improve error handling.
- Changes to existing experimental features, and additions of new experimental features (that require knobs to be enabled).
- Changes to Continuous Integration/Tests.
- Git version upgrades for the helper.

The `next` branch will receive changes for the next "major" release, which as of writing is planned to be 0.6.0. These include:
- Changes in behavior.
- Changes in metadata.
- Stabilizing experimental features.
- Remove backwards compability with older metadata (< 0.5.0).


More information about the git-announce mailing list