Stacked Git 1.0
The 1.0 release has been over a decade in the making. While light on new
features, this release represents a major upgrade in StGit's foundation.
Internally, StGit now maintains all metadata in Git objects. This
enables novel workflows involving StGit stacks to be pushed and pulled
from remote repositories using git push
and git pull
.
And StGit has been fully migrated to Python 3. Dropping compatibility
with Python 2 has allowed StGit's code to become simpler and avoid
error-prone compatibility code. Python 3.5 is the new minimum required
version.
Removed
- Drop support for Python < 3.5
- Remove previously deprecated
stg publish
command - Removed contrib scripts:
stg-swallow
,stg-fold-files-from
,
stg-dispatch
,stg-whatchanged
, andstg-show-old
Added
- The pre-commit hook is now run for
stg refresh
- New
--spill
option forstg refresh
- Add stgit.series.description config option (#88)
- Official support for Python versions up to 3.9
Changed
- Stack metadata format 4. All metadata now kept in Git objects; no more
stack state files in .git/patches. A one-way auto-upgrade to format
version 4 will occur when StGit commands are run on an existing StGit
branch. - Use
python3
in shebangs instead ofpython
contrib/stgbashprompt.sh
is no longer executable- Internal docstrings now use reStructuredText instead of Epytext
Fixed
- Importing large patches is much, much faster (#66)
- Other performance improvements when dealing with large patches
- Repair diffstat when outside work tree root (#62)
- Use encoded (string) environment variables on Windows (#79)
- Fix
stg pull
when no upstream is configured (#83) - Fix
refresh
crash with path limiting and files added to index (#85) - Repair
new
with patchdescr.template crash (#87) - Repair
log
from worktree subdir with patches specified - Repair
import
allowing/generating duplicate patch names (#64) - Repair
mail --auto
to strip comments after addrs (#91)