annotate hgeditor @ 766:b444a7e053f1

Get addremove to use new walk code. It is now more verbose than it used to be. If given file names, it prints nothing, as before. But if given patterns or nothing, it prints the names of the files it is operating on, to remove that air of mystery. It also now operates at or below the current directory.
author Bryan O'Sullivan <bos@serpentine.com>
date Fri, 22 Jul 2005 19:45:48 -0800
parents 3e73bf876f17
children 0c033ef053ab
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
9a2075c0b9b8 Add $HGEDITOR hook and example script
mpm@selenic.com
parents:
diff changeset
2 #
9a2075c0b9b8 Add $HGEDITOR hook and example script
mpm@selenic.com
parents:
diff changeset
3 # This is an example of using HGEDITOR to automate the signing of
9a2075c0b9b8 Add $HGEDITOR hook and example script
mpm@selenic.com
parents:
diff changeset
4 # commits and so on.
9a2075c0b9b8 Add $HGEDITOR hook and example script
mpm@selenic.com
parents:
diff changeset
5
684
4ccf3de52989 Turn off signing with hgeditor by default
Matt Mackall <mpm@selenic.com>
parents: 683
diff changeset
6 # change this to one to turn on GPG support
4ccf3de52989 Turn off signing with hgeditor by default
Matt Mackall <mpm@selenic.com>
parents: 683
diff changeset
7 SIGN=0
4ccf3de52989 Turn off signing with hgeditor by default
Matt Mackall <mpm@selenic.com>
parents: 683
diff changeset
8
348
442eb02cf870 Improved hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents: 280
diff changeset
9 T1=""; T2=""
442eb02cf870 Improved hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents: 280
diff changeset
10 cleanup_exit() {
442eb02cf870 Improved hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents: 280
diff changeset
11 rm -f "$T1" "$T2"
442eb02cf870 Improved hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents: 280
diff changeset
12 exit $1
442eb02cf870 Improved hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents: 280
diff changeset
13 }
442eb02cf870 Improved hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents: 280
diff changeset
14
666
0100a43788ca hgeditor: Remove EMAIL default for HGUSER, comment editor selection
Radoslaw "AstralStorm" Szkodzinski <astralstorm@gorzow.mm.pl>
parents: 665
diff changeset
15 # 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
16 # only for Mercurial, modify this:
348
442eb02cf870 Improved hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents: 280
diff changeset
17 case "${EDITOR:=vi}" in
442eb02cf870 Improved hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents: 280
diff changeset
18 emacs)
442eb02cf870 Improved hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents: 280
diff changeset
19 EDITOR="$EDITOR -nw"
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 gvim|vim)
442eb02cf870 Improved hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents: 280
diff changeset
22 EDITOR="$EDITOR -f -o"
442eb02cf870 Improved hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents: 280
diff changeset
23 ;;
442eb02cf870 Improved hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents: 280
diff changeset
24 esac
442eb02cf870 Improved hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents: 280
diff changeset
25
754
3e73bf876f17 Fixes and cleanups to hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents: 684
diff changeset
26 # Remove temporary files even if we get interrupted
3e73bf876f17 Fixes and cleanups to hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents: 684
diff changeset
27 trap "cleanup_exit 255" TERM KILL INT QUIT ABRT
3e73bf876f17 Fixes and cleanups to hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents: 684
diff changeset
28 T1=`mktemp`; T2=`mktemp`
3e73bf876f17 Fixes and cleanups to hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents: 684
diff changeset
29 (
3e73bf876f17 Fixes and cleanups to hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents: 684
diff changeset
30 cd "`hg root`"
3e73bf876f17 Fixes and cleanups to hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents: 684
diff changeset
31 grep '^HG: changed' "$1" | cut -b 13- | while read changed; do
3e73bf876f17 Fixes and cleanups to hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents: 684
diff changeset
32 hg diff "$changed" >> "$T2"
3e73bf876f17 Fixes and cleanups to hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents: 684
diff changeset
33 done
3e73bf876f17 Fixes and cleanups to hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents: 684
diff changeset
34 )
348
442eb02cf870 Improved hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents: 280
diff changeset
35
754
3e73bf876f17 Fixes and cleanups to hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents: 684
diff changeset
36 echo > "$T1"
3e73bf876f17 Fixes and cleanups to hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents: 684
diff changeset
37 if [ "$SIGN" == "1" ]; then
3e73bf876f17 Fixes and cleanups to hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents: 684
diff changeset
38 MANIFEST=`grep '^HG: manifest hash' "$1" | cut -b 19-`
3e73bf876f17 Fixes and cleanups to hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents: 684
diff changeset
39 echo -e "\nmanifest hash: $MANIFEST" >> "$T1"
3e73bf876f17 Fixes and cleanups to hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents: 684
diff changeset
40 fi
3e73bf876f17 Fixes and cleanups to hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents: 684
diff changeset
41 grep -vE '^(HG: manifest hash .*)?$' "$1" >> "$T1"
684
4ccf3de52989 Turn off signing with hgeditor by default
Matt Mackall <mpm@selenic.com>
parents: 683
diff changeset
42
754
3e73bf876f17 Fixes and cleanups to hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents: 684
diff changeset
43 CHECKSUM=`md5sum "$T1"`
3e73bf876f17 Fixes and cleanups to hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents: 684
diff changeset
44 $EDITOR "$T1" "$T2" || cleanup_exit $?
3e73bf876f17 Fixes and cleanups to hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents: 684
diff changeset
45 echo "$CHECKSUM" | md5sum -c 2>/dev/null && cleanup_exit 13
3e73bf876f17 Fixes and cleanups to hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents: 684
diff changeset
46
3e73bf876f17 Fixes and cleanups to hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents: 684
diff changeset
47 if [ "$SIGN" == "1" ]; then
3e73bf876f17 Fixes and cleanups to hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents: 684
diff changeset
48 {
3e73bf876f17 Fixes and cleanups to hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents: 684
diff changeset
49 head -n 1 "$T1"
3e73bf876f17 Fixes and cleanups to hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents: 684
diff changeset
50 echo
3e73bf876f17 Fixes and cleanups to hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents: 684
diff changeset
51 grep -v "^HG:" "$T1" | gpg -t -a -u "${HGUSER}" --clearsign
3e73bf876f17 Fixes and cleanups to hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents: 684
diff changeset
52 } > "$T2" && mv "$T2" "$1"
3e73bf876f17 Fixes and cleanups to hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents: 684
diff changeset
53 else
3e73bf876f17 Fixes and cleanups to hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents: 684
diff changeset
54 mv "$T1" "$1"
186
9a2075c0b9b8 Add $HGEDITOR hook and example script
mpm@selenic.com
parents:
diff changeset
55 fi
348
442eb02cf870 Improved hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents: 280
diff changeset
56
754
3e73bf876f17 Fixes and cleanups to hgeditor:
Thomas Arendsen Hein <thomas@intevation.de>
parents: 684
diff changeset
57 cleanup_exit $?