0.7 is a huge technical milestone for gg: most interactions with Git are now going through a comprehensively tested Go library instead of constructing command-line arguments ad-hoc. This means more input validation and less surface area for bugs.
gg 0.7 drops support for Git 2.7.4: 2.11.0 is now the earliest supported version of Git.
(The release scripts for 0.7.0 failed, so 0.7.1 is the first actual release of 0.7.)
- New command:
identifyto get the current commit hash. (#94)
commituses a Mercurial-like commit message template when the editor is invoked.
pullnow pulls all refs from the remote instead of just one. (#87)
updatecommand has been overhauled to be even closer to Mercurial semantics.
updatenow uses "merge" behavior all the time (#93) and will fast-forward before switching the working copy to a new branch.
updatenow has a
gerrithooknow caches the hook script it downloads. (#61)
- As mentioned in the introduction, most interactions with the Git subprocess go through a high-level API now to reduce escaping issues. This should make gg more architecturally robust.
- Previous versions of gg would never send
SIGTERMcorrectly to its Git subprocess on receiving an interrupt, instead just waiting for the command to finish. This has been fixed.
backoutnow correctly attaches stdin to the editor. (#85)
pushnow correctly consults the fetch URL when evaluating whether a push would result in a creation. (#75)
- gg now escapes pathspec characters on an as-needed basis, which should reduce most of the confusing error messages bubbled up from Git. (#57)
updatenow uses more Mercurial-like logic for updating branches, correcting surprising behavior when pulling from fork branches. (#80)
updatenow correctly merges the local state when given a branch name instead of exiting. (#76)
commitno longer tries to commit untracked files when given a directory argument. (#74)
gerrithooknow respects the
core.hooksPathconfiguration setting. (#89)
One of the known issues in 0.6 is still present in 0.7:
revertdoes not produce errors if you pass it unknown files. (#58). This may be confusing, but does not negatively affect your data.