topgit-0.19
tagd621c68c043f7f1245f4f76a89cf211ba1b82ed3
object faec0db7386724463f4ad59cc79141102e05ce1a
authorKyle J. McKay <mackyle@gmail.com>
Fri, 20 Nov 2015 21:05:18 +0000 (20 13:05 -0800)
TopGit-0.19

A major TopGit update.

Major new commands include `tg tag` and `tg revert`.  When combined,
`tg tag` and `tg revert` can provide a kind of `tg update` undo.
See the new "NO UNDO" section in the README.  A new `tg rebase`
command is also included to provide a `git rebase --auto-continue`
functionality.  The use of `tg create` has been greatly streamlined
and it learned several new options to specify `.topmsg` content.
Furthermore, TopGit branches with no dependencies (an empty `.topdeps`
file) are now officially supported with the new `tg create` `--no-deps`
option.

New with this release TopGit attempts to keep commits that change
`.topdeps` and/or `.topmsg` separate from other changes.  See the
new "SEQUESTRATION" section in the README for details.

The `tg summary` command learned several new options most notably
the `--heads` option which can be combined with `--rdeps` (as
`tg summary --rdeps --heads`).

The `tg` command learned to accept `-c <name>=<value>` options to
be passed through to any git commands that are run.

The `tg delete` command learned to detach your HEAD (thereby allowing
deletion of the HEAD branch) with `-f -f`.

The `tg info` command learned a new `--heads` option to tell which
of the `tg summary --heads` the specified branch is contained in.

The `tg update` command learned `--stash` and `--no-stash` and to
pay attention to the config value of `topgit.autostash` (see the
new "NO UNDO" section in the README for details).

The `tg checkout` command implicitly understands to 'goto' when
the word 'goto' is omitted and the argument is not another subcommand.

SHELL_PATH can now be set in `config.mak` to specify a POSIX shell
other than /bin/sh to use with the installed tg commands.

The README has been expanded somewhat and now contains an alphabetical
list of all subcommands in the USAGE section which become links
when the `topgit.html` file is generated.  Furthermore, the non-html
version used for `tg help tg` now contains the same usage lines the
html version does.  A new "CONVENTIONS" section is also included
to explain the three different kinds of TopGit branches commonly
used ("patch", "base" and "stage").

Various bug fixes are included.  `tg export --linearize` will no
longer abort prematurely when faced with branches that do not share
a common base somewhere in their ancestry.  Pre-existing pre-commit
hooks are no longer assumed to use `#!/bin/sh` as their interpreter.
When output is not being paged an extra `cat` process is no longer
run.

A regression (since 0.18) and bug fix (when using older bash) for
the pre-commit hook are included.

A Git compatibility update to set LESS to '-FRX' instead of '-FRSX'
to match Git behavior since v2.1.0 is also included.

