Hopp over introduksjonen.

UlveBlogg

Betraktninger fra en svenske i Norge.

Her finner du min lille rableblokk hvor jeg skriver ting jeg tenker på.

I min blogg skriver jeg om livets små og store urettferdigheter, om søppelpost, veterandatamaskiner, brettspill, nordmenn, aktuelle og uaktuelle hendelser, teknikk og hva som nå faller meg inn – med andre ord et eneste stort sammensurium. Alle meninger som blir beskrevet er naturligvis mine egne, og alle likheter med levende personer er selvfølgelig med hensikt.

Disse sidene bruker automatisk språkvalg, og hvis du heller ønsker å lese på engelsk kan du isteden velge denne siden. Se hjelpen for info om hvordan du får din nettleser til å velge riktig språk automatisk. En månedsoversikt er også tilgjengelig.

© Opphavsrett til all tekst og bilder eies av Peter Krefting når ikke annet er angitt. Mer om forfatteren.

Expandera nyckelord i Git

Publisert: Torsdag 2009-08-13. Ikke tilgjengelig på norsk (oversett automatiskt).

Ett vanligt migreringsproblemen med Git är att Git inte har stöd för expandering av RCS-liknande nyckelord. Flera andra system har stöd för att till exempel sätta in den senaste incheckningstiden i ett dokument genom att man lägger in en platshållare på formen $Date$. Git gör det inte, och man anser inte heller att man skall göra det.

Jag förstår argumenten de framför och i de allra flesta fall kan jag leva utan den här funktionen. Men just när det gäller att ha min vävplats i Git så vill jag gärna ha den. De allra flesta av mina sidor har en datumstämpling nederst på sidan som beskriver när sidan sist uppdaterades och jag är allt för glömsk för att komma ihåg att uppdatera den manuellt. Jag försökte mig först på en metod som använde sig av filter, men det fungerade inte så bra. Efter en del testande så har jag dock löst det genom att använda mig av en så kallad pre-commit-hake:

#!/bin/bash -e

# Find base commit
if git-rev-parse --verify HEAD >/dev/null 2>&1
then
  against=HEAD
else
  # Initial commit: diff against an empty tree object
  against=4b825dc642cb6eb9a060e54bf8d69288fbee4904
fi

# Set up Date substitution
export NOW=$(date +"%Y-%m-%d %H:%M:%S")
for file in $(git diff-index --cached --diff-filter=AM --name-only $against); do
  if git check-attr datereplace -- "$file" | grep 'datereplace: true' > /dev/null; then
    perl -w -i.bak -e 'my $now = $ENV{"NOW"};
$now =~ s/[^-:0-9 ]//g;
while (<>)
{
 if (/\$Date:?[^\$]*\$/)
 {
   s/\$Date:?[^\$]*\$/\$Date: ${now} \$/;
 }
 print
}' "$file"
    git update-index --add "$file"
  fi
done

exit 0

Det kan helt säkert göras snyggare, men det här fungerar tillfredsställande för det jag vill använda det till, så jag är nöjd med det tills vidare.

Kategorier: programvare. Del: Facebook, Google+, e-post

Kommentarer

Artikkelen er mer enn 14 dager gammel og er derfor ikke mulig å kommentere.

Forbehold: Opphavsrett for hver kommentar tilhører forfatterne. Eieren av nettstedet tar ikke ansvar for innhold i kommentarer. Upassende kommentarer blir fjernet.

  • Datum: 2009-08-13 19.27.14 CEST
  • Namn: Anders Carlsson
  • Sänt från: ******************.business.telia.com

Du kanske också skulle kunna frilansa på Utbildningsradion?

-"Välj den fil du vill kopiera och skriv sedan chmod ifs /dev/null, vc. Vc ska sedan pipa till vg print $1, fpath ls -la $param, exec tempfile trap. Här kommer processen att forka, och child kommer sen att gå vidare till rm -f, optparse rmm typeset l1 -r .current, scanf grep .sh .dflag. Sen forkar processen igen och skickar resultatet till en pipe, som du sedan kopplar till den fil som du vill kopiera!"

(få se om ditt antispamfilter släpper igenom det här?)

  • Datum: 2009-08-14 10.02.16 CEST
  • Namn: Peter Krefting
  • Sänt från: *******.opera.com

Jag har tänkt lyfta ut de miniguider jag skrivit här till en egen avdelning på vävplatsen, men som allt så kräver det att jag sätter mig ner och faktiskt gör det :-)

| | Siste artikler | Denne måneden | Alle måneder og kategorier

Denne siden leses best på Internett.

peter@softwolves.pp.se