Mercurial > hg > mercurial-crew-with-dirclash
annotate hgeditor @ 664:e1fbc1982372
hgeditor: Simplify manifest hash adding
# HG changeset patch
# User Radoslaw "AstralStorm" Szkodzinski <astralstorm@gorzow.mm.pl>
# Node ID be12687d4bf0ce16c4207bef85c188de66efbf53
# Parent 341d27f865903223f8bf12382e3596167228a1c1
hgeditor: Simplify manifest hash adding
I hope no one will miss the colon.
author | Radoslaw "AstralStorm" Szkodzinski <astralstorm@gorzow.mm.pl> |
---|---|
date | Sun, 10 Jul 2005 16:00:30 -0800 |
parents | 562404de61fb |
children | 40fd5722c669 |
rev | line source |
---|---|
544
3d4d5f2aba9a
Remove bashisms and use /bin/sh instead of /bin/bash.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
484
diff
changeset
|
1 #!/bin/sh |
186 | 2 # |
3 # This is an example of using HGEDITOR to automate the signing of | |
4 # commits and so on. | |
5 | |
348
442eb02cf870
Improved hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
280
diff
changeset
|
6 T1=""; T2="" |
442eb02cf870
Improved hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
280
diff
changeset
|
7 cleanup_exit() { |
442eb02cf870
Improved hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
280
diff
changeset
|
8 rm -f "$T1" "$T2" |
442eb02cf870
Improved hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
280
diff
changeset
|
9 exit $1 |
442eb02cf870
Improved hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
280
diff
changeset
|
10 } |
442eb02cf870
Improved hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
280
diff
changeset
|
11 |
442eb02cf870
Improved hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
280
diff
changeset
|
12 case "${EDITOR:=vi}" in |
442eb02cf870
Improved hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
280
diff
changeset
|
13 emacs) |
442eb02cf870
Improved hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
280
diff
changeset
|
14 EDITOR="$EDITOR -nw" |
442eb02cf870
Improved hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
280
diff
changeset
|
15 ;; |
442eb02cf870
Improved hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
280
diff
changeset
|
16 gvim|vim) |
442eb02cf870
Improved hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
280
diff
changeset
|
17 EDITOR="$EDITOR -f -o" |
442eb02cf870
Improved hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
280
diff
changeset
|
18 ;; |
442eb02cf870
Improved hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
280
diff
changeset
|
19 esac |
442eb02cf870
Improved hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
280
diff
changeset
|
20 |
442eb02cf870
Improved hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
280
diff
changeset
|
21 if grep -q "^HG: merge resolve" "$1" ; then |
186 | 22 # we don't sign merges |
348
442eb02cf870
Improved hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
280
diff
changeset
|
23 exec $EDITOR "$1" |
186 | 24 else |
348
442eb02cf870
Improved hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
280
diff
changeset
|
25 T1=`mktemp`; T2=`mktemp` |
442eb02cf870
Improved hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
280
diff
changeset
|
26 |
664
e1fbc1982372
hgeditor: Simplify manifest hash adding
Radoslaw "AstralStorm" Szkodzinski <astralstorm@gorzow.mm.pl>
parents:
663
diff
changeset
|
27 # Add manifest hash in order to sign whole repository state. |
e1fbc1982372
hgeditor: Simplify manifest hash adding
Radoslaw "AstralStorm" Szkodzinski <astralstorm@gorzow.mm.pl>
parents:
663
diff
changeset
|
28 # Remove HG: prefix, as we want that to be stored. |
e1fbc1982372
hgeditor: Simplify manifest hash adding
Radoslaw "AstralStorm" Szkodzinski <astralstorm@gorzow.mm.pl>
parents:
663
diff
changeset
|
29 grep '^HG: manifest hash' "$1" | cut -b 5- >> "$T1" |
e1fbc1982372
hgeditor: Simplify manifest hash adding
Radoslaw "AstralStorm" Szkodzinski <astralstorm@gorzow.mm.pl>
parents:
663
diff
changeset
|
30 # Add all other state information |
e1fbc1982372
hgeditor: Simplify manifest hash adding
Radoslaw "AstralStorm" Szkodzinski <astralstorm@gorzow.mm.pl>
parents:
663
diff
changeset
|
31 grep -v '^HG: manifest hash' "$1" >> "$T1" |
475
ab53998b9dcd
Fixed diff generation in hgeditor if a list of files is given to hg commit.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
350
diff
changeset
|
32 ( |
ab53998b9dcd
Fixed diff generation in hgeditor if a list of files is given to hg commit.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
350
diff
changeset
|
33 cd "`hg root`" |
ab53998b9dcd
Fixed diff generation in hgeditor if a list of files is given to hg commit.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
350
diff
changeset
|
34 grep '^HG: changed' "$1" | cut -b 13- | while read changed; do |
ab53998b9dcd
Fixed diff generation in hgeditor if a list of files is given to hg commit.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
350
diff
changeset
|
35 hg diff "$changed" >> "$T2" |
ab53998b9dcd
Fixed diff generation in hgeditor if a list of files is given to hg commit.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
350
diff
changeset
|
36 done |
ab53998b9dcd
Fixed diff generation in hgeditor if a list of files is given to hg commit.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
350
diff
changeset
|
37 ) |
348
442eb02cf870
Improved hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
280
diff
changeset
|
38 |
442eb02cf870
Improved hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
280
diff
changeset
|
39 CHECKSUM=`md5sum "$T1"` |
442eb02cf870
Improved hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
280
diff
changeset
|
40 $EDITOR "$T1" "$T2" || cleanup_exit $? |
663
562404de61fb
hgeditor: Fix some parameters to commands
Radoslaw "AstralStorm" Szkodzinski <astralstorm@gorzow.mm.pl>
parents:
547
diff
changeset
|
41 echo "$CHECKSUM" | md5sum -c --status && cleanup_exit 13 |
348
442eb02cf870
Improved hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
280
diff
changeset
|
42 { |
663
562404de61fb
hgeditor: Fix some parameters to commands
Radoslaw "AstralStorm" Szkodzinski <astralstorm@gorzow.mm.pl>
parents:
547
diff
changeset
|
43 head -n 1 "$T1" |
348
442eb02cf870
Improved hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
280
diff
changeset
|
44 echo |
663
562404de61fb
hgeditor: Fix some parameters to commands
Radoslaw "AstralStorm" Szkodzinski <astralstorm@gorzow.mm.pl>
parents:
547
diff
changeset
|
45 grep -v "^HG:" "$T1" | gpg -t -a -u "${HGUSER:-$EMAIL}" --clearsign |
348
442eb02cf870
Improved hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
280
diff
changeset
|
46 } > "$T2" && mv "$T2" "$1" |
442eb02cf870
Improved hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
280
diff
changeset
|
47 cleanup_exit $? |
186 | 48 fi |
348
442eb02cf870
Improved hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
280
diff
changeset
|
49 |