Show More
@@ -4,12 +4,7 | |||||
4 | # |
|
4 | # | |
5 | # This software may be used and distributed according to the terms |
|
5 | # This software may be used and distributed according to the terms | |
6 | # of the GNU General Public License, incorporated herein by reference. |
|
6 | # of the GNU General Public License, incorporated herein by reference. | |
7 | # |
|
7 | '''allow graphing the number of lines changed per contributor''' | |
8 | # |
|
|||
9 | # Aliases map file format is simple one alias per line in the following |
|
|||
10 | # format: |
|
|||
11 | # |
|
|||
12 | # <alias email> <actual email> |
|
|||
13 |
|
8 | |||
14 | from mercurial.i18n import gettext as _ |
|
9 | from mercurial.i18n import gettext as _ | |
15 | from mercurial import mdiff, cmdutil, util, node |
|
10 | from mercurial import mdiff, cmdutil, util, node | |
@@ -137,7 +132,11 def gather_stats(ui, repo, amap, revs=No | |||||
137 | return stats |
|
132 | return stats | |
138 |
|
133 | |||
139 | def churn(ui, repo, **opts): |
|
134 | def churn(ui, repo, **opts): | |
140 |
|
|
135 | '''graphs the number of lines changed | |
|
136 | ||||
|
137 | The map file format used to specify aliases is fairly simple: | |||
|
138 | ||||
|
139 | <alias email> <actual email>''' | |||
141 |
|
140 | |||
142 | def pad(s, l): |
|
141 | def pad(s, l): | |
143 | if len(s) < l: |
|
142 | if len(s) < l: |
@@ -4,6 +4,7 | |||||
4 | # |
|
4 | # | |
5 | # This software may be used and distributed according to the terms |
|
5 | # This software may be used and distributed according to the terms | |
6 | # of the GNU General Public License, incorporated herein by reference. |
|
6 | # of the GNU General Public License, incorporated herein by reference. | |
|
7 | '''converting foreign VCS repositories to Mercurial''' | |||
7 |
|
8 | |||
8 | import convcmd |
|
9 | import convcmd | |
9 | from mercurial import commands |
|
10 | from mercurial import commands |
@@ -4,6 +4,7 | |||||
4 | # |
|
4 | # | |
5 | # This software may be used and distributed according to the terms |
|
5 | # This software may be used and distributed according to the terms | |
6 | # of the GNU General Public License, incorporated herein by reference. |
|
6 | # of the GNU General Public License, incorporated herein by reference. | |
|
7 | '''pulling, updating and merging in one command''' | |||
7 |
|
8 | |||
8 | from mercurial.i18n import _ |
|
9 | from mercurial.i18n import _ | |
9 | from mercurial.node import nullid, short |
|
10 | from mercurial.node import nullid, short |
@@ -4,6 +4,7 | |||||
4 | # |
|
4 | # | |
5 | # This software may be used and distributed according to the terms of |
|
5 | # This software may be used and distributed according to the terms of | |
6 | # the GNU General Public License, incorporated herein by reference. |
|
6 | # the GNU General Public License, incorporated herein by reference. | |
|
7 | '''show revision graphs in terminal windows''' | |||
7 |
|
8 | |||
8 | import os |
|
9 | import os | |
9 | import sys |
|
10 | import sys |
@@ -4,46 +4,45 | |||||
4 | # |
|
4 | # | |
5 | # This software may be used and distributed according to the terms |
|
5 | # This software may be used and distributed according to the terms | |
6 | # of the GNU General Public License, incorporated herein by reference. |
|
6 | # of the GNU General Public License, incorporated herein by reference. | |
7 | # |
|
7 | '''browsing the repository in a graphical way | |
8 | # The hgk extension allows browsing the history of a repository in a |
|
8 | ||
9 | # graphical way. It requires Tcl/Tk version 8.4 or later. (Tcl/Tk is |
|
9 | The hgk extension allows browsing the history of a repository in a | |
10 | # not distributed with Mercurial.) |
|
10 | graphical way. It requires Tcl/Tk version 8.4 or later. (Tcl/Tk is | |
11 | # |
|
11 | not distributed with Mercurial.) | |
12 | # hgk consists of two parts: a Tcl script that does the displaying and |
|
12 | ||
13 | # querying of information, and an extension to mercurial named hgk.py, |
|
13 | hgk consists of two parts: a Tcl script that does the displaying and | |
14 | # which provides hooks for hgk to get information. hgk can be found in |
|
14 | querying of information, and an extension to mercurial named hgk.py, | |
15 | # the contrib directory, and hgk.py can be found in the hgext |
|
15 | which provides hooks for hgk to get information. hgk can be found in | |
16 | # directory. |
|
16 | the contrib directory, and hgk.py can be found in the hgext directory. | |
17 | # |
|
17 | ||
18 |
|
|
18 | To load the hgext.py extension, add it to your .hgrc file (you have | |
19 |
|
|
19 | to use your global $HOME/.hgrc file, not one in a repository). You | |
20 |
|
|
20 | can specify an absolute path: | |
21 | # |
|
21 | ||
22 |
|
|
22 | [extensions] | |
23 |
|
|
23 | hgk=/usr/local/lib/hgk.py | |
24 | # |
|
24 | ||
25 |
|
|
25 | Mercurial can also scan the default python library path for a file | |
26 |
|
|
26 | named 'hgk.py' if you set hgk empty: | |
27 | # |
|
27 | ||
28 |
|
|
28 | [extensions] | |
29 |
|
|
29 | hgk= | |
30 | # |
|
30 | ||
31 |
|
|
31 | The hg view command will launch the hgk Tcl script. For this command | |
32 |
|
|
32 | to work, hgk must be in your search path. Alternately, you can | |
33 |
|
|
33 | specify the path to hgk in your .hgrc file: | |
34 | # |
|
34 | ||
35 |
|
|
35 | [hgk] | |
36 |
|
|
36 | path=/location/of/hgk | |
37 | # |
|
37 | ||
38 |
|
|
38 | hgk can make use of the extdiff extension to visualize revisions. | |
39 |
|
|
39 | Assuming you had already configured extdiff vdiff command, just add: | |
40 | # command, just add: |
|
40 | ||
41 | # |
|
41 | [hgk] | |
42 | # [hgk] |
|
42 | vdiff=vdiff | |
43 | # vdiff=vdiff |
|
43 | ||
44 | # |
|
44 | Revisions context menu will now display additional entries to fire | |
45 | # Revisions context menu will now display additional entries to fire |
|
45 | vdiff on hovered and selected revisions.''' | |
46 | # vdiff on hovered and selected revisions. |
|
|||
47 |
|
46 | |||
48 | import os |
|
47 | import os | |
49 | from mercurial import commands, util, patch, revlog, cmdutil |
|
48 | from mercurial import commands, util, patch, revlog, cmdutil |
@@ -1,6 +1,4 | |||||
1 | """ |
|
1 | """a mercurial extension for syntax highlighting in hgweb | |
2 | This is Mercurial extension for syntax highlighting in the file |
|
|||
3 | revision view of hgweb. |
|
|||
4 |
|
2 | |||
5 | It depends on the pygments syntax highlighting library: |
|
3 | It depends on the pygments syntax highlighting library: | |
6 | http://pygments.org/ |
|
4 | http://pygments.org/ |
@@ -1,68 +1,65 | |||||
1 |
|
|
1 | '''sending Mercurial changesets as a series of patch emails | |
2 | # of patch emails. |
|
2 | ||
3 | # |
|
3 | The series is started off with a "[PATCH 0 of N]" introduction, | |
4 | # The series is started off with a "[PATCH 0 of N]" introduction, |
|
4 | which describes the series as a whole. | |
5 | # which describes the series as a whole. |
|
5 | ||
6 | # |
|
6 | Each patch email has a Subject line of "[PATCH M of N] ...", using | |
7 | # Each patch email has a Subject line of "[PATCH M of N] ...", using |
|
7 | the first line of the changeset description as the subject text. | |
8 | # the first line of the changeset description as the subject text. |
|
8 | The message contains two or three body parts: | |
9 | # The message contains two or three body parts: |
|
9 | ||
10 | # |
|
10 | The remainder of the changeset description. | |
11 | # The remainder of the changeset description. |
|
11 | ||
12 | # |
|
12 | [Optional] If the diffstat program is installed, the result of | |
13 | # [Optional] If the diffstat program is installed, the result of |
|
13 | running diffstat on the patch. | |
14 | # running diffstat on the patch. |
|
14 | ||
15 | # |
|
15 | The patch itself, as generated by "hg export". | |
16 | # The patch itself, as generated by "hg export". |
|
16 | ||
17 | # |
|
17 | Each message refers to all of its predecessors using the In-Reply-To | |
18 | # Each message refers to all of its predecessors using the In-Reply-To |
|
18 | and References headers, so they will show up as a sequence in | |
19 | # and References headers, so they will show up as a sequence in |
|
19 | threaded mail and news readers, and in mail archives. | |
20 | # threaded mail and news readers, and in mail archives. |
|
20 | ||
21 | # |
|
21 | For each changeset, you will be prompted with a diffstat summary and | |
22 | # For each changeset, you will be prompted with a diffstat summary and |
|
22 | the changeset summary, so you can be sure you are sending the right changes. | |
23 | # the changeset summary, so you can be sure you are sending the right |
|
23 | ||
24 | # changes. |
|
24 | To enable this extension: | |
25 | # |
|
25 | ||
26 | # To enable this extension: |
|
26 | [extensions] | |
27 | # |
|
27 | hgext.patchbomb = | |
28 | # [extensions] |
|
28 | ||
29 | # hgext.patchbomb = |
|
29 | To configure other defaults, add a section like this to your hgrc file: | |
30 | # |
|
30 | ||
31 | # To configure other defaults, add a section like this to your hgrc |
|
31 | [email] | |
32 | # file: |
|
32 | from = My Name <my@email> | |
33 | # |
|
33 | to = recipient1, recipient2, ... | |
34 | # [email] |
|
34 | cc = cc1, cc2, ... | |
35 | # from = My Name <my@email> |
|
35 | bcc = bcc1, bcc2, ... | |
36 | # to = recipient1, recipient2, ... |
|
36 | ||
37 | # cc = cc1, cc2, ... |
|
37 | Then you can use the "hg email" command to mail a series of changesets | |
38 | # bcc = bcc1, bcc2, ... |
|
38 | as a patchbomb. | |
39 | # |
|
39 | ||
40 | # Then you can use the "hg email" command to mail a series of changesets |
|
40 | To avoid sending patches prematurely, it is a good idea to first run | |
41 | # as a patchbomb. |
|
41 | the "email" command with the "-n" option (test only). You will be | |
42 | # |
|
42 | prompted for an email recipient address, a subject an an introductory | |
43 | # To avoid sending patches prematurely, it is a good idea to first run |
|
43 | message describing the patches of your patchbomb. Then when all is | |
44 | # the "email" command with the "-n" option (test only). You will be |
|
44 | done, patchbomb messages are displayed. If PAGER environment variable | |
45 | # prompted for an email recipient address, a subject an an introductory |
|
45 | is set, your pager will be fired up once for each patchbomb message, so | |
46 | # message describing the patches of your patchbomb. Then when all is |
|
46 | you can verify everything is alright. | |
47 | # done, patchbomb messages are displayed. If PAGER environment variable |
|
47 | ||
48 | # is set, your pager will be fired up once for each patchbomb message, so |
|
48 | The "-m" (mbox) option is also very useful. Instead of previewing | |
49 | # you can verify everything is alright. |
|
49 | each patchbomb message in a pager or sending the messages directly, | |
50 | # |
|
50 | it will create a UNIX mailbox file with the patch emails. This | |
51 | # The "-m" (mbox) option is also very useful. Instead of previewing |
|
51 | mailbox file can be previewed with any mail user agent which supports | |
52 | # each patchbomb message in a pager or sending the messages directly, |
|
52 | UNIX mbox files, i.e. with mutt: | |
53 | # it will create a UNIX mailbox file with the patch emails. This |
|
53 | ||
54 | # mailbox file can be previewed with any mail user agent which supports |
|
54 | % mutt -R -f mbox | |
55 | # UNIX mbox files, i.e. with mutt: |
|
55 | ||
56 | # |
|
56 | When you are previewing the patchbomb messages, you can use `formail' | |
57 | # % mutt -R -f mbox |
|
57 | (a utility that is commonly installed as part of the procmail package), | |
58 | # |
|
58 | to send each message out: | |
59 | # When you are previewing the patchbomb messages, you can use `formail' |
|
59 | ||
60 | # (a utility that is commonly installed as part of the procmail package), |
|
60 | % formail -s sendmail -bm -t < mbox | |
61 | # to send each message out: |
|
61 | ||
62 | # |
|
62 | That should be all. Now your patchbomb is on its way out.''' | |
63 | # % formail -s sendmail -bm -t < mbox |
|
|||
64 | # |
|
|||
65 | # That should be all. Now your patchbomb is on its way out. |
|
|||
66 |
|
63 | |||
67 | import os, errno, socket, tempfile, cStringIO |
|
64 | import os, errno, socket, tempfile, cStringIO | |
68 | import email.MIMEMultipart, email.MIMEText, email.MIMEBase |
|
65 | import email.MIMEMultipart, email.MIMEText, email.MIMEBase |
General Comments 0
You need to be logged in to leave comments.
Login now