This series adds Mercurial Queues-like guards to guilt. It allows you to assign guards to related patches in the series file to selectively push patches. See Chapter 13 of the HG Book for more info. (http://hgbook.red-bean.com/hgbookch13.html) Guards are appended as "#+foo" or "#-foo" to the end of the patch name in the series file, so they are compatible with quilt. The guard setting and unsetting functions also respect comments on the patch line, so they aren't mangled when you use guards. This introduces the command `get_guarded_series`, which just lists patches that are to be applied based on the guards. It also makes eidx=`wc -l < $applied` inaccurate if you're using it as an index into get_series. If you change guards on a patch or select a different guard while patches are applied, some commands might get confused. guilt pop -a will fix everything though. Usually, it's best to pop -a before fiddling with guards anyway. This is an RFC, but I have tested it and things seem to be working well. [PATCH 1/4] get_series: Remove comments from end of series lines This just strips everything but the patch name from get_series, to hide comments or guards on the line. [PATCH 2/4] guilt-guard: Assign guards to patches in series This adds the guilt-guard command and utility functions to guilt. [PATCH 3/4] guilt-select: Select guards to apply when pushing patches This puts selected guards in .git/patch/$branch/guards, and adds a $guards_file variable to guilt. [PATCH 4/4] Use guards information and functions This changes guilt-header, guilt-next, guilt-push and guilt-unapplied to use the guards information properly. After the guilt-push change, header, next, and unapplied get confused and break, so I rolled their fixes into this patch instead of separate ones. Documentation/guilt-guards.txt | 40 +++++++++++++++++++++++++ Documentation/guilt-select.txt | 42 ++++++++++++++++++++++++++ guilt | 62 ++++++++++++++++++++++++++++++++++++++- guilt-guards | 63 ++++++++++++++++++++++++++++++++++++++++ guilt-header | 7 ++-- guilt-next | 2 +- guilt-push | 8 ++-- guilt-select | 36 +++++++++++++++++++++++ guilt-unapplied | 2 +- 9 files changed, 252 insertions(+), 10 deletions(-) create mode 100644 Documentation/guilt-guards.txt create mode 100644 Documentation/guilt-select.txt create mode 100755 guilt-guards create mode 100755 guilt-select - 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