-
Notifications
You must be signed in to change notification settings - Fork 61
Release Notes: 0.3.0
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.
- Speed and memory usage were improved when doing
git push
. - Now works on Windows, at least to some extent. See details.
- 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
- 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
andGIT_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.
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
.