Mercurial > hg
comparison hgeditor @ 1605:428e0a9c9968
merge with mainline
author | Vadim Gelfer <vadim.gelfer@gmail.com> |
---|---|
date | Wed, 28 Dec 2005 07:22:26 -0800 |
parents | f93fde8f5027 |
children | 20b621154e17 |
comparison
equal
deleted
inserted
replaced
1604:da3f1121721b | 1605:428e0a9c9968 |
---|---|
1 #!/bin/sh | 1 #!/bin/sh |
2 # | 2 # |
3 # This is an example of using HGEDITOR to automate the signing of | 3 # This is an example of using HGEDITOR to create of diff to review the |
4 # commits and so on. | 4 # changes while commiting. |
5 | |
6 # change this to one to turn on GPG support | |
7 SIGN=0 | |
8 | 5 |
9 # If you want to pass your favourite editor some other parameters | 6 # If you want to pass your favourite editor some other parameters |
10 # only for Mercurial, modify this: | 7 # only for Mercurial, modify this: |
11 case "${EDITOR}" in | 8 case "${EDITOR}" in |
12 "") | 9 "") |
41 grep '^HG: changed' "$1" | cut -b 13- | while read changed; do | 38 grep '^HG: changed' "$1" | cut -b 13- | while read changed; do |
42 hg diff "$changed" >> "$HGTMP/diff" | 39 hg diff "$changed" >> "$HGTMP/diff" |
43 done | 40 done |
44 ) | 41 ) |
45 | 42 |
46 echo > "$HGTMP/msg" | 43 cat "$1" > "$HGTMP/msg" |
47 if [ "$SIGN" == "1" ]; then | |
48 MANIFEST=`grep '^HG: manifest hash' "$1" | cut -b 19-` | |
49 echo -e "\nmanifest hash: $MANIFEST" >> "$HGTMP/msg" | |
50 fi | |
51 grep -vE '^(HG: manifest hash .*)?$' "$1" >> "$HGTMP/msg" | |
52 | 44 |
53 CHECKSUM=`md5sum "$HGTMP/msg"` | 45 CHECKSUM=`md5sum "$HGTMP/msg"` |
54 if [ -s "$HGTMP/diff" ]; then | 46 if [ -s "$HGTMP/diff" ]; then |
55 $EDITOR "$HGTMP/msg" "$HGTMP/diff" || exit $? | 47 $EDITOR "$HGTMP/msg" "$HGTMP/diff" || exit $? |
56 else | 48 else |
57 $EDITOR "$HGTMP/msg" || exit $? | 49 $EDITOR "$HGTMP/msg" || exit $? |
58 fi | 50 fi |
59 echo "$CHECKSUM" | md5sum -c >/dev/null 2>&1 && exit 13 | 51 echo "$CHECKSUM" | md5sum -c >/dev/null 2>&1 && exit 13 |
60 | 52 |
61 if [ "$SIGN" == "1" ]; then | 53 mv "$HGTMP/msg" "$1" |
62 { | |
63 head -n 1 "$HGTMP/msg" | |
64 echo | |
65 grep -v "^HG:" "$HGTMP/msg" | gpg -t -a -u "${HGUSER}" --clearsign | |
66 } > "$HGTMP/msg.gpg" && mv "$HGTMP/msg.gpg" "$1" | |
67 else | |
68 mv "$HGTMP/msg" "$1" | |
69 fi | |
70 | 54 |
71 exit $? | 55 exit $? |