private void status(ReceiveCommand cmd, RefUpdate.RefUpdateResult result) { switch (result) { case RefUpdate.RefUpdateResult.NotAttempted: cmd.setResult(ReceiveCommand.Result.NOT_ATTEMPTED); break; case RefUpdate.RefUpdateResult.LockFailure: case RefUpdate.RefUpdateResult.IOFailure: cmd.setResult(ReceiveCommand.Result.LOCK_FAILURE); break; case RefUpdate.RefUpdateResult.NoChange: case RefUpdate.RefUpdateResult.New: case RefUpdate.RefUpdateResult.Forced: case RefUpdate.RefUpdateResult.FastForward: cmd.setResult(ReceiveCommand.Result.OK); break; case RefUpdate.RefUpdateResult.Rejected: cmd.setResult(ReceiveCommand.Result.REJECTED_NONFASTFORWARD); break; case RefUpdate.RefUpdateResult.RejectedCurrentBranch: cmd.setResult(ReceiveCommand.Result.REJECTED_CURRENT_BRANCH); break; default: cmd.setResult(ReceiveCommand.Result.REJECTED_OTHER_REASON, result.ToString()); break; } }
private void execute(ReceiveCommand cmd) { try { RefUpdate ru = db.UpdateRef(cmd.getRefName()); ru.RefLogIdent = getRefLogIdent(); switch (cmd.getType()) { case ReceiveCommand.Type.DELETE: if (!ObjectId.ZeroId.Equals(cmd.getOldId())) { ru.ExpectedOldObjectId = cmd.getOldId(); } ru.IsForceUpdate = true; status(cmd, ru.Delete(walk)); break; case ReceiveCommand.Type.CREATE: case ReceiveCommand.Type.UPDATE: case ReceiveCommand.Type.UPDATE_NONFASTFORWARD: ru.IsForceUpdate = isAllowNonFastForwards(); ru.ExpectedOldObjectId = cmd.getOldId(); ru.NewObjectId = cmd.getNewId(); ru.SetRefLogMessage("push", true); status(cmd, ru.Update(walk)); break; } } catch (IOException err) { cmd.setResult(ReceiveCommand.Result.REJECTED_OTHER_REASON, "lock error: " + err.Message); } }