46
Vývoj / Re:Obdoba RCS $Log$ v gitu
« kdy: 17. 03. 2017, 18:09:42 »K radám ostatních připojím že by mohlo dobré použít ty git hooks, aby po commitu/checkoutu vytvořili soubor který bude obsahovat hash commitu, případně název větve. Ten soubor by nebyl přímo součástí commitu (.gitignore), a případně by ho bylo možno includovat z těch skriptů pokud bys to potřeboval vypsat skriptem. Mělo by to být jednodušší něž použití filtrů a s obdobným výsledkem.
Len ci bude git commit hook naozaj jednoduchsi ako tieto dva smudge/clean filtre?
Filtre menia placeholder @VER@ na @VER: 4987f2d@ tak, ze sa vypali priamo do skriptu pri checkout-e.
(Navyse clean filter sa da vynechat, pokial bude repo na jednotlivych strojoch namiesto fast-forward mergu hard resetovane na remote tracking upstream, t.j. git fetch && git reset --hard @{u} && git checkout -f)Kód: [Vybrat]Overenie funkcnosti$ echo "Zaciatok definicie filtrov"
Zaciatok definicie filtrov
$ git config filter.verzia.smudge 'sed -e "/@VER@/{ s/@VER@/@VER: %h@/g; s/.*/git log --pretty=\"&\" -1/e }"'
$ git config filter.verzia.clean 'sed -e "s/@VER: [[:alnum:]]\{7\}@/@VER@/g"'
$ echo "*.py filter=verzia" >> .gitattributes
$ echo "Koniec definicie filtrov"
Koniec definicie filtrovKód: [Vybrat]$ echo -e "# Verzia @VER@\nprint 'Tato verzia je @VER@'" > example.py
$ git add .
$ git commit -m 'Pridane filtre pre python'
$ rm example.py
$ git checkout example.py
$ python example.py
Tato verzia je @VER: 4987f2d@
$ cat example.py
# Verzia @VER: 4987f2d@
print 'Tato verzia je @VER: 4987f2d@'
$ git status -s
$ echo "Clean filter funguje"
Clean filter funguje
moc pěkné a jednodušší něž bych čekal
