Implementing $Date$ substitution - problem with git status

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi!

I finally got around to moving my web site repository over from CVS to Git, and to not have to redo everything about how it is set up, I set up a filter that fakes CVS' handling of "$Date$" keywords. Since I cannot access any information about the file from the "smudge" filter, I set up a "clean" filter that edits the $Date$ token on "git add":

  #!/usr/bin/perl -wTp -i.bak
  if (/\$Date:?[^\$]*\$/)
  {
    my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime();
    my $now = sprintf("%04d-%02d-%02d %02d:%02d:%02d", $year + 1900,
                      $mon + 1, $mday, $hour, $min, $sec);
    s/\$Date:?[^\$]*\$/\$Date: ${now} \$/;
  }

In .gitattributes I have lines like:

  *.html filter=date crlf=true ident

and filter.date.clean is set to point to the script above in .git/config.

This works fine, except that I have some problems with files that I cannot get to be "clean" in git status. "git diff" shows only a difference in the "$Date$" token, which is different each time I run "git diff" (the "+" line shows the current time):

  diff --git a/.htaccess b/.htaccess
  index 2dfbc32..d8ac343 100644
  --- a/.htaccess
  +++ b/.htaccess
  @@ -2,7 +2,7 @@
   # -----------------------------------------------------

   # $Id$
  -# $Date: 2009-08-09 19:52:30 $
  +# $Date: 2009-08-09 20:31:56 $
  [...]

Strangely, the $Id$ line above (which is handled by me adding the "ident" attribute to all text files), does not exhibit the same problem.

Doing "git reset --hard" or "git checkout master filename" does not help, the file is still believed to be modified by git.


Does anyone know if there is a way to get this to work, or am I screwed for trying to do things I'm not supposed to? :-)

--
\\// Peter - http://www.softwolves.pp.se/
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]