git/list[1] front-page[2] threads[3] people[4] search[5] about
 

how about this as a basis for git-annotate?

From
LLlode leroy <lode_leroy@hotmail.com>
Date
Jun 30, 2005, 13:55 UTC
Message-ID
<BAY22-F40C3079B41F242AEB407E1FFE30@phx.gbl>
#!/bin/bash

file="$1" anno="$file.anno" prev="" export GIT_DIFF_OPTS=-u0

rm $anno touch $anno

revs=`git-rev-list HEAD | tac`
for rev in $revs; do
	if [ ! -z "$prev" ]; then
		git-diff-tree -p $prev $rev $file \
		| sed 	-e "/^--- /p" \
			-e "/^+++ /p" \
			-e "/^--- /d" \
			-e "/^+++ /d" \
			-e "s/^-/-$prev /g" \
			-e "s/^+/+$rev /g" | patch $anno
	fi
	prev=$rev
done
* gives a warning when the diff is empty
* has a problem with "\ No newline at end of file"

What I tried to do is to reconstruct the file from the diffs, and prefixing each line with the sha1 of the revision.

After further testing, I see that the implementation I provided does not work, because the context is not necessarily from the previous version, but from /a/ previous version. Still the idea should work. So patch needs to ignore the sha1 of the revision. Maybe git-apply can be modified to do this...?

Next: Junio C Hamano
Message 1 of 2 in “how about this as a basis for git-annotate?”
  1. lode leroyJun 30, 2005
  2. Junio C HamanoJun 30, 2005

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.