The patch stack log / stg reset series has matured over the weekend. The major highlights are 1. When a command fails to push a patch due to conflicts, it will log two entries -- one for the part of the command that succeeded, and one just for the conflicting push. This makes it possible to undo just the last part, and not the whole command. 2. I've tightened the checks so that conflicts will prevent most commands from working unless they actively claim to make sense in the face of conflicts. Basically, only commands that don't touch the topmost patch should be able to run when there are conflicts. 3. stg reset now understands --hard, which makes it zonk any local changes, including conflicts. (1) and (3) means that $ stg reset --hard <branchname>.stgit^~1 can be used instead of stg push --undo when you want to undo a conflicting push. Now I just have to make that available as $ stg undo so that it actually becomes usable ... These patches are available at git://repo.or.cz/stgit/kha.git experimental --- Karl Hasselström (10): Don't write a log entry if there were no changes Add a --hard flag to stg reset Log conflicts separately for all commands Log conflicts separately New command: stg reset Add utility function for reordering patches Write to a stack log when stack is modified Library functions for tree and blob manipulation Add property with a list of all patch names Prevent most commands from running when there are conflicts stgit/commands/branch.py | 20 ++++- stgit/commands/clean.py | 3 + stgit/commands/coalesce.py | 6 +- stgit/commands/commit.py | 13 ++-- stgit/commands/common.py | 8 ++ stgit/commands/delete.py | 14 +++- stgit/commands/diff.py | 2 - stgit/commands/edit.py | 3 + stgit/commands/export.py | 2 - stgit/commands/files.py | 2 - stgit/commands/id.py | 2 - stgit/commands/log.py | 2 - stgit/commands/mail.py | 2 - stgit/commands/patches.py | 2 - stgit/commands/reset.py | 118 ++++++++++++++++++++++++++++++++ stgit/commands/series.py | 2 - stgit/commands/show.py | 2 - stgit/commands/status.py | 3 + stgit/commands/top.py | 2 - stgit/commands/uncommit.py | 5 + stgit/lib/git.py | 143 +++++++++++++++++++++++++++++++++------ stgit/lib/log.py | 161 ++++++++++++++++++++++++++++++++++++++++++++ stgit/lib/stack.py | 8 ++ stgit/lib/transaction.py | 92 ++++++++++++++++++++----- stgit/main.py | 4 + t/t3100-reset.sh | 151 +++++++++++++++++++++++++++++++++++++++++ t/t3101-reset-hard.sh | 56 +++++++++++++++ 27 files changed, 754 insertions(+), 74 deletions(-) create mode 100644 stgit/commands/reset.py create mode 100644 stgit/lib/log.py create mode 100755 t/t3100-reset.sh create mode 100755 t/t3101-reset-hard.sh -- Karl Hasselström, kha@xxxxxxxxxxx www.treskal.com/kalle -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html