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