Class: MultiGit::JGitBackend::Ref::PessimisticUpdater

Inherits:
Updater show all
Defined in:
lib/multi_git/jgit_backend/ref.rb

Instance Attribute Summary

Attributes inherited from Ref::Updater

#ref, #target

Instance Method Summary collapse

Methods inherited from Ref::Updater

#name, #repository

Constructor Details

#initialize(*_) ⇒ PessimisticUpdater

Returns a new instance of PessimisticUpdater.



68
69
70
71
72
73
74
75
# File 'lib/multi_git/jgit_backend/ref.rb', line 68

def initialize(*_)
  super
  @ref_update = repository.__backend__.updateRef(name)
  if !@ref_update.try_lock(false)
    raise
  end
  self.ref = ref.reload
end

Instance Method Details

#destroy!Object



83
84
85
# File 'lib/multi_git/jgit_backend/ref.rb', line 83

def destroy!
  @ref_update.unlock
end

#update(nx) ⇒ Object



77
78
79
80
81
# File 'lib/multi_git/jgit_backend/ref.rb', line 77

def update(nx)
  nx = super
  do_update(@ref_update, nx)
  return nx
end