File: README.rdoc [churn-0.0.12 Documentation]

### Home Classes Methods

### Files

- LICENSE
- README.rdoc

### Class Index

Quicksearch

- Churn
- Churn::ChurnCalculator
- Churn::ChurnHistory
- Churn::GitAnalyzer
- Churn::HgAnalyzer
- Churn::LocationMapping
- Churn::SourceControl
- Churn::SvnAnalyzer
- Object

No matching classes.

# churn

A Project to give the churn file, class, and method for a project for a given checkin 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. Churn for files is immediate, but classes and methods requires buildings up a history using churn between revisions. The history is stored in ./tmp

Currently has Full Git and Mercurial (hg) support, and partial SVN support (supports only file level churn currnetly)

Authors:

- danmayer

- ajwalters

- cldwalker

## Example Output

    **********************************************************************
    * Revision Changes
    **********************************************************************
    Files:
    +-------------------------------+
    | file                          |
    +-------------------------------+
    | Rakefile                      |
    | lib/churn/churn_calculator.rb |
    +-------------------------------+

    Classes:
    +-------------------------------+-----------------+
    | file                          | klass           |
    +-------------------------------+-----------------+
    | lib/churn/churn_calculator.rb | ChurnCalculator |
    +-------------------------------+-----------------+

    Methods:
    +-------------------------------+-----------------+-------------------------------+
    | file                          | klass           | method                        |
    +-------------------------------+-----------------+-------------------------------+
    | lib/churn/churn_calculator.rb | ChurnCalculator | ChurnCalculator#filters       |
    | lib/churn/churn_calculator.rb | ChurnCalculator | ChurnCalculator#display_array |
    | lib/churn/churn_calculator.rb | ChurnCalculator | ChurnCalculator#to_s          |
    +-------------------------------+-----------------+-------------------------------+

    **********************************************************************
    * Project Churn
    **********************************************************************
    Files:
    +------------------------------------+---------------+
    | file_path                          | times_changed |
    +------------------------------------+---------------+
    | lib/churn/churn_calculator.rb      | 14            |
    | README.rdoc                        | 7             |
    | lib/tasks/churn_tasks.rb           | 6             |
    | Rakefile                           | 6             |
    | lib/churn/git_analyzer.rb          | 4             |
    | VERSION                            | 4             |
    | test/test_helper.rb                | 4             |
    | test/unit/churn_calculator_test.rb | 3             |
    | test/churn_test.rb                 | 3             |
    +------------------------------------+---------------+

    Classes:
    +-------------------------------+-----------------+---------------+
    | file                          | klass           | times_changed |
    +-------------------------------+-----------------+---------------+
    | lib/churn/churn_calculator.rb | ChurnCalculator | 1             |
    | lib/churn/churn_calculator.rb | ChurnCalculator | 1             |
    +-------------------------------+-----------------+---------------+

    Methods:
    +-------------------------------+-----------------+-----------------------------------------+---------------+
    | file                          | klass           | method                                  | times_changed |
    +-------------------------------+-----------------+-----------------------------------------+---------------+
    | lib/churn/churn_calculator.rb | ChurnCalculator | ChurnCalculator#to_s                    | 1             |
    | lib/churn/churn_calculator.rb | ChurnCalculator | ChurnCalculator#display_array           | 1             |
    | lib/churn/churn_calculator.rb | ChurnCalculator | ChurnCalculator#calculate_revision_data | 1             |
    | lib/churn/churn_calculator.rb | ChurnCalculator | ChurnCalculator#filters                 | 1             |
    | lib/churn/churn_calculator.rb | ChurnCalculator | ChurnCalculator#initialize              | 1             |
    | lib/churn/churn_calculator.rb | ChurnCalculator | ChurnCalculator#filters                 | 1             |
    | lib/churn/churn_calculator.rb | ChurnCalculator | ChurnCalculator#to_s                    | 1             |
    +-------------------------------+-----------------+-----------------------------------------+---------------+

TODO:

- SVN only supports file, add full SVN support

- support bazaar, cvs, and darcs

- make storage directory configurable instead of using tmp

- allow passing in directories to churn, directories to ignore

- add a filter that allows for other files besides. *.rb

- ignore files pattern, so you can ignore things like vendor/, lib/, or docs/

- finish adding better documenation using YARD

Executable Usage:

- ‘gem install churn’

- go to project root run ‘churn’

Rake Usage:

- ‘gem install churn’

- on any project you want to use churn, add “require ‘churn’” to your rake file

- run ‘rake churn’ 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

- temporary files with class / method churn history are stored in /tmp, to clear churn history delete them

## Note on Patches/Pull Requests

- Fork the project.

- Make your feature addition or bug fix.

- Add tests for it. This is important so I don’t break it in a future version unintentionally.

- Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but

      bump version in a commit by itself I can ignore when I pull)

- Send me a pull request. Bonus points for topic branches.

## Copyright

Copyright © 2010 Dan Mayer. See LICENSE for details.

[Validate]

Generated with the Darkfish Rdoc Generator 2.