* [PATCH] Add `%B' in format strings for raw commit body in `git log' and friends
@ 2010-03-25 2:51 Eli Barzilay
2010-04-04 21:37 ` Eli Barzilay
0 siblings, 1 reply; 6+ messages in thread
From: Eli Barzilay @ 2010-03-25 2:51 UTC (permalink / raw)
To: git; +Cc: gitster
Also update the documentation text and add a test.
Signed-off-by: Eli Barzilay <eli@barzilay.org>
---
This is re a feature request I made a few days ago. The test is
trivial, since there are only two commits with a single line.
Documentation/pretty-formats.txt | 1 +
pretty.c | 4 ++++
t/t6006-rev-list-format.sh | 9 +++++++++
3 files changed, 14 insertions(+), 0 deletions(-)
diff --git a/Documentation/pretty-formats.txt b/Documentation/pretty-formats.txt
index 1686a54..bd760d3 100644
--- a/Documentation/pretty-formats.txt
+++ b/Documentation/pretty-formats.txt
@@ -123,6 +123,7 @@ The placeholders are:
- '%s': subject
- '%f': sanitized subject line, suitable for a filename
- '%b': body
+- '%B': raw body (unwrapped subject and body)
- '%N': commit notes
- '%gD': reflog selector, e.g., `refs/stash@\{1\}`
- '%gd': shortened reflog selector, e.g., `stash@\{1\}`
diff --git a/pretty.c b/pretty.c
index 6ba3da8..14c9568 100644
--- a/pretty.c
+++ b/pretty.c
@@ -797,6 +797,10 @@ static size_t format_commit_one(struct strbuf *sb, const char *placeholder,
case 'e': /* encoding */
strbuf_add(sb, msg + c->encoding.off, c->encoding.len);
return 1;
+ case 'B': /* raw body */
+ /* message_off is always left at the initial newline */
+ strbuf_addstr(sb, msg + c->message_off + 1);
+ return 1;
}
/* Now we need to parse the commit message. */
diff --git a/t/t6006-rev-list-format.sh b/t/t6006-rev-list-format.sh
index b0047d3..5d15f18 100755
--- a/t/t6006-rev-list-format.sh
+++ b/t/t6006-rev-list-format.sh
@@ -101,6 +101,15 @@ commit 131a310eb913d107dd3c09a65d1651175898735d
commit 86c75cfd708a0e5868dc876ed5b8bb66c80b4873
EOF
+test_format raw-body %B <<'EOF'
+commit 131a310eb913d107dd3c09a65d1651175898735d
+changed foo
+
+commit 86c75cfd708a0e5868dc876ed5b8bb66c80b4873
+added foo
+
+EOF
+
test_format colors %Credfoo%Cgreenbar%Cbluebaz%Cresetxyzzy <<'EOF'
commit 131a310eb913d107dd3c09a65d1651175898735d
^[[31mfoo^[[32mbar^[[34mbaz^[[mxyzzy
--
1.7.0.3
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH] Add `%B' in format strings for raw commit body in `git log' and friends
2010-03-25 2:51 [PATCH] Add `%B' in format strings for raw commit body in `git log' and friends Eli Barzilay
@ 2010-04-04 21:37 ` Eli Barzilay
2010-04-04 22:17 ` Junio C Hamano
0 siblings, 1 reply; 6+ messages in thread
From: Eli Barzilay @ 2010-04-04 21:37 UTC (permalink / raw)
To: git
A while ago I sent the patch below. There were no replies. Is there
anything else that I should do, or is there any problem in doing this?
Eli Barzilay <eli@barzilay.org> writes:
> Also update the documentation text and add a test.
>
> Signed-off-by: Eli Barzilay <eli@barzilay.org>
> ---
>
> This is re a feature request I made a few days ago. The test is
> trivial, since there are only two commits with a single line.
>
> Documentation/pretty-formats.txt | 1 +
> pretty.c | 4 ++++
> t/t6006-rev-list-format.sh | 9 +++++++++
> 3 files changed, 14 insertions(+), 0 deletions(-)
>
> diff --git a/Documentation/pretty-formats.txt b/Documentation/pretty-formats.txt
> index 1686a54..bd760d3 100644
> --- a/Documentation/pretty-formats.txt
> +++ b/Documentation/pretty-formats.txt
> @@ -123,6 +123,7 @@ The placeholders are:
> - '%s': subject
> - '%f': sanitized subject line, suitable for a filename
> - '%b': body
> +- '%B': raw body (unwrapped subject and body)
> - '%N': commit notes
> - '%gD': reflog selector, e.g., `refs/stash@\{1\}`
> - '%gd': shortened reflog selector, e.g., `stash@\{1\}`
> diff --git a/pretty.c b/pretty.c
> index 6ba3da8..14c9568 100644
> --- a/pretty.c
> +++ b/pretty.c
> @@ -797,6 +797,10 @@ static size_t format_commit_one(struct strbuf *sb, const char *placeholder,
> case 'e': /* encoding */
> strbuf_add(sb, msg + c->encoding.off, c->encoding.len);
> return 1;
> + case 'B': /* raw body */
> + /* message_off is always left at the initial newline */
> + strbuf_addstr(sb, msg + c->message_off + 1);
> + return 1;
> }
>
> /* Now we need to parse the commit message. */
> diff --git a/t/t6006-rev-list-format.sh b/t/t6006-rev-list-format.sh
> index b0047d3..5d15f18 100755
> --- a/t/t6006-rev-list-format.sh
> +++ b/t/t6006-rev-list-format.sh
> @@ -101,6 +101,15 @@ commit 131a310eb913d107dd3c09a65d1651175898735d
> commit 86c75cfd708a0e5868dc876ed5b8bb66c80b4873
> EOF
>
> +test_format raw-body %B <<'EOF'
> +commit 131a310eb913d107dd3c09a65d1651175898735d
> +changed foo
> +
> +commit 86c75cfd708a0e5868dc876ed5b8bb66c80b4873
> +added foo
> +
> +EOF
> +
> test_format colors %Credfoo%Cgreenbar%Cbluebaz%Cresetxyzzy <<'EOF'
> commit 131a310eb913d107dd3c09a65d1651175898735d
> foobarbazxyzzy
--
((lambda (x) (x x)) (lambda (x) (x x))) Eli Barzilay:
http://barzilay.org/ Maze is Life!
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] Add `%B' in format strings for raw commit body in `git log' and friends
2010-04-04 21:37 ` Eli Barzilay
@ 2010-04-04 22:17 ` Junio C Hamano
2010-04-04 22:33 ` Eli Barzilay
0 siblings, 1 reply; 6+ messages in thread
From: Junio C Hamano @ 2010-04-04 22:17 UTC (permalink / raw)
To: Eli Barzilay; +Cc: git
Isn't this the same as "%s%n%+b"?
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] Add `%B' in format strings for raw commit body in `git log' and friends
2010-04-04 22:17 ` Junio C Hamano
@ 2010-04-04 22:33 ` Eli Barzilay
2010-04-05 1:30 ` Junio C Hamano
0 siblings, 1 reply; 6+ messages in thread
From: Eli Barzilay @ 2010-04-04 22:33 UTC (permalink / raw)
To: Junio C Hamano; +Cc: git
On Apr 4, Junio C Hamano wrote:
> Isn't this the same as "%s%n%+b"?
The problem with that is that it wraps the first paragraph. So it's
fine as long as it's always used as a subject line.
(I'm migrating a project to git, and some people will never remember
to do that.)
--
((lambda (x) (x x)) (lambda (x) (x x))) Eli Barzilay:
http://barzilay.org/ Maze is Life!
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Re: [PATCH] Add `%B' in format strings for raw commit body in `git log' and friends
2010-04-04 22:33 ` Eli Barzilay
@ 2010-04-05 1:30 ` Junio C Hamano
2010-04-05 6:06 ` Eli Barzilay
0 siblings, 1 reply; 6+ messages in thread
From: Junio C Hamano @ 2010-04-05 1:30 UTC (permalink / raw)
To: Eli Barzilay; +Cc: git
Eli Barzilay <eli@barzilay.org> writes:
> On Apr 4, Junio C Hamano wrote:
>> Isn't this the same as "%s%n%+b"?
>
> The problem with that is that it wraps the first paragraph. So it's
> fine as long as it's always used as a subject line.
>
> (I'm migrating a project to git, and some people will never remember
> to do that.)
Ok, but then "rev-list --pretty=format:%B" would not be as a good tool for
migration to begin with (imagine a log message that begins with "commit"),
compared to say "rev-list --pretty=raw".
It also feels a bit funny to list %B that doesn't do the paragraph
pretty-printing in pretty-formats.txt documentation ;-) but that is not an
objection.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Re: [PATCH] Add `%B' in format strings for raw commit body in `git log' and friends
2010-04-05 1:30 ` Junio C Hamano
@ 2010-04-05 6:06 ` Eli Barzilay
0 siblings, 0 replies; 6+ messages in thread
From: Eli Barzilay @ 2010-04-05 6:06 UTC (permalink / raw)
To: Junio C Hamano; +Cc: git
On Apr 4, Junio C Hamano wrote:
> Eli Barzilay <eli@barzilay.org> writes:
>
> > On Apr 4, Junio C Hamano wrote:
> >> Isn't this the same as "%s%n%+b"?
> >
> > The problem with that is that it wraps the first paragraph. So it's
> > fine as long as it's always used as a subject line.
> >
> > (I'm migrating a project to git, and some people will never remember
> > to do that.)
>
> Ok, but then "rev-list --pretty=format:%B" would not be as a good
> tool for migration to begin with (imagine a log message that begins
> with "commit"), compared to say "rev-list --pretty=raw".
Ah, sorry -- I phrased that poorely. We're doing the actual migration
with git-svn, so that's not the problem. The relation to migrating is
that people are not used to using the first paragraph as a subject
line, which means that there will be commit messages that look like:
Fix foo, which means:
1. Do this,
2. Do that,
3. Remove bar.
and such messages come out really ugly. If a project is well behaved
in regards to commit messages always having a subject line, then
there's no big problem, of course. (It can be a little worse if I
have scripts that look for lines with a specific format like commands
for a bug tracking system.)
> It also feels a bit funny to list %B that doesn't do the paragraph
> pretty-printing in pretty-formats.txt documentation ;-) but that is
> not an objection.
(Well, my understanding was that the pretty formats is about the
format strings in general.)
--
((lambda (x) (x x)) (lambda (x) (x x))) Eli Barzilay:
http://barzilay.org/ Maze is Life!
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2010-04-05 6:06 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-03-25 2:51 [PATCH] Add `%B' in format strings for raw commit body in `git log' and friends Eli Barzilay
2010-04-04 21:37 ` Eli Barzilay
2010-04-04 22:17 ` Junio C Hamano
2010-04-04 22:33 ` Eli Barzilay
2010-04-05 1:30 ` Junio C Hamano
2010-04-05 6:06 ` Eli Barzilay
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).