[StGit PATCH 00/10] Infrastructure rewrite series
- From
Karl Hasselström <kha@treskal.com>
- Date
- Nov 25, 2007, 20:50 UTC
- Message-ID
- <20071125203717.7823.70046.stgit@yoghurt>
I've expanded on the infrastructure rewrite series. As of now, clean, applied, unapplied, goto, uncommit, and the new command coalesce have been converted.
The main new development is support for index and worktree operations, so that it can do conflicting merges. This made it possible to convert "stg goto", but the main practical attraction is the vastly improved "stg coalesce", which can now take an arbitrary list of patches and reorder them so that they can be joined to one big patch. It will do so entirely automatically if the merges resolve automatically, and if they don't it will pretend to have done a series of pops, pushes, and deletes, and leave the user to manually resolve the first conflicting push.
The implementation of coalesce -- particularly the ability to fail gracefully on conflicts at any intermediate step -- is helped a lot by some new cool transaction stuff.
Available from
git://repo.or.cz/stgit/kha.git experimental
---
Karl Hasselström (10):
Convert "stg uncommit" to the new infrastructure
Let "stg goto" use the new infrastructure
Let "stg clean" use the new transaction primitives
Teach the new infrastructure about the index and worktree
Let "stg applied" and "stg unapplied" use the new infrastructure
Add "stg coalesce"
Let "stg clean" use the new infrastructure
Upgrade older stacks to newest version
Write metadata files used by the old infrastructure
New StGit core infrastructure: repository operationscontrib/stgit-completion.bash | 2 setup.py | 2 stgit/commands/applied.py | 27 +-- stgit/commands/clean.py | 49 ++--- stgit/commands/coalesce.py | 109 ++++++++++++ stgit/commands/common.py | 10 + stgit/commands/goto.py | 52 ++---- stgit/commands/unapplied.py | 23 +- stgit/commands/uncommit.py | 79 ++++---- stgit/lib/__init__.py | 18 ++ stgit/lib/git.py | 383 +++++++++++++++++++++++++++++++++++++++++ stgit/lib/stack.py | 168 ++++++++++++++++++ stgit/lib/stackupgrade.py | 96 ++++++++++ stgit/lib/transaction.py | 194 +++++++++++++++++++++ stgit/main.py | 2 stgit/stack.py | 100 +---------- stgit/utils.py | 24 +++ t/t2600-coalesce.sh | 31 +++ 18 files changed, 1136 insertions(+), 233 deletions(-) create mode 100644 stgit/commands/coalesce.py create mode 100644 stgit/lib/__init__.py create mode 100644 stgit/lib/git.py create mode 100644 stgit/lib/stack.py create mode 100644 stgit/lib/stackupgrade.py create mode 100644 stgit/lib/transaction.py create mode 100755 t/t2600-coalesce.sh
--
Karl Hasselström, kha@treskal.com
www.treskal.com/kalle