equal
deleted
inserted
replaced
90 |
90 |
91 return rate |
91 return rate |
92 |
92 |
93 |
93 |
94 def churn(ui, repo, *pats, **opts): |
94 def churn(ui, repo, *pats, **opts): |
95 '''graph count of revisions grouped by template |
95 '''histogram of changes to the repository |
96 |
96 |
97 Will graph count of changed lines or revisions grouped by template |
97 This command will display a histogram representing the number |
98 or alternatively by date, if dateformat is used. In this case it |
98 of changed lines or revisions, grouped according to the given |
99 will override template. |
99 template. The default template will group changes by author. |
|
100 The --dateformat option may be used to group the results by |
|
101 date instead. |
100 |
102 |
101 By default statistics are counted for number of changed lines. |
103 Statistics are based on the number of changed lines, or |
|
104 alternatively the number of matching revisions if the |
|
105 --changesets option is specified. |
102 |
106 |
103 Examples: |
107 Examples: |
104 |
108 |
105 # display count of changed lines for every committer |
109 # display count of changed lines for every committer |
106 hg churn -t '{author|email}' |
110 hg churn -t '{author|email}' |
112 hg churn -f '%Y-%m' -s -c |
116 hg churn -f '%Y-%m' -s -c |
113 |
117 |
114 # display count of lines changed in every year |
118 # display count of lines changed in every year |
115 hg churn -f '%Y' -s |
119 hg churn -f '%Y' -s |
116 |
120 |
117 The map file format used to specify aliases is fairly simple: |
121 It is possible to map alternate email addresses to a main address |
118 |
122 by providing a file using the following format: |
|
123 |
119 <alias email> <actual email> |
124 <alias email> <actual email> |
120 |
125 |
121 By default .hgchurn in the working directory root will be used, if |
126 Such a file may be specified with the --aliases option, otherwise a |
122 it exists. Use the --aliases option to override this. |
127 .hgchurn file will be looked for in the working directory root. |
123 ''' |
128 ''' |
124 def pad(s, l): |
129 def pad(s, l): |
125 return (s + " " * l)[:l] |
130 return (s + " " * l)[:l] |
126 |
131 |
127 amap = {} |
132 amap = {} |