Module: Bard::Git
- Defined in:
- lib/bard/git.rb
Class Method Summary collapse
- .current_branch ⇒ Object
- .fast_forward_merge?(root, branch) ⇒ Boolean
- .sha_of(ref) ⇒ Object
- .up_to_date_with_remote?(branch) ⇒ Boolean
Class Method Details
.current_branch ⇒ Object
5 6 7 8 9 |
# File 'lib/bard/git.rb', line 5 def current_branch ref = `git symbolic-ref HEAD 2>&1`.chomp return false if ref =~ /^fatal:/ ref.sub(/refs\/heads\//, '') # refs/heads/master ... we want "master" end |
.fast_forward_merge?(root, branch) ⇒ Boolean
11 12 13 14 15 16 |
# File 'lib/bard/git.rb', line 11 def fast_forward_merge?(root, branch) root_head = sha_of(root) branch_head = sha_of(branch) common_ancestor = `git merge-base #{root_head} #{branch_head}`.chomp common_ancestor == root_head end |
.sha_of(ref) ⇒ Object
22 23 24 |
# File 'lib/bard/git.rb', line 22 def sha_of ref `git rev-parse #{ref}`.chomp end |
.up_to_date_with_remote?(branch) ⇒ Boolean
18 19 20 |
# File 'lib/bard/git.rb', line 18 def up_to_date_with_remote? branch sha_of(branch) == sha_of("origin/#{branch}") end |