class Jeny::StateManager::Git

StateManager implementation that uses git to manage state management.

This state management requires executing jeny in the git root folder.

Public Instance Methods

commit(changed, state) click to toggle source

Commits all changes, using `git add` the `git commit`

# File lib/jeny/state_manager/git.rb, line 30
def commit(changed, state)
  return if changed.empty?
  system("git add #{changed.join(" ")}")
  msg = "jeny #{$*.join(' ')}"
  system("git commit -m '#{msg}'")
end
reset(changed, state) click to toggle source

Reset all changes through a `git reset –hard`.

WARN: changes not related to `changed` are reverted too, which should be nothing since a stash has been done before.

# File lib/jeny/state_manager/git.rb, line 24
def reset(changed, state)
  changed.each{|f| f.rm_rf if f.exists? }
  system("git reset --hard")
end
stash(state) click to toggle source

Executes a `git stash`

# File lib/jeny/state_manager/git.rb, line 9
def stash(state)
  system("git diff --exit-code")
  state.stashed = ($?.exitstatus != 0)
  system("git stash") if state.stashed
end
unstash(state) click to toggle source

Executes a `git stash pop`

# File lib/jeny/state_manager/git.rb, line 16
def unstash(state)
  system("git stash pop") if state.stashed
end