[PATCH] Improve git-rev-list --header output

Subsystems: the rest

DORMANTno replies

2 messages, 2 authors, 2016-06-15 · open the first message on its own page

[PATCH] Improve git-rev-list --header output

From: Petr Baudis <hidden>
Date: 2016-06-15 22:41:59

Indent the commit header by four spaces like in the --pretty output;
the commit ID is still shown unaligned. This makes the --header output
actually usable for further processing.

Signed-off-by: Petr Baudis <redacted>

---
commit 7c99469f9820f41138e1bfe1a0f416fa6b56d09d
tree ea9091df859f279e920ec0f8ca9fdc8d9d307e33
parent 441258d08a4bc12121c998e0aa112c8453eb15fc
author Petr Baudis [off-list ref] Sun, 05 Jun 2005 15:24:25 +0200
committer Petr Baudis [off-list ref] Sun, 05 Jun 2005 15:24:25 +0200

 rev-list.c |   26 ++++++++++++++++++++++++--
 1 files changed, 24 insertions(+), 2 deletions(-)
diff --git a/rev-list.c b/rev-list.c
--- a/rev-list.c
+++ b/rev-list.c
@@ -35,12 +35,34 @@ static void show_commit(struct commit *c
 	putchar('\n');
 	if (verbose_header) {
 		const char *buf = commit->buffer;
+		static char pretty_header[16384];
 		if (pretty_print) {
-			static char pretty_header[16384];
 			pretty_print_commit(commit->buffer, ~0, pretty_header, sizeof(pretty_header));
 			buf = pretty_header;
+		} else {
+			/* Indent the commit contents by four chars */
+			char *buf2 = pretty_header;
+			char *eol;
+			do {
+				int len = -1;
+
+				eol = strchr(buf, '\n');
+				if (eol || *buf) {
+					strcpy(buf2, "    ");
+					buf2 += 4;
+				}
+				if (eol) {
+					eol++;
+					len = eol - buf;
+					strncpy(buf2, buf, len);
+					buf2 += len;
+					buf = eol;
+				} else {
+					strcpy(buf2, buf);
+				}
+			} while (eol);
 		}
-		printf("%s%c", buf, hdr_termination);
+		printf("%s%c", pretty_header, hdr_termination);
 	}
 }
 
|
-- 
				Petr "Pasky" Baudis
Stuff: http://pasky.or.cz/
C++: an octopus made by nailing extra legs onto a dog. -- Steve Taylor

Re: [PATCH] Improve git-rev-list --header output

From: Linus Torvalds <torvalds@osdl.org>
Date: 2016-06-15 22:41:59


On Sun, 5 Jun 2005, Petr Baudis wrote:
Indent the commit header by four spaces like in the --pretty output;
the commit ID is still shown unaligned. This makes the --header output
actually usable for further processing.
I'm actually going to do a few different "header formats", and have 
pretty_print_commit() able to switch between them. IOW, this would count 
as just one form of pretty-printing.

I want to have the "dense" format, which has only the author and the top
line(s) of the description (stop at the first empty line), and a "raw"  
format, which has all the parent information etc (ie this one).

		Linus
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help