While reading about git I found a feature of Subversion that I never used. It’s called svn blame
and will show each line of a file with information about who last changed that line and in what revision. Running svn blame vendor/plugins/project_scores_plugin/init.rb
for one of my Redmine plugins shows this:
2 edavis # Redmine sample plugin 2 edavis require 'redmine' 2 edavis 2 edavis RAILS_DEFAULT_LOGGER.info 'Starting Project Scores plugin for Redmine' 2 edavis 2 edavis Redmine::Plugin.register "scores_plugin" do 2 edavis name 'Project Scores Plugin' 2 edavis author 'Eric Davis of Little Stream Software' 2 edavis description 'This is a scoring plugin for Redmine that will allow projects to be scored' 2 edavis version '0.0.1' 2 edavis 2 edavis # This plugin adds a project module 2 edavis # It can be enabled/disabled at project level (Project settings -> Modules) 2 edavis project_module :score_module do 2 edavis # This permission has to be explicitly given 2 edavis # It will be listed on the permissions screen 3 edavis permission :view_scores, {:scores => [:index]} 3 edavis permission :edit_scores, {:scores => [:edit]} 14 edavis permission :view_score_options, {:score_options => [:index]} 14 edavis permission :edit_score_options, {:score_options => [:edit]} 2 edavis end 2 edavis 2 edavis # A new item is added to the project menu (because Redmine can't add it anywhere else) 3 edavis menu :project_menu, "Scores", :controller => 'scores', :action => 'index' 2 edavis end
From that I can see the majority of the file was created on r2 the ‘score_options’ were added on r14. I’m still amazed whenever I find a new useful feature in my tools.
Eric
Yep, I love this feature, too. I especially like the fact that they call it by one of it’s most common goals — find out who to blame for something. :)
Ironic to you it will be, then, that ‘praise’ and ‘annotate’ (and ‘ann’) are synonyms for ‘blame’.
Does git support this? Googiling to find a Redmine plugin to do this.
`git blame` works the same way.