Class: Git::Si::GitControl

Inherits:
Object
  • Object
show all
Defined in:
lib/git/si/git-control.rb

Constant Summary collapse

@@default_git_binary =
'git'
@@git_binary =
'git'

Class Method Summary collapse

Class Method Details

.add_command(*files) ⇒ Object

Raises:



34
35
36
37
# File 'lib/git/si/git-control.rb', line 34

def self.add_command(*files)
  raise GitSiError.new("Add command requires filenames") if ( files.length == 0 )
  "#{@@git_binary} add " + files.join(' ')
end

.are_there_changes?(status_output) ⇒ Boolean

Returns:

  • (Boolean)


39
40
41
# File 'lib/git/si/git-control.rb', line 39

def self.are_there_changes?(status_output)
  status_output.match(/^\s*[MADRC]/)
end

.branch_commandObject



81
82
83
# File 'lib/git/si/git-control.rb', line 81

def self.branch_command
  "#{@@git_binary} branch"
end

.checkout_command(branch) ⇒ Object

Raises:



66
67
68
69
# File 'lib/git/si/git-control.rb', line 66

def self.checkout_command(branch)
  raise GitSiError.new("Checkout command requires branch name") if branch.empty?
  "#{@@git_binary} checkout #{branch}"
end

.commit_all_commandObject



48
49
50
51
# File 'lib/git/si/git-control.rb', line 48

def self.commit_all_command
  version = Git::Si::Version.version
  "#{@@git_binary} commit --allow-empty -am 'git-si #{version} atuned to current svn state'"
end

.commit_revision_command(revision) ⇒ Object



43
44
45
46
# File 'lib/git/si/git-control.rb', line 43

def self.commit_revision_command(revision)
  version = Git::Si::Version.version
  "#{@@git_binary} commit --allow-empty -am 'git-si #{version} svn update to version #{revision}'"
end

.create_branch_command(branch) ⇒ Object

Raises:



71
72
73
74
# File 'lib/git/si/git-control.rb', line 71

def self.create_branch_command(branch)
  raise GitSiError.new("New branch command requires branch name") if branch.empty?
  "#{@@git_binary} branch #{branch}"
end

.delete_branch_command(branch) ⇒ Object

Raises:



76
77
78
79
# File 'lib/git/si/git-control.rb', line 76

def self.delete_branch_command(branch)
  raise GitSiError.new("Delete branch command requires branch name") if branch.empty?
  "#{@@git_binary} branch -D #{branch}"
end

.delete_command(filename) ⇒ Object

Raises:



108
109
110
111
# File 'lib/git/si/git-control.rb', line 108

def self.delete_command(filename)
  raise GitSiError.new("Remove file command requires filename") if filename.empty?
  "#{@@git_binary} rm -r #{filename}"
end

.git_binary=(binary) ⇒ Object



9
10
11
# File 'lib/git/si/git-control.rb', line 9

def self.git_binary=(binary)
  @@git_binary = binary && binary.length > 0 ? binary : @@default_git_binary
end

.hard_reset_commandObject



90
91
92
# File 'lib/git/si/git-control.rb', line 90

def self.hard_reset_command
  "#{@@git_binary} reset --hard HEAD"
end

.init_commandObject



99
100
101
# File 'lib/git/si/git-control.rb', line 99

def self.init_command
  "#{@@git_binary} init"
end

.list_file_command(filename) ⇒ Object

Raises:



94
95
96
97
# File 'lib/git/si/git-control.rb', line 94

def self.list_file_command(filename)
  raise GitSiError.new("List file command requires filename") if filename.empty?
  "#{@@git_binary} ls-files #{filename}"
end

.log_command(*args) ⇒ Object



21
22
23
24
25
26
27
# File 'lib/git/si/git-control.rb', line 21

def self.log_command(*args)
  command = "#{@@git_binary} log"
  if ( args.length > 0 )
    command += " " + args.join(' ')
  end
  command
end

.parse_current_branch(git_branches) ⇒ Object



85
86
87
88
# File 'lib/git/si/git-control.rb', line 85

def self.parse_current_branch(git_branches)
  results = git_branches.match(/^\*\s+(\S+)/)
  return results[1] if results
end

.parse_last_svn_revision(info) ⇒ Object



29
30
31
32
# File 'lib/git/si/git-control.rb', line 29

def self.parse_last_svn_revision(info)
  results = info.match(/svn update to version (\d+)/i)
  return results[1] if results
end

.rebase_command(branch) ⇒ Object

Raises:



61
62
63
64
# File 'lib/git/si/git-control.rb', line 61

def self.rebase_command(branch)
  raise GitSiError.new("Rebase command requires branch name") if branch.empty?
  "#{@@git_binary} rebase '#{branch}'"
end

.show_branch_command(branch) ⇒ Object

Raises:



103
104
105
106
# File 'lib/git/si/git-control.rb', line 103

def self.show_branch_command(branch)
  raise GitSiError.new("Show branch command requires branch name") if branch.empty?
  "#{@@git_binary} show-ref refs/heads/#{branch}"
end

.stash_commandObject



53
54
55
# File 'lib/git/si/git-control.rb', line 53

def self.stash_command
  "#{@@git_binary} stash"
end

.status_command(*args) ⇒ Object



13
14
15
16
17
18
19
# File 'lib/git/si/git-control.rb', line 13

def self.status_command(*args)
  command = "#{@@git_binary} status --porcelain"
  if ( args.length > 0 )
    command += " " + args.join(' ')
  end
  command
end

.unstash_commandObject



57
58
59
# File 'lib/git/si/git-control.rb', line 57

def self.unstash_command
  "#{@@git_binary} stash pop"
end