Module: Bard::Git

Defined in:
lib/bard/git.rb

Class Method Summary collapse

Class Method Details

.current_branchObject



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

Returns:

  • (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

Returns:

  • (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