Show More
@@ -3,19 +3,40 b'' | |||||
3 | # This is an example of using HGEDITOR to automate the signing of |
|
3 | # This is an example of using HGEDITOR to automate the signing of | |
4 | # commits and so on. |
|
4 | # commits and so on. | |
5 |
|
5 | |||
6 | MANIFEST=`grep '^HG: manifest hash' $1 | cut -b 19-` |
|
6 | T1=""; T2="" | |
7 | if grep -q "^HG: merge resolve" $1 ; then |
|
7 | cleanup_exit() { | |
|
8 | rm -f "$T1" "$T2" | |||
|
9 | exit $1 | |||
|
10 | } | |||
|
11 | ||||
|
12 | case "${EDITOR:=vi}" in | |||
|
13 | emacs) | |||
|
14 | EDITOR="$EDITOR -nw" | |||
|
15 | ;; | |||
|
16 | gvim|vim) | |||
|
17 | EDITOR="$EDITOR -f -o" | |||
|
18 | ;; | |||
|
19 | esac | |||
|
20 | ||||
|
21 | if grep -q "^HG: merge resolve" "$1" ; then | |||
8 | # we don't sign merges |
|
22 | # we don't sign merges | |
9 | $EDITOR $1 |
|
23 | exec $EDITOR "$1" | |
10 | else |
|
24 | else | |
11 | T=`mktemp` |
|
25 | T1=`mktemp`; T2=`mktemp` | |
12 |
|
|
26 | MANIFEST=`grep '^HG: manifest hash' "$1" | cut -b 19-` | |
13 | # show a diff so writing commit comments is easier |
|
27 | ||
14 | hg diff $CHANGED >> $T |
|
28 | echo -e "\n\nmanifest hash: $MANIFEST" >> "$T1" | |
15 | echo -e "\n\nmanifest hash: $MANIFEST" > $1 |
|
29 | grep -vE '^(HG: manifest hash .*)?$' "$1" >> "$T1" | |
16 | emacs -nw $T $1 |
|
30 | hg diff >> "$T2" | |
17 | head -1 $1 > $T |
|
31 | ||
18 | echo >> $T |
|
32 | CHECKSUM=`md5sum "$T1"` | |
19 | gpg -a -u $HGUSER -o - --clearsign $1 >> $T |
|
33 | $EDITOR "$T1" "$T2" || cleanup_exit $? | |
20 | mv $T $1 |
|
34 | echo "$CHECKSUM" | md5sum -c 2>/dev/null && cleanup_exit 0 | |
|
35 | { | |||
|
36 | head -1 "$T1" | |||
|
37 | echo | |||
|
38 | grep -v "^HG:" "$T1" | gpg -a -u "${HGUSER:-$EMAIL}" --clearsign | |||
|
39 | } > "$T2" && mv "$T2" "$1" | |||
|
40 | cleanup_exit $? | |||
21 | fi |
|
41 | fi | |
|
42 |
@@ -81,8 +81,8 b' def show_changeset(ui, repo, rev=0, chan' | |||||
81 | changerev = filelog.linkrev(filenode) |
|
81 | changerev = filelog.linkrev(filenode) | |
82 | changenode = changenode or changelog.node(changerev) |
|
82 | changenode = changenode or changelog.node(changerev) | |
83 | else: |
|
83 | else: | |
|
84 | log = changelog | |||
84 | changerev = rev |
|
85 | changerev = rev | |
85 | log = changelog |
|
|||
86 | if changenode is None: |
|
86 | if changenode is None: | |
87 | changenode = changelog.node(changerev) |
|
87 | changenode = changelog.node(changerev) | |
88 | elif not changerev: |
|
88 | elif not changerev: | |
@@ -94,7 +94,6 b' def show_changeset(ui, repo, rev=0, chan' | |||||
94 | return |
|
94 | return | |
95 |
|
95 | |||
96 | changes = changelog.read(changenode) |
|
96 | changes = changelog.read(changenode) | |
97 | description = changes[4].strip().splitlines() |
|
|||
98 |
|
97 | |||
99 | parents = [(log.rev(parent), hg.hex(parent)) |
|
98 | parents = [(log.rev(parent), hg.hex(parent)) | |
100 | for parent in log.parents(node) |
|
99 | for parent in log.parents(node) | |
@@ -117,13 +116,14 b' def show_changeset(ui, repo, rev=0, chan' | |||||
117 | ui.status("date: %s\n" % time.asctime( |
|
116 | ui.status("date: %s\n" % time.asctime( | |
118 | time.localtime(float(changes[2].split(' ')[0])))) |
|
117 | time.localtime(float(changes[2].split(' ')[0])))) | |
119 | ui.note("files: %s\n" % " ".join(changes[3])) |
|
118 | ui.note("files: %s\n" % " ".join(changes[3])) | |
|
119 | description = changes[4].strip() | |||
120 | if description: |
|
120 | if description: | |
121 | if ui.verbose: |
|
121 | if ui.verbose: | |
122 | ui.status("description:\n") |
|
122 | ui.status("description:\n") | |
123 |
ui.status( |
|
123 | ui.status(description) | |
124 | ui.status("\n") |
|
124 | ui.status("\n\n") | |
125 | else: |
|
125 | else: | |
126 | ui.status("summary: %s\n" % description[0]) |
|
126 | ui.status("summary: %s\n" % description.splitlines()[0]) | |
127 | ui.status("\n") |
|
127 | ui.status("\n") | |
128 |
|
128 | |||
129 | def help(ui, cmd=None): |
|
129 | def help(ui, cmd=None): |
General Comments 0
You need to be logged in to leave comments.
Login now