From: "Nguyễn Thái Ngọc Duy" <pclouds@gmail.com>
To: git@vger.kernel.org
Cc: "Nguyễn Thái Ngọc Duy" <pclouds@gmail.com>
Subject: [PATCH/WIP 0/9] for-each-ref format improvements
Date: Sun, 19 May 2013 17:27:06 +0700 [thread overview]
Message-ID: <1368959235-27777-1-git-send-email-pclouds@gmail.com> (raw)
The purpose of this series is to make "for-each-ref --format" powerful
enough to display what "branch -v" and "branch -vv" do so that we
could get rid of those display code and use for-each-ref code instead.
The benefits are clear: share more code, branch can also borrow
--sort and --format from for-each-ref, which should satisty users who
are not happy with what -v and -vv provides.
This version has not gotten there yet. I just want to post quick and
dirty changes and try to address some design issues.
Originally I wanted to introduce --pretty with git-log's pretty syntax
to for-each-ref, deprecating --format. But because --format has to be
there forever, we cannot remove its code, and the code change to make
pretty code ready for displaying refs may not be small. So I went with
enhancing --format syntax instead.
This series introduces:
- %(current), which either shows "*" if the ref is pointed by HEAD
or a space. Junio called it %(headness). I don't like that.
I don't like %(current) either but we have to start somewhere.
Name suggestion? %(marker)??
- %(tracking[:upstream]) gives us the exact output that branch -v[v]
does. %(upstream) does not include []. We can't change its
semantics.
- %(color:...) is pretty much the same as %C family in pretty code.
I haven't added code for %(color:foo) == %C(foo) yet. There's a
potential ambiguity here: %C(red) == %Cred or %C(red)??
- %(...:aligned) to do left aligning. I'm not entirely sure about
this. We might be able to share code with %>, %< and %>< from
pretty.c. But we need improvements there too because in
for-each-ref case, we could calculate column width but %< would
require the user to specify the width.
Do people expect fancy layout with for-each-ref (and branch)? If so
we might need to have %(align) or something instead of the simple
left alignment case in %(...:aligned)
- We may need an equivalent of the space following % in pretty
format. If the specifier produces something, then prepend a space,
otherwise produce nothing. Do it like %C( tracking) vs
%C(tracking)??
You can try this after applying the series, which should give you the
about close to 'branch -v'. %(tracking) coloring does not work though.
git for-each-ref --format='%(current) %(color:auto)%(refname:short:aligned)%(color:reset) %%(objectname:short) %(tracking) %(subject)' 'refs/heads/*'
Nguyễn Thái Ngọc Duy (9):
quote.c: make sq_quote_print a slight wrapper of sq_quote_buf
for-each-ref: convert to use *_quote_buf instead of _quote_print
for-each-ref: avoid printing each element directly to stdout
for-each-ref: add %(current) for current branch marker
for-each-ref: add %(tracking[:upstream]) for tracking info
for-each-ref: add %(color:...)
for-each-ref: prepoplulate all atoms before show_ref()
for-each-ref: merge show_ref into show_refs
for-each-ref: support %(...:aligned) for left alignment
branch.h | 11 ++++
builtin/branch.c | 16 ++----
builtin/for-each-ref.c | 146 ++++++++++++++++++++++++++++++++++++++++++-------
quote.c | 61 +++++++++------------
quote.h | 6 +-
5 files changed, 170 insertions(+), 70 deletions(-)
--
1.8.2.83.gc99314b
next reply other threads:[~2013-05-19 10:26 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-05-19 10:27 Nguyễn Thái Ngọc Duy [this message]
2013-05-19 10:27 ` [PATCH 1/9] quote.c: make sq_quote_print a slight wrapper of sq_quote_buf Nguyễn Thái Ngọc Duy
2013-05-19 11:39 ` Felipe Contreras
2013-05-19 10:27 ` [PATCH 2/9] for-each-ref: convert to use *_quote_buf instead of _quote_print Nguyễn Thái Ngọc Duy
2013-05-19 11:39 ` Felipe Contreras
2013-05-19 10:27 ` [PATCH 3/9] for-each-ref: avoid printing each element directly to stdout Nguyễn Thái Ngọc Duy
2013-05-19 11:17 ` Ramkumar Ramachandra
2013-05-19 11:58 ` Duy Nguyen
2013-05-19 10:27 ` [PATCH 4/9] for-each-ref: add %(current) for current branch marker Nguyễn Thái Ngọc Duy
2013-05-19 11:14 ` Ramkumar Ramachandra
2013-05-19 10:27 ` [PATCH 5/9] for-each-ref: add %(tracking[:upstream]) for tracking info Nguyễn Thái Ngọc Duy
2013-05-19 11:18 ` Ramkumar Ramachandra
2013-05-19 11:38 ` Felipe Contreras
2013-05-19 11:43 ` Duy Nguyen
2013-05-19 11:48 ` Ramkumar Ramachandra
2013-05-19 12:03 ` Felipe Contreras
2013-05-19 10:27 ` [PATCH 6/9] for-each-ref: add %(color:...) Nguyễn Thái Ngọc Duy
2013-05-19 11:25 ` Ramkumar Ramachandra
2013-05-19 10:27 ` [PATCH 7/9] for-each-ref: prepoplulate all atoms before show_ref() Nguyễn Thái Ngọc Duy
2013-05-19 10:27 ` [PATCH 8/9] for-each-ref: merge show_ref into show_refs Nguyễn Thái Ngọc Duy
2013-05-19 10:27 ` [PATCH 9/9] for-each-ref: support %(...:aligned) for left alignment Nguyễn Thái Ngọc Duy
2013-05-19 11:32 ` Ramkumar Ramachandra
2013-05-19 11:41 ` Duy Nguyen
2013-05-19 11:11 ` [PATCH/WIP 0/9] for-each-ref format improvements Ramkumar Ramachandra
2013-05-19 11:36 ` Felipe Contreras
2013-05-19 11:54 ` Duy Nguyen
2013-05-19 12:08 ` Ramkumar Ramachandra
2013-05-19 12:28 ` Duy Nguyen
2013-05-19 13:07 ` Ramkumar Ramachandra
2013-05-20 4:29 ` Junio C Hamano
2013-05-21 17:21 ` Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1368959235-27777-1-git-send-email-pclouds@gmail.com \
--to=pclouds@gmail.com \
--cc=git@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.