Kyle J. McKay (94):
      tg.sh: next version is 0.18.1
      tg-tag.sh: new TopGit "tag" command
      tg.sh: avoid merge setup when unnecessary
      tg.sh: add support for recurse_deps_exclude
      tg-tag.sh: speed up tagging of multiple branches
      tg-tag.sh: complain with --all and no TopGit branches
      tg-tag.sh: use unambiguous ref abbreviation in --reflog output
      tg-tag.sh: colorize reflog output
      tg-tag.sh: support new options --reflog-message and --no-type
      tg-tag.sh: improve reflog messages
      tg-tag.sh: default to --reflog-msg --stash for --reflog with no tag
      tg.sh: set LESS to -FRX by default instead of -FRSX
      tg-rebase.sh: new TopGit rebase command
      tg.sh: allow -c <name>=<value> options to be passed to git
      pre-commit.sh: use fully-qualified ref with ref_exists
      pre-commit.sh: exit on error even with older bash
      tg-export.sh: do not abort --linearize early
      tg.sh: move run_editor into tg.sh so it can be reused
      README: correct some awkward grammar
      Makefile: allow SHELL_PATH to specify the POSIX shell
      tg: avoid shift when $# -eq 0
      tg.sh: do not assume a pre-existing pre-commit hook uses #!/bin/sh
      tg-tag.sh: use configured hash abbreviation length
      tg-tag.sh: add some DWIM parsing <tagname>
      tg*.sh: disambiguate git rev-parse arguments
      tg-tag.sh: support --quiet (aka -q) option
      tg-revert: new tg revert command
      tg-create: support new options and behavior
      tg-create.sh: implement new options and semantics
      tg.sh: set up tgnosequester in initial_setup
      tg-import.sh: overhaul to allow continuing and support new tg create
      tg.sh: move nullsha definition into tg.sh for reusability
      tg-depend.sh: reformat dependency add message
      hooks/pre-commit.sh: overhaul and sequester TopGit files
      tg: refactor paging functions to eliminate "cat" process
      tg: avoid unnecessary setup for strftime function
      tg-summary: add --deps-only option
      tg-update.sh: --all is now an alias for -a
      tg: make sure we're really working with commits
      tg-create.sh: support new --no-deps option
      tg.sh: add err function
      tg-checkout.sh: make "goto" optional
      README: add command summary list with links
      tg-create.sh: switch from warn to err
      tg-create.sh: ensure_clean_tree for non-remote setup
      tg.sh: fix recurse_deps pre-order traversal with remotes enabled
      tg-update.sh: eliminate two unnecessary uses of cut
      tg: improve merge messages
      Makefile: add install-doc target
      tg-summary.sh: support new --heads option
      tg: include usage lines in `tg help tg` output
      tg-summary.sh: support --tgish-only for parity
      tg-create.sh: support --topmsg and --topmsg-file options
      tg: stop symbolic-ref whining
      tg-revert.sh: quiet auto-stash error when no TopGit branches exist
      tg-revert.sh: properly handle nested tags
      tg-tag.sh: avoid unnecessary consolidation commit
      tg-tag.sh: make --walk-reflogs be alias for -g
      tg-push.sh: handle explicit HEAD argument better
      tg-info.sh: support new --heads option
      README: mention using tg tag + tg revert to transfer TopGit branches
      tg-update.sh: add autostash support
      tg-create.sh: relax --no-deps checking
      tg-delete.sh: double -f will delete your HEAD
      tg-create.sh: support --quiet option
      tg: check result codes from tg create and git commit
      tg-tag.sh: accept --commit-message as alias for --no-reflog-message
      tg-create.sh: maybe allow non-clean tree
      tg-create.sh: allow HEAD as an alias for HEAD's symref
      README: explicitly mention utility of tg summary --rdeps --heads
      tg-summary.sh: support --with-deps option
      README: add SEQUESTRATION section detailing new behavior
      tg-tag.sh: guarantee a reflog for refs/tgstash
      README: add section about rewriting commits
      README: add a "NO UNDO" section
      tg-create.sh: use [BASE] instead of [PATCH] for --no-deps
      tg.sh: make -f option to verify_topgit_branch truly silent
      README: add "CONVENTIONS" section
      tg.sh: next version is 0.19
      tg-revert.sh: guarantee a reflog for refs/tgstash
      tg-tag.sh: robustify [;_)] out-of-date ref handling
      tg-tag.sh: restore speed after robustification [;_)]
      tg-tag.sh: implement --drop, --clear and --delete options
      tg-tag.sh: allow non-symbolic refs to influence parents
      tg-create.sh: refuse to create a branch named after a tag
      tg-depend.sh: work properly in unclean tree
      tg: always use refs/heads/$name when $name is a TopGit branch
      tg-create.sh: use ensure_clean_tree only when absolutely necessary
      tg-create.sh: with --no-deps work on unborn branch
      README: add minor updates and clarifications
      README: add "SPEED AND CACHING" section
      tg-depend.sh: new options and better dirty worktree support
      tg-update.sh: do not stash on recursive invocations
      tg-stash.sh: use correct tag stash branch name
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iQPcBAABAgAGBQJWT4sOAAoJEFh5SEJa2uvTAuMd/juXOVrHaUptYzGANOgxpIYj
jho8VD682JImpoDG+z9Bgp3t2uopKVJePr802wIl+Id02CFHy3u8XhPiLavi/48n
5S+KXMjRXFQQxHTSRyF77vMHKXq5wXzA0R862IgKo12v3Bh25SlntKqZK6gkj2yU
5rwf6KuOJ5B0lm3Bq6SsyY4BISCSvqWFl4uzBr1ULJRyXLcgZWnx0VgtWEs302Y2
kYplxljS91Ahyb4dFPKQBMu2OfHij+pdR6PXM6T4cMfjS6vku4yMKe+lYCnbn8JO
MPrXabP1FaRVRNL4RwwU+kx2Oy+sZ+cYbSA+k90FFQ4e4V/zqBTnjl+XVSGE6ZMx
fGhXnhN2o9gfrI92sjmLxUh+l9wr1sCylXaxCTukXxhXShm9HAxtNu8nODf7DhxQ
I8JKMGGHcdNkAQuVtuMvMCF/Ys6eL1BrfUR6z9Cawev86Zh9pFnM4JBXFgmNPljQ
xXwKIJvz90N4Jq2OtrlzIrVYMgFi7fIqSws3uWSjxmebaF11SGXGzVDdn42x1SeN
3Eb6cPVOxUPMMdR6C+c+IWzjL2BDQvJTsLP0BmrpK8tigJoAK4hY5326NWsKuORk
ijAxbmqCoYd1AJ/Jn2b/r8LPkV4rBc1X6Ep4qgqek6m1gAr2MuHtD6EXOEBsd8YK
i6om3ZALHip0Hah4i3g1Qx3MFvP8pb/8CefnMFjo7MF+qfn17JpZsgOVxTKNme1D
uNbg32rcGQjbNGsJ5fPJKXqEEc2LsbkCpoLxafJvfU13hSSxcotVGjetw+krwq8Y
WKI8yWbVk7kEKELtZ+H2XQishi13txE/FpNSslu6bboZ/m7lqORLRrqrmW5Ex8jj
hnxzdQeiFQEzRcsfJX3ELSSVhk8RKE4NgCGohduTv+d70MmofAz4fFW0qb5wotSn
OgkJDCbTs+8FkiAcDdrVqPA9gPROqv9HSW0IbtMct/y1M0m0eotkd1HXBrLVRZi9
xdBuYZBct1/Bl7kRf/dl9B6gYUwmuO9DvDhULNf21+8ZzH5tUOdb6BB2sr03gmj8
+8YQdJZaCD7H+gcoQlgZQ4LIv61MCabt7xN7kigScgUWd6slt+CWZ/8XqUZyEZ6U
tjh2QkzDr+g6SFC9wEaWd4ZArAFbcJjO3r4lEskZIsT7N+HAeU2RMVQ+UkI5jHVv
TptCu4uxNh4vI/J5coWLpzmOgtzO3jY3wz8ITyZgPveNE6HuBWzT0WmKOvC8nPYt
LxArtPzvbmhXXIZes5DZafc5efJX6/z18KIWSbA93A==
=21EI
-----END PGP SIGNATURE-----