private RefUpdateResult UpdateImpl(RevWalk.RevWalk walk, StoreBase store) { if (isNameConflicting()) { return RefUpdateResult.LockFailure; } using (LockFile @lock = new LockFile(_looseFile)) { if ([email protected]()) { return RefUpdateResult.LockFailure; } OldObjectId = _db.IdOf(Name); if (_expValue != null) { ObjectId o = OldObjectId ?? ObjectId.ZeroId; if (!AnyObjectId.equals(_expValue, o)) { return RefUpdateResult.LockFailure; } } if (OldObjectId == null) { return store.Store(@lock, RefUpdateResult.New); } RevObject newObj = SafeParse(walk, _newValue); RevObject oldObj = SafeParse(walk, OldObjectId); if (newObj == oldObj) { return store.Store(@lock, RefUpdateResult.NoChange); } RevCommit newCom = (newObj as RevCommit); RevCommit oldCom = (oldObj as RevCommit); if (newCom != null && oldCom != null) { if (walk.isMergedInto(oldCom, newCom)) { return store.Store(@lock, RefUpdateResult.FastForward); } } if (IsForceUpdate) { return store.Store(@lock, RefUpdateResult.Forced); } return RefUpdateResult.Rejected; } }
private RefUpdateResult updateImpl(RevWalk.RevWalk walk, Store store) { RevObject newObj; RevObject oldObj; if (getRefDatabase().isNameConflicting(Name)) return RefUpdateResult.LOCK_FAILURE; try { if (!tryLock(true)) return RefUpdateResult.LOCK_FAILURE; if (expValue != null) { ObjectId o; o = oldValue != null ? oldValue : ObjectId.ZeroId; if (!AnyObjectId.equals(expValue, o)) return RefUpdateResult.LOCK_FAILURE; } if (oldValue == null) return store.execute(RefUpdateResult.NEW); newObj = safeParse(walk, newValue); oldObj = safeParse(walk, oldValue); if (newObj == oldObj) return store.execute(RefUpdateResult.NO_CHANGE); if (newObj is RevCommit && oldObj is RevCommit) { if (walk.isMergedInto((RevCommit)oldObj, (RevCommit)newObj)) return store.execute(RefUpdateResult.FAST_FORWARD); } if (IsForceUpdate) return store.execute(RefUpdateResult.FORCED); return RefUpdateResult.REJECTED; } finally { unlock(); } }
private RefUpdateResult updateImpl(RevWalk.RevWalk walk, StoreBase store) { LockFile @lock; RevObject newObj; RevObject oldObj; @lock = new LockFile(looseFile); if ([email protected]()) return RefUpdateResult.LockFailure; try { OldObjectId = db.IdOf(Name); if (expValue != null) { ObjectId o; o = OldObjectId != null ? OldObjectId : ObjectId.ZeroId; if (!expValue.Equals(o)) return RefUpdateResult.LockFailure; } if (OldObjectId == null) return store.Store(@lock, RefUpdateResult.New); newObj = safeParse(walk, newValue); oldObj = safeParse(walk, OldObjectId); if (newObj == oldObj) return store.Store(@lock, RefUpdateResult.NoChange); if (newObj is RevCommit && oldObj is RevCommit) { if (walk.isMergedInto((RevCommit)oldObj, (RevCommit)newObj)) return store.Store(@lock, RefUpdateResult.FastForward); } if (IsForceUpdate) return store.Store(@lock, RefUpdateResult.Forced); return RefUpdateResult.Rejected; } finally { @lock.Unlock(); } }
private RefUpdateResult UpdateImpl(RevWalk.RevWalk walk, StoreBase store) { int lastSlash = Name.LastIndexOf('/'); if (lastSlash > 0) { if (Repository.getAllRefs().ContainsKey(Name.Slice(0, lastSlash))) { return RefUpdateResult.LockFailure; } } string rName = Name + "/"; foreach (Ref r in Repository.getAllRefs().Values) { if (r.Name.StartsWith(rName)) { return RefUpdateResult.LockFailure; } } var @lock = new LockFile(_looseFile); if ([email protected]()) { return RefUpdateResult.LockFailure; } try { OldObjectId = _db.IdOf(Name); if (_expValue != null) { ObjectId o = OldObjectId ?? ObjectId.ZeroId; if (!_expValue.Equals(o)) { return RefUpdateResult.LockFailure; } } if (OldObjectId == null) { return store.Store(@lock, RefUpdateResult.New); } RevObject newObj = SafeParse(walk, _newValue); RevObject oldObj = SafeParse(walk, OldObjectId); if (newObj == oldObj) { return store.Store(@lock, RefUpdateResult.NoChange); } if (newObj is RevCommit && oldObj is RevCommit) { if (walk.isMergedInto((RevCommit)oldObj, (RevCommit)newObj)) { return store.Store(@lock, RefUpdateResult.FastForward); } } if (IsForceUpdate) { return store.Store(@lock, RefUpdateResult.Forced); } return RefUpdateResult.Rejected; } finally { @lock.Unlock(); } }