rferraz-churn 0.0.16

Sign up to get free protection for your applications and to get access to all the features.
data/man/churn.html ADDED
@@ -0,0 +1,542 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
2
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
4
+ <head>
5
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
6
+ <meta name="generator" content="AsciiDoc 8.4.4" />
7
+ <title>churn</title>
8
+ <style type="text/css">
9
+ /* Debug borders */
10
+ p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {
11
+ /*
12
+ border: 1px solid red;
13
+ */
14
+ }
15
+
16
+ body {
17
+ margin: 1em 5% 1em 5%;
18
+ }
19
+
20
+ a {
21
+ color: blue;
22
+ text-decoration: underline;
23
+ }
24
+ a:visited {
25
+ color: fuchsia;
26
+ }
27
+
28
+ em {
29
+ font-style: italic;
30
+ color: navy;
31
+ }
32
+
33
+ strong {
34
+ font-weight: bold;
35
+ color: #083194;
36
+ }
37
+
38
+ tt {
39
+ color: navy;
40
+ }
41
+
42
+ h1, h2, h3, h4, h5, h6 {
43
+ color: #527bbd;
44
+ font-family: sans-serif;
45
+ margin-top: 1.2em;
46
+ margin-bottom: 0.5em;
47
+ line-height: 1.3;
48
+ }
49
+
50
+ h1, h2, h3 {
51
+ border-bottom: 2px solid silver;
52
+ }
53
+ h2 {
54
+ padding-top: 0.5em;
55
+ }
56
+ h3 {
57
+ float: left;
58
+ }
59
+ h3 + * {
60
+ clear: left;
61
+ }
62
+
63
+ div.sectionbody {
64
+ font-family: serif;
65
+ margin-left: 0;
66
+ }
67
+
68
+ hr {
69
+ border: 1px solid silver;
70
+ }
71
+
72
+ p {
73
+ margin-top: 0.5em;
74
+ margin-bottom: 0.5em;
75
+ }
76
+
77
+ ul, ol, li > p {
78
+ margin-top: 0;
79
+ }
80
+
81
+ pre {
82
+ padding: 0;
83
+ margin: 0;
84
+ }
85
+
86
+ span#author {
87
+ color: #527bbd;
88
+ font-family: sans-serif;
89
+ font-weight: bold;
90
+ font-size: 1.1em;
91
+ }
92
+ span#email {
93
+ }
94
+ span#revision {
95
+ font-family: sans-serif;
96
+ }
97
+
98
+ div#footer {
99
+ font-family: sans-serif;
100
+ font-size: small;
101
+ border-top: 2px solid silver;
102
+ padding-top: 0.5em;
103
+ margin-top: 4.0em;
104
+ }
105
+ div#footer-text {
106
+ float: left;
107
+ padding-bottom: 0.5em;
108
+ }
109
+ div#footer-badges {
110
+ float: right;
111
+ padding-bottom: 0.5em;
112
+ }
113
+
114
+ div#preamble {
115
+ margin-top: 1.5em;
116
+ margin-bottom: 1.5em;
117
+ }
118
+ div.tableblock, div.imageblock, div.exampleblock, div.verseblock,
119
+ div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
120
+ div.admonitionblock {
121
+ margin-top: 1.5em;
122
+ margin-bottom: 1.5em;
123
+ }
124
+ div.admonitionblock {
125
+ margin-top: 2.5em;
126
+ margin-bottom: 2.5em;
127
+ }
128
+
129
+ div.content { /* Block element content. */
130
+ padding: 0;
131
+ }
132
+
133
+ /* Block element titles. */
134
+ div.title, caption.title {
135
+ color: #527bbd;
136
+ font-family: sans-serif;
137
+ font-weight: bold;
138
+ text-align: left;
139
+ margin-top: 1.0em;
140
+ margin-bottom: 0.5em;
141
+ }
142
+ div.title + * {
143
+ margin-top: 0;
144
+ }
145
+
146
+ td div.title:first-child {
147
+ margin-top: 0.0em;
148
+ }
149
+ div.content div.title:first-child {
150
+ margin-top: 0.0em;
151
+ }
152
+ div.content + div.title {
153
+ margin-top: 0.0em;
154
+ }
155
+
156
+ div.sidebarblock > div.content {
157
+ background: #ffffee;
158
+ border: 1px solid silver;
159
+ padding: 0.5em;
160
+ }
161
+
162
+ div.listingblock > div.content {
163
+ border: 1px solid silver;
164
+ background: #f4f4f4;
165
+ padding: 0.5em;
166
+ }
167
+
168
+ div.quoteblock {
169
+ padding-left: 2.0em;
170
+ margin-right: 10%;
171
+ }
172
+ div.quoteblock > div.attribution {
173
+ padding-top: 0.5em;
174
+ text-align: right;
175
+ }
176
+
177
+ div.verseblock {
178
+ padding-left: 2.0em;
179
+ margin-right: 10%;
180
+ }
181
+ div.verseblock > div.content {
182
+ white-space: pre;
183
+ }
184
+ div.verseblock > div.attribution {
185
+ padding-top: 0.75em;
186
+ text-align: left;
187
+ }
188
+ /* DEPRECATED: Pre version 8.2.7 verse style literal block. */
189
+ div.verseblock + div.attribution {
190
+ text-align: left;
191
+ }
192
+
193
+ div.admonitionblock .icon {
194
+ vertical-align: top;
195
+ font-size: 1.1em;
196
+ font-weight: bold;
197
+ text-decoration: underline;
198
+ color: #527bbd;
199
+ padding-right: 0.5em;
200
+ }
201
+ div.admonitionblock td.content {
202
+ padding-left: 0.5em;
203
+ border-left: 2px solid silver;
204
+ }
205
+
206
+ div.exampleblock > div.content {
207
+ border-left: 2px solid silver;
208
+ padding: 0.5em;
209
+ }
210
+
211
+ div.imageblock div.content { padding-left: 0; }
212
+ div.imageblock img { border: 1px solid silver; }
213
+ span.image img { border-style: none; }
214
+
215
+ dl {
216
+ margin-top: 0.8em;
217
+ margin-bottom: 0.8em;
218
+ }
219
+ dt {
220
+ margin-top: 0.5em;
221
+ margin-bottom: 0;
222
+ font-style: normal;
223
+ color: navy;
224
+ }
225
+ dd > *:first-child {
226
+ margin-top: 0.1em;
227
+ }
228
+
229
+ ul, ol {
230
+ list-style-position: outside;
231
+ }
232
+ ol.arabic {
233
+ list-style-type: decimal;
234
+ }
235
+ ol.loweralpha {
236
+ list-style-type: lower-alpha;
237
+ }
238
+ ol.upperalpha {
239
+ list-style-type: upper-alpha;
240
+ }
241
+ ol.lowerroman {
242
+ list-style-type: lower-roman;
243
+ }
244
+ ol.upperroman {
245
+ list-style-type: upper-roman;
246
+ }
247
+
248
+ div.compact ul, div.compact ol,
249
+ div.compact p, div.compact p,
250
+ div.compact div, div.compact div {
251
+ margin-top: 0.1em;
252
+ margin-bottom: 0.1em;
253
+ }
254
+
255
+ div.tableblock > table {
256
+ border: 3px solid #527bbd;
257
+ }
258
+ thead {
259
+ font-family: sans-serif;
260
+ font-weight: bold;
261
+ }
262
+ tfoot {
263
+ font-weight: bold;
264
+ }
265
+ td > div.verse {
266
+ white-space: pre;
267
+ }
268
+ p.table {
269
+ margin-top: 0;
270
+ }
271
+ /* Because the table frame attribute is overriden by CSS in most browsers. */
272
+ div.tableblock > table[frame="void"] {
273
+ border-style: none;
274
+ }
275
+ div.tableblock > table[frame="hsides"] {
276
+ border-left-style: none;
277
+ border-right-style: none;
278
+ }
279
+ div.tableblock > table[frame="vsides"] {
280
+ border-top-style: none;
281
+ border-bottom-style: none;
282
+ }
283
+
284
+
285
+ div.hdlist {
286
+ margin-top: 0.8em;
287
+ margin-bottom: 0.8em;
288
+ }
289
+ div.hdlist tr {
290
+ padding-bottom: 15px;
291
+ }
292
+ dt.hdlist1.strong, td.hdlist1.strong {
293
+ font-weight: bold;
294
+ }
295
+ td.hdlist1 {
296
+ vertical-align: top;
297
+ font-style: normal;
298
+ padding-right: 0.8em;
299
+ color: navy;
300
+ }
301
+ td.hdlist2 {
302
+ vertical-align: top;
303
+ }
304
+ div.hdlist.compact tr {
305
+ margin: 0;
306
+ padding-bottom: 0;
307
+ }
308
+
309
+ .comment {
310
+ background: yellow;
311
+ }
312
+
313
+ @media print {
314
+ div#footer-badges { display: none; }
315
+ }
316
+
317
+ div#toctitle {
318
+ color: #527bbd;
319
+ font-family: sans-serif;
320
+ font-size: 1.1em;
321
+ font-weight: bold;
322
+ margin-top: 1.0em;
323
+ margin-bottom: 0.1em;
324
+ }
325
+
326
+ div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
327
+ margin-top: 0;
328
+ margin-bottom: 0;
329
+ }
330
+ div.toclevel2 {
331
+ margin-left: 2em;
332
+ font-size: 0.9em;
333
+ }
334
+ div.toclevel3 {
335
+ margin-left: 4em;
336
+ font-size: 0.9em;
337
+ }
338
+ div.toclevel4 {
339
+ margin-left: 6em;
340
+ font-size: 0.9em;
341
+ }
342
+ /* Workarounds for IE6's broken and incomplete CSS2. */
343
+
344
+ div.sidebar-content {
345
+ background: #ffffee;
346
+ border: 1px solid silver;
347
+ padding: 0.5em;
348
+ }
349
+ div.sidebar-title, div.image-title {
350
+ color: #527bbd;
351
+ font-family: sans-serif;
352
+ font-weight: bold;
353
+ margin-top: 0.0em;
354
+ margin-bottom: 0.5em;
355
+ }
356
+
357
+ div.listingblock div.content {
358
+ border: 1px solid silver;
359
+ background: #f4f4f4;
360
+ padding: 0.5em;
361
+ }
362
+
363
+ div.quoteblock-attribution {
364
+ padding-top: 0.5em;
365
+ text-align: right;
366
+ }
367
+
368
+ div.verseblock-content {
369
+ white-space: pre;
370
+ }
371
+ div.verseblock-attribution {
372
+ padding-top: 0.75em;
373
+ text-align: left;
374
+ }
375
+
376
+ div.exampleblock-content {
377
+ border-left: 2px solid silver;
378
+ padding-left: 0.5em;
379
+ }
380
+
381
+ /* IE6 sets dynamically generated links as visited. */
382
+ div#toc a:visited { color: blue; }
383
+ </style>
384
+ </head>
385
+ <body>
386
+ <div id="header">
387
+ <h1>churn</h1>
388
+ </div>
389
+ <div id="preamble">
390
+ <div class="sectionbody">
391
+ <div class="paragraph"><p>A Project to give the churn file, class, and method for a project for a given checkin
392
+ Over time the tool adds up the history of chruns to give the number of times a file, class, or method is changing during the life of a project.
393
+ Churn for files is immediate, but classes and methods requires buildings up a history using churn between revisions. The history is stored in ./tmp</p></div>
394
+ <div class="paragraph"><p>Currently has Full Git, Mercurial (hg), and Bazaar (bzr) support, and partial SVN support (supports only file level churn currnetly)</p></div>
395
+ <div class="paragraph"><p>Authors:
396
+ * danmayer
397
+ * ajwalters
398
+ * cldwalker
399
+ * absurdhero</p></div>
400
+ </div>
401
+ </div>
402
+ <h2 id="_example_output">Example Output</h2>
403
+ <div class="sectionbody">
404
+ <div class="literalblock">
405
+ <div class="content">
406
+ <pre><tt>**********************************************************************
407
+ * Revision Changes
408
+ **********************************************************************
409
+ Files:
410
+ +-------------------------------+
411
+ | file |
412
+ +-------------------------------+
413
+ | Rakefile |
414
+ | lib/churn/churn_calculator.rb |
415
+ +-------------------------------+</tt></pre>
416
+ </div></div>
417
+ <div class="literalblock">
418
+ <div class="content">
419
+ <pre><tt>Classes:
420
+ +-------------------------------+-----------------+
421
+ | file | klass |
422
+ +-------------------------------+-----------------+
423
+ | lib/churn/churn_calculator.rb | ChurnCalculator |
424
+ +-------------------------------+-----------------+</tt></pre>
425
+ </div></div>
426
+ <div class="literalblock">
427
+ <div class="content">
428
+ <pre><tt>Methods:
429
+ +-------------------------------+-----------------+-------------------------------+
430
+ | file | klass | method |
431
+ +-------------------------------+-----------------+-------------------------------+
432
+ | lib/churn/churn_calculator.rb | ChurnCalculator | ChurnCalculator#filters |
433
+ | lib/churn/churn_calculator.rb | ChurnCalculator | ChurnCalculator#display_array |
434
+ | lib/churn/churn_calculator.rb | ChurnCalculator | ChurnCalculator#to_s |
435
+ +-------------------------------+-----------------+-------------------------------+</tt></pre>
436
+ </div></div>
437
+ <div class="literalblock">
438
+ <div class="content">
439
+ <pre><tt>**********************************************************************
440
+ * Project Churn
441
+ **********************************************************************
442
+ Files:
443
+ +------------------------------------+---------------+
444
+ | file_path | times_changed |
445
+ +------------------------------------+---------------+
446
+ | lib/churn/churn_calculator.rb | 14 |
447
+ | README.rdoc | 7 |
448
+ | lib/tasks/churn_tasks.rb | 6 |
449
+ | Rakefile | 6 |
450
+ | lib/churn/git_analyzer.rb | 4 |
451
+ | VERSION | 4 |
452
+ | test/test_helper.rb | 4 |
453
+ | test/unit/churn_calculator_test.rb | 3 |
454
+ | test/churn_test.rb | 3 |
455
+ +------------------------------------+---------------+</tt></pre>
456
+ </div></div>
457
+ <div class="literalblock">
458
+ <div class="content">
459
+ <pre><tt>Classes:
460
+ +-------------------------------+-----------------+---------------+
461
+ | file | klass | times_changed |
462
+ +-------------------------------+-----------------+---------------+
463
+ | lib/churn/churn_calculator.rb | ChurnCalculator | 1 |
464
+ | lib/churn/churn_calculator.rb | ChurnCalculator | 1 |
465
+ +-------------------------------+-----------------+---------------+</tt></pre>
466
+ </div></div>
467
+ <div class="literalblock">
468
+ <div class="content">
469
+ <pre><tt>Methods:
470
+ +-------------------------------+-----------------+-----------------------------------------+---------------+
471
+ | file | klass | method | times_changed |
472
+ +-------------------------------+-----------------+-----------------------------------------+---------------+
473
+ | lib/churn/churn_calculator.rb | ChurnCalculator | ChurnCalculator#to_s | 1 |
474
+ | lib/churn/churn_calculator.rb | ChurnCalculator | ChurnCalculator#display_array | 1 |
475
+ | lib/churn/churn_calculator.rb | ChurnCalculator | ChurnCalculator#calculate_revision_data | 1 |
476
+ | lib/churn/churn_calculator.rb | ChurnCalculator | ChurnCalculator#filters | 1 |
477
+ | lib/churn/churn_calculator.rb | ChurnCalculator | ChurnCalculator#initialize | 1 |
478
+ | lib/churn/churn_calculator.rb | ChurnCalculator | ChurnCalculator#filters | 1 |
479
+ | lib/churn/churn_calculator.rb | ChurnCalculator | ChurnCalculator#to_s | 1 |
480
+ +-------------------------------+-----------------+-----------------------------------------+---------------+</tt></pre>
481
+ </div></div>
482
+ <div class="paragraph"><p>TODO:
483
+ * SVN only supports file, add full SVN support
484
+ * support bazaar, cvs, and darcs
485
+ * make storage directory configurable instead of using tmp
486
+ * allow passing in directories to churn, directories to ignore
487
+ * add a filter that allows for other files besides. *.rb
488
+ * ignore files pattern, so you can ignore things like vendor/, lib/, or docs/
489
+ * finish adding better documenation using YARD</p></div>
490
+ <div class="paragraph"><p>Executable Usage:
491
+ * <em>gem install churn</em>
492
+ * go to project root run <em>churn</em></p></div>
493
+ <div class="paragraph"><p>Rake Usage:
494
+ * <em>gem install churn</em>
495
+ * on any project you want to use churn, add "require <em>churn</em>" to your rake file
496
+ * run <em>rake churn</em> to view the current output, file churn history is immediate, class and method churn builds up a history as it is run on each revision
497
+ * temporary files with class / method churn history are stored in /tmp, to clear churn history delete them</p></div>
498
+ </div>
499
+ <h2 id="_note_on_patches_pull_requests">Note on Patches/Pull Requests</h2>
500
+ <div class="sectionbody">
501
+ <div class="ulist"><ul>
502
+ <li>
503
+ <p>
504
+ Fork the project.
505
+ </p>
506
+ </li>
507
+ <li>
508
+ <p>
509
+ Make your feature addition or bug fix.
510
+ </p>
511
+ </li>
512
+ <li>
513
+ <p>
514
+ Add tests for it. This is important so I don&#8217;t break it in a
515
+ future version unintentionally.
516
+ </p>
517
+ </li>
518
+ <li>
519
+ <p>
520
+ Commit, do not mess with rakefile, version, or history.
521
+ (if you want to have your own version, that is fine but
522
+ bump version in a commit by itself I can ignore when I pull)
523
+ </p>
524
+ </li>
525
+ <li>
526
+ <p>
527
+ Send me a pull request. Bonus points for topic branches.
528
+ </p>
529
+ </li>
530
+ </ul></div>
531
+ </div>
532
+ <h2 id="_copyright">Copyright</h2>
533
+ <div class="sectionbody">
534
+ <div class="paragraph"><p>Copyright (c) 2010 Dan Mayer. See LICENSE for details.</p></div>
535
+ </div>
536
+ <div id="footer">
537
+ <div id="footer-text">
538
+ Last updated 2010-01-20 10:38:32 EDT
539
+ </div>
540
+ </div>
541
+ </body>
542
+ </html>