Skip to content

Releases: stacked-git/stgit

Stacked Git 1.0

08 Feb 04:14
Compare
Choose a tag to compare

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, and stg-show-old

Added

  • The pre-commit hook is now run for stg refresh
  • New --spill option for stg 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 of python
  • 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)

Stacked Git 0.23

13 Jun 03:36
Compare
Choose a tag to compare

Stacked Git v0.23 is primarily a bug fix release that corrects
several bugs found in v0.22 along with several other longstanding
issues.

Removed

  • 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

Deprecated

  • Python 2.x support is deprecated and will be removed in a future release

Added

  • Support html5 output of docs from asciidoc
  • Add --expose option for stg pick to allow picked commit message to be customized

Changed

  • 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

Fixed

  • 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 isatty()
  • Repair mail SSL check (#57)
  • Repair stg mail with both -a and -e options (#58)
  • Remove empty short-opt for --no-submodules of stg refresh
  • Repair build.py for Python 2 with explicit flush()
  • stgit.refreshsubmodules added to sample gitconfig

Internal

  • 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

v0.22

09 Mar 04:01
Compare
Choose a tag to compare

Stacked Git 0.22 released

StGit is a Python application providing functionality similar to Quilt
(i.e. pushing/popping patches to/from a stack) on top of Git. These
operations are performed using Git commands, and the patches are
stored as Git commit objects, allowing easy merging of the StGit
patches into other repositories using standard Git functionality.

Download: https://github.com/ctmarinas/stgit/releases/download/v0.22/stgit-0.22.tar.gz
Main repository: https://github.com/ctmarinas/stgit
Project homepage: http://www.procode.org/stgit/
Issue tracker: https://github.com/ctmarinas/stgit/issues

Changes since 0.21:

  • Python 2.x support is deprecated and will be removed in the next StGit release
  • stg publish is deprecated and will be removed in the next StGit release
  • stg new now includes patch name in log message
  • stg branch --create inherits remote correctly from parent commitish
  • stg branch --rename can now rename the current branch
  • stg branch --create now works even if the workspace is dirty, consistent with git checkout
  • stg branch --description now works on both regular and stgit branches
  • stg import has new --keep-cr option, like git mailsplit
  • stg refresh and stg edit now reset the commiter information, consistent with stg push
  • stg edit --diff now implies --edit
  • git notes are now preserved when patches are modified
  • 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 git repo
  • Tutorial improvements
  • Many additional tests and test improvements
  • Remove debian packaging; downstream Debian uses its own anyway
  • All stgit commands now use "new" git library infrastructure

v0.21

28 Oct 19:57
Compare
Choose a tag to compare

Stacked Git 0.21 released

StGit is a Python application providing functionality similar to Quilt
(i.e. pushing/popping patches to/from a stack) on top of Git. These
operations are performed using Git commands, and the patches are
stored as Git commit objects, allowing easy merging of the StGit
patches into other repositories using standard Git functionality.

Download: https://github.com/ctmarinas/stgit/releases/download/v0.21/stgit-0.21.tar.gz
Main repository: https://github.com/ctmarinas/stgit
Project homepage: http://www.procode.org/stgit/
Issue tracker: https://github.com/ctmarinas/stgit/issues

Changes since 0.20:

  • Build reproducibility repairs (Thanks reproducible-builds.org team!)
  • Faster handling of large patches (#44)
  • Python can now be run with optimizations (python -O)
  • stg log now prints trailing newline
  • Improved command line option parsing for stg log

v0.20

04 Oct 19:27
Compare
Choose a tag to compare

Stacked Git 0.20 released

StGit is a Python application providing functionality similar to Quilt
(i.e. pushing/popping patches to/from a stack) on top of Git. These
operations are performed using Git commands, and the patches are
stored as Git commit objects, allowing easy merging of the StGit
patches into other repositories using standard Git functionality.

Download: https://github.com/ctmarinas/stgit/releases/download/v0.20/stgit-0.20.tar.gz
Main repository: https://repo.or.cz/stgit.git
Project homepage: http://www.procode.org/stgit/
Issue tracker: https://github.com/ctmarinas/stgit/issues

Changes since 0.19:

Features:

  • 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.
  • Branch protection metadata now captured in config instead of
    .git/patches/protect file. This updates stgit's metadata format from
    v2 to v3.
  • stg mail --domain option overrides the host's domain in the message ID.

Bug fixes:

  • 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 diff.
  • stg diff --range detects some invalid values (e.g. -r ..).
  • stg diff no longer shows binary diffs by default. Use -O--binary or add
    --binary to stgit.diff-opts in config.
  • Date parsing is now more portable, only use platform specific date as last
    parsing option. Affects, e.g., stg refresh --authdate.
  • Repaired seach path for templates to avoid looking in Python site-packages
    directory.
  • Ensure stdout and stderr are flushed. Rarely affected stg diff.
  • stg repair will now fail if extra command line arguments are provided.
  • Bash completions are now generated in a reproducible manner.
  • stg edit --diff on an empty patch no longer crashes.
  • 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).
  • stg pick no longer fails when picked commit has empty message (#39).
  • stg rebase no longer crashes when there are conflicts (#34).
  • stg pick no longer crashes if --name is not provided when picking a regular
    commit object.

Code quality:

  • Converted to "new" lib infrastructure: show, patches, diff, pick, pull,
    rebase, and fold.
  • 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 STGIT_SUBPROCESS_LOG=debug.
  • Renamed "dunder" instance attributes to improve debugging.
  • Fail faster when patch name has slash ('/') (#24).

v0.19

22 Nov 05:01
Compare
Choose a tag to compare

Stacked Git 0.19 released

StGit is a Python application providing functionality similar to Quilt
(i.e. pushing/popping patches to/from a stack) on top of Git. These
operations are performed using Git commands, and the patches are
stored as Git commit objects, allowing easy merging of the StGit
patches into other repositories using standard Git functionality.

Download: https://github.com/ctmarinas/stgit/archive/v0.19.tar.gz
Main repository: https://github.com/ctmarinas/stgit
Project homepage: http://www.procode.org/stgit/
Issue tracker: https://github.com/ctmarinas/stgit/issues

The main changes since release 0.18:

  • 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.

  • Repair handling of emails with utf-8 bodies containing latin-1 characters.
    Also correctly decode email headers containing quoted encoded words.

  • StGit's version is now correct/available the release archive.

  • Add continuous integration (travis-ci) and code coverage (coveralls) support.

  • Many new test cases were added.