Safer ref updates
Use git update-ref
to prevent clobbering concurrent ref updates. If
rugged/libgit2 is temporarily confused, due to concurrent git gc
for
example, then it used to be possible to accidentally reset a ref to an
earlier state and lose commits. Because git update-ref
does not get
confused by git gc
, what will happen now is that the commit based on
confused information fails, preventing data loss.