git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Lars Hjemli" <lh@elementstorage.no>
To: "Peter Karlsson" <peter@softwolves.pp.se>
Cc: git@vger.kernel.org, "Johannes Schindelin" <Johannes.Schindelin@gmx.de>
Subject: Re: RCS keyword expansion
Date: Fri, 12 Oct 2007 13:21:58 +0200	[thread overview]
Message-ID: <8c5c35580710120421x130c5d7dt6c9d9b5a55313180@mail.gmail.com> (raw)
In-Reply-To: <Pine.LNX.4.64.0710121144001.3682@ds9.cixit.se>

On 10/12/07, Peter Karlsson <peter@softwolves.pp.se> wrote:
> Johannes said:
> > So why not go for the contents?  With CVS/SVN you only have the
> > chance to do that by date or version number. With git, we have a more
> > powerful way: we do it by a hash of the contents.
>
> Yes, but the hash if of "everything". I'm not interested in
> "everything" in this context, and I don't want to have a separate git
> repository for each file...

Try this:

$ echo 'File revision $Id$' > index.html
$ echo "*.html ident" > .gitattributes
$ git add index.html .gitattributes
$ git commit

>From now on, the '$Id' in index.html gets expanded to the SHA1 of the
content of index.html (not the commit SHA1) each time you checkout
(and removed when you commit)

If you still want 'last modified date', the closest thing in git is
'commit date' which you can also get for free:

$ echo 'Last commit: $Format:%cd$' > index.html
$ echo "*.html export-subst" > .gitattributes
$ git add index.html .gitattributes
$ git commit
$ git archive --prefix=test/ HEAD | tar -x
$ cat test/index.html

For all supported keywords, take a look at the 'git-log --pretty=format' option

--
larsh

  parent reply	other threads:[~2007-10-12 11:22 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-10-11 14:47 RCS keyword expansion Peter Karlsson
2007-10-11 15:02 ` Johannes Sixt
2007-10-11 15:09 ` Randal L. Schwartz
2007-10-11 15:59   ` Oliver Kullmann
2007-10-11 18:09     ` Alex Riesen
2007-10-11 20:47     ` Johannes Schindelin
2007-10-11 21:35       ` Sam Vilain
2007-10-12  5:26       ` Peter Karlsson
2007-10-12 10:02         ` Johannes Schindelin
2007-10-12 10:50           ` Peter Karlsson
2007-10-12 11:05             ` Johannes Sixt
2007-10-12 11:21             ` Lars Hjemli [this message]
2007-10-12 11:34             ` Johannes Schindelin
2007-10-15 14:03               ` Peter Karlsson
2007-10-15 14:28                 ` Johannes Schindelin
2007-10-12 12:57             ` Jan Hudec
2007-10-12 19:08         ` Salikh Zakirov
2007-10-12 22:42           ` Johannes Schindelin
2007-10-12 23:52             ` Zakirov Salikh
2007-10-11 17:55   ` Peter Karlsson
2007-10-11 19:21     ` Alex Riesen
2007-10-12  5:27       ` Peter Karlsson
2007-10-12 17:05         ` Barry Fishman
2007-10-12 17:44           ` Linus Torvalds
2007-10-12 17:51           ` Florian Weimer
2007-10-11 21:20     ` Sam Vilain
2007-10-11 19:16 ` Lars Hjemli

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=8c5c35580710120421x130c5d7dt6c9d9b5a55313180@mail.gmail.com \
    --to=lh@elementstorage.no \
    --cc=Johannes.Schindelin@gmx.de \
    --cc=git@vger.kernel.org \
    --cc=peter@softwolves.pp.se \
    /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 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).