[PATCH (topgit) 2/2] tg-patch: fix pagination
- From
Kirill Smelkov <kirr@landau.phys.spbu.ru>
- Date
- Jan 6, 2009, 15:16 UTC
- Message-ID
- <7c756270cdd997037616e1601121347b73b2bc77.1231254832.git.kirr@landau.phys.spbu.ru>
- In-Reply-To
- <cover.1231254832.git.kirr@landau.phys.spbu.ru>
Previously, when I was invoking `tg patch` the following used to happen:
1. .topmsg content was sent directly to _terminal_ 2. for each file in the patch, its diff was generated with `git diff` and sent to *PAGER* 3. trailing 'tg: ...' was sent to terminal again
So the problem is that while `tg patch >file` works as expected, plain `tg patch` does not -- in pager there is only a part of the whole patch (first file diff) and header and trailer are ommitted.
I've finally decided to fix this inconvenience, and the way it works is like in git -- we just hook `setup_pager` function in commands which need to be paginated.
Signed-off-by: Kirill Smelkov <kirr@landau.phys.spbu.ru> --- tg-patch.sh | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/tg-patch.sh b/tg-patch.sh index a704375..dc699d2 100644 --- a/tg-patch.sh +++ b/tg-patch.sh @@ -24,6 +24,9 @@ done base_rev="$(git rev-parse --short --verify "refs/top-bases/$name" 2>/dev/null)" || die "not a TopGit-controlled branch" + +setup_pager + git cat-file blob "$name:.topmsg" echo [ -n "$(git grep '^[-]--' "$name" -- ".topmsg")" ] || echo '---'
-- 1.6.1.48.ge9b8