class Rubycritic::SourceControlSystem::Git
def self.supported?
def self.supported? `git branch 2>&1` && $?.success? end
def self.to_s
def self.to_s "Git" end
def date_of_last_commit(path)
def date_of_last_commit(path) `git log -1 --date=iso --format=%ad #{path.shellescape}`.chomp! end
def everything_commmited?
def everything_commmited? `git status --porcelain`.empty? end
def has_revision?
def has_revision? head_reference && $?.success? end
def head_reference
def head_reference `git rev-parse --verify HEAD`.chomp! end
def revisions_count(path)
def revisions_count(path) `git log --follow --format=oneline #{path.shellescape}`.count("\n") end
def stash_changes
def stash_changes return false if everything_commmited? stashes_count_before = stashes_count `git stash` stashes_count_after = stashes_count stashes_count_after > stashes_count_before end
def stashes_count
def stashes_count `git stash list`.count("\n") end
def travel_to_head
def travel_to_head stash_successful = stash_changes yield ensure travel_to_original_state if stash_successful end
def travel_to_original_state
def travel_to_original_state `git stash pop` end