git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Announcing git-cinnabar 0.3.0

From
Mike Hommey <mh@glandium.org>
Date
Jan 15, 2016, 08:56 UTC
Message-ID
<20160115085658.GA15539@glandium.org>

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
[ Previous announcements:
  http://marc.info/?l=git&m=142837367709781
  http://marc.info/?l=git&m=142364715001983
  http://marc.info/?l=git&m=141781485726430 ]

Development had been stalled for a few months, with many improvements in the `next` branch without any new release. I used some time during the new year break and after in order to straighten things up in order to create a new release, delaying many of the originally planned changes to a future 0.4.0 release.

What's new since 0.2.2?
- Speed and memory usage were improved when doing `git push`.
- Now works on Windows, at least to some extent. See details[1].
- Support for pre-0.1.0 git-cinnabar repositories was removed. You must
  first use a git-cinnabar version between 0.1.0 and 0.2.2 to upgrade
  its metadata.
- It is now possible to attach/graft git-cinnabar metadata to existing
  commits matching mercurial changesets. This allows to migrate from
  some other hg-to-git tool to git-cinnabar while preserving the
  existing git commits.  See an example of how this works with the git
  clone of the Gecko mercurial repository[2]
- Avoid mercurial printing its progress bar, messing up with
  git-cinnabar's output.
- It is now possible to fetch from an incremental mercurial bundle
  (without a root changeset).
- It is now possible to push to a new mercurial repository without `-f`.
- By default, reject pushing a new root to a mercurial repository.
- Make the connection to a mercurial repository through ssh respect the
  `GIT_SSH` and `GIT_SSH_COMMAND` environment variables.
- `git cinnabar` now has a proper argument parser for all its
  subcommands.
- A new `git cinnabar python` command allows to run python scripts or
  open a python shell with the right sys.path to import the cinnabar
  module.
- All git-cinnabar metadata is now kept under a single ref (although for
  convenience, other refs are created, but they can be derived if
  necessary).
- Consequently, a new `git cinnabar rollback` command allows to roll
  back to previous metadata states.
- git-cinnabar metadata now tracks the manifests DAG.
- A new `git cinnabar bundle` command allows to create mercurial
  bundles, mostly for debugging purposes, without requiring to hit a
  mercurial server.
- Updated git to 2.7.0 for the native helper.
Development process changes

Up to before this release closing in, the `master` branch was dedicated to releases, and development was happening on the `next` branch, until a new release happens.

>From now on, the `release` branch will take dot-release fixes and new

releases, while the `master` branch will receive all changes that are validated through testing (currently semi-automatically tested with out-of-tree tests based on four real-life mercurial repositories, with some automated CI based on in-tree tests used in the future).

The `next` branch will receive changes to be tested in CI when things will be hooked up, and may have rewritten history as a consequence of wanting passing tests on every commit on `master`.

Mike
1. https://github.com/glandium/git-cinnabar/wiki/Windows-Support
2. https://github.com/glandium/git-cinnabar/wiki/Mozilla:-Using-a-git-clone-of-gecko%E2%80%90dev-to-push-to-mercurial
Next: Johannes Schindelin
Message 1 of 6 in “Announcing git-cinnabar 0.3.0”
  1. Mike HommeyJan 15, 2016
  2. Johannes SchindelinJan 15, 2016
  3. Mike HommeyJan 15, 2016
  4. Johannes SchindelinJan 15, 2016
  5. Max HornFeb 14, 2016
  6. Announcing git-cinnabar 0.3.1Mike Hommey, Jan 16, 2016

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.