本文整理汇总了C#中NGit.UpdateRef方法的典型用法代码示例。如果您正苦于以下问题:C# NGit.UpdateRef方法的具体用法?C# NGit.UpdateRef怎么用?C# NGit.UpdateRef使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类NGit
的用法示例。
在下文中一共展示了NGit.UpdateRef方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: HardReset
public static void HardReset (NGit.Repository repo, ObjectId newHead)
{
DirCache dc = null;
try {
// Reset head to upstream
RefUpdate ru = repo.UpdateRef (Constants.HEAD);
ru.SetNewObjectId (newHead);
ru.SetForceUpdate (true);
RefUpdate.Result rc = ru.Update ();
switch (rc) {
case RefUpdate.Result.NO_CHANGE:
case RefUpdate.Result.NEW:
case RefUpdate.Result.FAST_FORWARD:
case RefUpdate.Result.FORCED:
break;
case RefUpdate.Result.REJECTED:
case RefUpdate.Result.LOCK_FAILURE:
throw new ConcurrentRefUpdateException (JGitText.Get ().couldNotLockHEAD, ru.GetRef (), rc);
default:
throw new JGitInternalException ("Reference update failed: " + rc);
}
dc = repo.LockDirCache ();
RevWalk rw = new RevWalk (repo);
RevCommit c = rw.ParseCommit (newHead);
DirCacheCheckout checkout = new DirCacheCheckout (repo, null, dc, c.Tree);
checkout.Checkout ();
} catch {
if (dc != null)
dc.Unlock ();
throw;
}
}