Drop support for Python 3.3; Python 2 (2.6 and 2.7) remain
deprecated, but supported for one last release
Tutorial is removed; it now exists as part of the website
Python 2.x support is deprecated and will be removed in a future
Support html5 output of docs from asciidoc
--expose option for
stg pick to allow picked commit message to
Limit mail diffstat to 72 columns
Added pyproject.toml file for black configuration
Minimum Git version is 2.2.0
Quote stg and subcommand in man page synopsis
Replaced RELEASENOTES with this CHANGELOG.md
Replaces Documentation/SubmittingPatches with CONTRIBUTING.md
Repair MANIFEST.in and generated source dist
Repair importing mail with “: " (colon space) in subject
Fix mail cover letter shortlog
Fix mail cover letter diffstat
stg series now only outputs colors when
Repair mail SSL check (
stg mail with both
-e options (
#58) Remove empty short-opt for
Repair build.py for Python 2 with explicit
stgit.refreshsubmodules added to sample gitconfig
Update docs build system from upstream Git docs
Use coverage contexts to map commands to covered lines
Improve mail tests
Use GitHub Actions instead of TravisCI
Format StGit source using black formatter
Remove debian packaging; downstream Debian uses its own anyway
Python 2.x support is deprecated and will be removed in the next StGit
stg publish is deprecated and will be removed in the next StGit
stg import has new –keep-cr option, like
stg new now includes patch name in log message
stg branch --rename can now rename the current branch
stg branch --create now works even if the workspace is dirty,
stg branch --description now works on both regular and stgit
stg edit --diff now implies
stg refresh and
stg edit now reset the committer information,
git notes are now preserved when patches are modified
Many additional tests and test improvements
All stgit commands now use “new” git library infrastructure
stg branch --create inherits remote correctly from parent commitish
Patch names are checked earlier to avoid inconsistent stack states
Improved commit data parsing and handling of non-UTF8 encodings
Repair git error messages when checking stgit version from outside a
Faster handling of large patches (
Build reproducibility repairs (Thanks reproducible-builds.org team!)
Python can now be run with optimizations (
stg log now prints trailing newline
Improved command line option parsing for
stg patches -d can now output colored diffs.
stg publish --overwrite allows branch to be overwritten instead of
creating new commits.
stg log --clear deletes the stack’s log history. Use with caution.
Fish shell completions for stg.
Zsh completions for stg.
stg mail --domain option overrides the host’s domain in the message
Branch protection metadata now captured in config instead of
.git/patches/protect file. This updates stgit’s metadata
format from v2 to v3.
stg diff no longer shows binary diffs by default. Use
--binary to stgit.diff-opts in config.
Diagnostic output is now routed to stderr instead of stdout.
Diagnostic output is also now sent to stderr unconditionally, i.e. no
more isatty() test (
#35). Converted to “new” lib infrastructure:
stg show detects conflicting –applied and –unapplied options.
stg show --stat now shows commit headers.
stg patches --diff now shows proper diff instead of
b'...' repr of
stg diff --range detects some invalid values (e.g.
Date parsing is now more portable, only use platform specific
as last parsing option. Affects, e.g.,
stg refresh --authdate.
Repaired seach path for templates to avoid looking in Python
Ensure stdout and stderr are flushed. Rarely affected
stg repair will now fail if extra command line arguments are
Bash completions are now generated in a reproducible manner.
stg edit --diff on an empty patch no longer crashes.
stg pick no longer fails when picked commit has empty message (
stg rebase no longer crashes when there are conflicts (
stg pick no longer crashes if –name is not provided when picking a
regular commit object.
Improved test coverage for: branch, diff, pick, sync,
New tests for: files, patches, fold, series
Portable use of iconv, sort, and sed in tests.
Linting using flake8 and isort.
All Python code now conforms to PEP-8.
Updated test infrastructure from git 2.20.
Parallel tests with coverage (
make -j4 coverage) now works.
Documentation build is not included in code coverage.
Repaired log end messages when using
Renamed “dunder” instance attributes to improve debugging.
Fail faster when patch name has slash ('/') (
Python 3 support. StGit supports Python 2.6, 2.7, 3.3, 3.4, 3.5, 3.6,
and 3.7. PyPy interpreters are also supported.
Submodules are now ignored when checking if working tree is clean.
Submodules are also not included by default when refreshing a patch.
Config booleans are now parsed similarly to git-config.
contrib/stgit.el is now licenced with GPLv2.
Add continuous integration (travis-ci) and code coverage (coveralls)
Many new test cases were added.
Repair handling of emails with utf-8 bodies containing latin-1
characters. Also correctly decode email headers containing quoted
StGit’s version is now correct/available in the release archive.
commit-msg hook support for easier integration with Gerrit, allowing
a Change-Id line to be inserted in the commit message
stg mail improvements for ‘Suggested-by:’ tag and auto generation of
Cc for the cover letter based on all tags in the series
stg mail bash completion for the –to, –cc and –bcc options based
on the content of the [mail “alias”] section of GIT configuration
stg edit --review option to add a ‘Reviewed-by:’ tag
stg pop --spill functionality to allow popping a patch from the
stack while keeping its modification in the tree
Project page details updated (gna.org has been shut down)
Various fixes and test coverage improvements
Test suite improvements.
Print tracebacks to stderr.
Run test suite in parallel.
Fix dirty index errors when resolving conflicts.
Fix –authdate date parsing.
stg delete --top option for deleting the top patch.
stg branch --merge option for merging the work tree changes into the
Support for sending patches both as attachment and inline.
stg mail no longer filters explicitly added
--cc sender address.
stg refresh warns when index is dirty.
Fix for parsing the commit header correctly.
stgit.el (Emacs mode) improvements.
stg status --reset error messages.
HTML documentation fix.
Email template fixes.
UI adjustments to better match the Git commands.
stg status is an alias for
stg reset --hard behaves similarly to the corresponding git
command and option.
stg branch --cleanup option to remove the StGit metadata for a
stg mail can use
git send-email directly.
Vim syntax highlighting for StGit commit messages.
Several improvements to the Emacs mode (stgit.el).
The commands “stg add”, “stg rm”, “stg cp”, and “stg resolved” were
removed, since there are corresponding Git equivalents.
New core infrastructure for repository operations, including:
Infinite undo/redo operations and corresponding commands.
Automatic rollback of changes following a failed operation (using
transactions)—this ensures that StGit commands either succeed or
do nothing. Previously, every commands had its own ad hoc
implementation of this.
Some commands were added, including
stg squash, for combining two or more patches into one.
stg publish, for maintaining merge-friendly branches (which are
stg prev/next for printing the name of the previous or next patch
in the series.
stg import and
stg fold commands support the
-p N option for
stripping leading slashes from diff paths.
stg import and
stg fold commands support the
for leaving rejected hunks in corresponding
New patch identification syntax:
<branch>:<patch> (see documentation
for the “stg id” command).
Autosigning of imported patches when
option is set.
A powerful Emacs mode for StGit was added to the “contrib” directory.
It displays the patch stack in an Emacs buffer, and can handle all
common StGit tasks.
Man pages and an improved tutorial.
Improved bash tab-completion, automatically generated from the stg
© 2020 Stacked Git Authors