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

$Revision$ keyword replacement?

From
SBSanti Béjar <sbejar@gmail.com>
Date
Nov 22, 2005, 17:36 UTC
Message-ID
<871x18h9ee.fsf@ifae.es>
Hello:
        I'm looking for a $Revision$ replacement. I know, in git all that
        matters are the contents. So the equivalent in git could be:
        How similar this file is to the file $path in these commit(s)?
        What I use now is an ugly shell script (as you might known
        I'm not a C programer), see the attatchment.
        So I get:

311bf741d16ee5d0166639a4fafd9194e504aad3:R094 introduccio.tex sim.tex b764ee049289f5157238596cccc7a4e15f23896c:R094 introduccio.tex sim.tex f293e1ab1dfb7ff60cb269ed5b18f9222099a752:R098 introduccio.tex sim.tex f14c4b2d6799354d376e2026a5b7a85ccce48284:R098 introduccio.tex sim.tex 183af55606310218ca0e9a735dad0827acea7910:R098 introduccio.tex sim.tex 73fd2531cce3db0ca804577fb29f87f413fc4563:R096 introduccio.tex sim.tex

        Do you know any other (or better :) way to do it?
        Thanks
        Santi

#!/bin/sh ## ## find-sim finds the similarity of one file with the files in the ## selected commits ## ## The arguments are: ## $1 - file to compare ## $n n>2 - arguments for git-rev-list to select the commits ## . git-sh-setup || die "Not a git archive."

[ ! -e $1 ] && exit 1 file=$1 shift

case $GIT_DIR in
    /*)
	GIT_DIR_ORIG=$GIT_DIR;;
    *)
	GIT_DIR_ORIG=$PWD/$GIT_DIR
esac

tmp=`mktemp -t -d git-find-sim.XXXXXXX` GIT_DIR_TEMP=$tmp mkdir -p $GIT_DIR_TEMP/objects/info [ -e $GIT_DIR_ORIG/objects/info/alternates ] && cp $GIT_DIR_ORIG/objects/info/alternates $GIT_DIR_TEMP/objects/info/alternates echo $GIT_DIR_ORIG/objects >> $GIT_DIR_TEMP/objects/info/alternates export GIT_DIR=$GIT_DIR_TEMP

trap "rm -rf $tmp" 0 1 2 3 15

git update-index --add $file || exit 1 tree=`git-write-tree`

rev_arg=`GIT_DIR=$GIT_DIR_ORIG git-rev-parse --default HEAD --revs-only "$@"`
revs=`GIT_DIR=$GIT_DIR_ORIG git-rev-list $rev_arg`
for i in $revs; do
    git diff-tree --name-status $i -C $tree | grep $file |
    sed "s/^/$i:/"
done
Next: Junio C Hamano
Message 1 of 4 in “$Revision$ keyword replacement?”
  1. Santi BéjarNov 22, 2005
  2. finding similar blobs (was: Re: $Revision$ keyword replacement?Junio C Hamano, Nov 22, 2005
  3. Santi BejarNov 22, 2005
  4. Junio C HamanoNov 22, 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.