Mercurial > hg > mercurial-crew-with-dirclash
annotate hgeditor @ 668:d93f0b127b6a
Dont trap SIGHUP on the other OS
# HG changeset patch
# User Edouard Gomez <ed.gomez@free.fr>
# Node ID 34a547cb33fe515ef4cdc8ccd173546671253ae9
# Parent 8c89408a7154d2da94766e957a088407fd0fef93
Dont trap SIGHUP on the other OS
HG doesn't work anymore on the other OS since signals are trapped.
This is due to the fact that as explained in Python docs not all
signals are defined for all platforms, so python was complaning about
missing signal.SIGHUP.
author | Edouard Gomez <ed.gomez@free.fr> |
---|---|
date | Sun, 10 Jul 2005 16:02:39 -0800 |
parents | 0100a43788ca |
children | d6723636c172 |
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 |
666
0100a43788ca
hgeditor: Remove EMAIL default for HGUSER, comment editor selection
Radoslaw "AstralStorm" Szkodzinski <astralstorm@gorzow.mm.pl>
parents:
665
diff
changeset
|
12 # If you want to pass your favourite editor some other parameters |
0100a43788ca
hgeditor: Remove EMAIL default for HGUSER, comment editor selection
Radoslaw "AstralStorm" Szkodzinski <astralstorm@gorzow.mm.pl>
parents:
665
diff
changeset
|
13 # only for Mercurial, modify this: |
348
442eb02cf870
Improved hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
280
diff
changeset
|
14 case "${EDITOR:=vi}" in |
442eb02cf870
Improved hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
280
diff
changeset
|
15 emacs) |
442eb02cf870
Improved hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
280
diff
changeset
|
16 EDITOR="$EDITOR -nw" |
442eb02cf870
Improved hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
280
diff
changeset
|
17 ;; |
442eb02cf870
Improved hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
280
diff
changeset
|
18 gvim|vim) |
442eb02cf870
Improved hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
280
diff
changeset
|
19 EDITOR="$EDITOR -f -o" |
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 esac |
442eb02cf870
Improved hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
280
diff
changeset
|
22 |
442eb02cf870
Improved hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
280
diff
changeset
|
23 if grep -q "^HG: merge resolve" "$1" ; then |
186 | 24 # we don't sign merges |
348
442eb02cf870
Improved hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
280
diff
changeset
|
25 exec $EDITOR "$1" |
186 | 26 else |
665
40fd5722c669
hgeditor: Remove temporary files even if interrupted
Radoslaw "AstralStorm" Szkodzinski <astralstorm@gorzow.mm.pl>
parents:
664
diff
changeset
|
27 # Remove temporary files even if we get interrupted |
40fd5722c669
hgeditor: Remove temporary files even if interrupted
Radoslaw "AstralStorm" Szkodzinski <astralstorm@gorzow.mm.pl>
parents:
664
diff
changeset
|
28 trap "cleanup_exit 255" TERM KILL INT QUIT ABRT |
348
442eb02cf870
Improved hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
280
diff
changeset
|
29 T1=`mktemp`; T2=`mktemp` |
442eb02cf870
Improved hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
280
diff
changeset
|
30 |
664
e1fbc1982372
hgeditor: Simplify manifest hash adding
Radoslaw "AstralStorm" Szkodzinski <astralstorm@gorzow.mm.pl>
parents:
663
diff
changeset
|
31 # 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
|
32 # 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
|
33 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
|
34 # Add all other state information |
e1fbc1982372
hgeditor: Simplify manifest hash adding
Radoslaw "AstralStorm" Szkodzinski <astralstorm@gorzow.mm.pl>
parents:
663
diff
changeset
|
35 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
|
36 ( |
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 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
|
38 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
|
39 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
|
40 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
|
41 ) |
348
442eb02cf870
Improved hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
280
diff
changeset
|
42 |
442eb02cf870
Improved hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
280
diff
changeset
|
43 CHECKSUM=`md5sum "$T1"` |
442eb02cf870
Improved hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
280
diff
changeset
|
44 $EDITOR "$T1" "$T2" || cleanup_exit $? |
663
562404de61fb
hgeditor: Fix some parameters to commands
Radoslaw "AstralStorm" Szkodzinski <astralstorm@gorzow.mm.pl>
parents:
547
diff
changeset
|
45 echo "$CHECKSUM" | md5sum -c --status && cleanup_exit 13 |
348
442eb02cf870
Improved hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
280
diff
changeset
|
46 { |
663
562404de61fb
hgeditor: Fix some parameters to commands
Radoslaw "AstralStorm" Szkodzinski <astralstorm@gorzow.mm.pl>
parents:
547
diff
changeset
|
47 head -n 1 "$T1" |
348
442eb02cf870
Improved hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
280
diff
changeset
|
48 echo |
666
0100a43788ca
hgeditor: Remove EMAIL default for HGUSER, comment editor selection
Radoslaw "AstralStorm" Szkodzinski <astralstorm@gorzow.mm.pl>
parents:
665
diff
changeset
|
49 grep -v "^HG:" "$T1" | gpg -t -a -u "${HGUSER}" --clearsign |
348
442eb02cf870
Improved hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
280
diff
changeset
|
50 } > "$T2" && mv "$T2" "$1" |
442eb02cf870
Improved hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
280
diff
changeset
|
51 cleanup_exit $? |
186 | 52 fi |
348
442eb02cf870
Improved hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
280
diff
changeset
|
53 |