java: public void unpop(RevCommit c) {Block b = head;if (b == null) {b = free.newBlock();b.resetToMiddle();b.add(c);head = b;tail = b;return;} else if (b.canUnpop()) {b.unpop(c);return;}b = free.newBlock();b.resetToEnd();b.unpop(c);b.next = head;head = b;}
C#: public virtual void Unpop(RevCommit c){BlockRevQueue.Block b = head;if (b == null){b = free.NewBlock();b.ResetToMiddle();b.Add(c);head = b;tail = b;return;}else{if (b.CanUnpop()){b.Unpop(c);return;}}b = free.NewBlock();b.ResetToEnd();b.Unpop(c);b.next = head;head = b;}