private String readRef(String name) { String value = null; try { value = refDb.getRef(name); } catch (IllegalArgumentException e) { value = refDb.getSymRef(name); } return value; }
private String readRef(String name) { String value = null; try { value = refDb.getRef(name); } catch (IllegalArgumentException e) { value = refDb.getSymRef(name); } return value; }
@Override public String getSymRef(final String name) { String internalName; String value; if (name.startsWith("changed") || name.startsWith("orig")) { internalName = append(txNamespace, name); value = refDb.getSymRef(internalName); } else { internalName = toChangedInternal(name); value = refDb.getSymRef(internalName); } return value; }
@Override public String getSymRef(final String name) { String internalName; String value; if (name.startsWith("changed") || name.startsWith("orig")) { internalName = append(txNamespace, name); value = refDb.getSymRef(internalName); } else { internalName = toInternal(name); value = refDb.getSymRef(internalName); if (value == null) { internalName = toOrigInternal(name); value = refDb.getSymRef(internalName); } } return value; }
@Test public void testResolveSymbolicRef() { when(mockRefDb.getRef(eq("HEAD"))).thenThrow(new IllegalArgumentException()); when(mockRefDb.getSymRef(eq("HEAD"))).thenReturn("refs/heads/branch1"); Optional<Ref> ref = command.setName("HEAD").call(); assertTrue(ref.isPresent()); assertTrue(ref.get() instanceof SymRef); assertEquals("HEAD", ref.get().getName()); assertEquals("refs/heads/branch1", ((SymRef) ref.get()).getTarget()); } }
@Test public void testResolveSymbolicRef() { when(mockRefDb.getRef(eq("HEAD"))).thenThrow(new IllegalArgumentException()); when(mockRefDb.getSymRef(eq("HEAD"))).thenReturn("refs/heads/branch1"); Optional<Ref> ref = command.setName("HEAD").call(); assertTrue(ref.isPresent()); assertTrue(ref.get() instanceof SymRef); assertEquals("HEAD", ref.get().getName()); assertEquals("refs/heads/branch1", ((SymRef) ref.get()).getTarget()); } }
/** * The new ref if created or updated a sym ref, or the old one if deleting it */ @Override protected Optional<Ref> _call() { Preconditions.checkState(name != null, "name has not been set"); Preconditions.checkState(delete || newValue != null, "value has not been set"); if (oldValue != null) { String storedValue; try { storedValue = refDatabase().getSymRef(name); } catch (IllegalArgumentException e) { // may be updating what used to be a direct ref to be a symbolic ref storedValue = refDatabase().getRef(name); } Preconditions.checkState(oldValue.equals(storedValue), "Old value (" + storedValue + ") doesn't match expected value '" + oldValue + "'"); } if (delete) { Optional<Ref> oldRef = command(RefParse.class).setName(name).call(); if (oldRef.isPresent()) { refDatabase().remove(name); } return oldRef; } refDatabase().putSymRef(name, newValue); Optional<Ref> ref = command(RefParse.class).setName(name).call(); return ref; }
/** * The new ref if created or updated a sym ref, or the old one if deleting it */ @Override protected Optional<Ref> _call() { Preconditions.checkState(name != null, "name has not been set"); Preconditions.checkState(delete || newValue != null, "value has not been set"); if (oldValue != null) { String storedValue; try { storedValue = refDatabase().getSymRef(name); } catch (IllegalArgumentException e) { // may be updating what used to be a direct ref to be a symbolic ref storedValue = refDatabase().getRef(name); } Preconditions.checkState(oldValue.equals(storedValue), "Old value (" + storedValue + ") doesn't match expected value '" + oldValue + "'"); } if (delete) { Optional<Ref> oldRef = command(RefParse.class).setName(name).call(); if (oldRef.isPresent()) { refDatabase().remove(name); } return oldRef; } refDatabase().putSymRef(name, newValue); Optional<Ref> ref = command(RefParse.class).setName(name).call(); return ref; }
@Test public void testGetSymRefWhenRef() { refDb.putRef(Ref.MASTER, ObjectId.NULL.toString()); expected.expect(IllegalArgumentException.class); expected.expectMessage(Ref.MASTER + " is not a symbolic ref"); refDb.getSymRef(Ref.MASTER); }
@Test public void testGetSymRefWhenRef() { refDb.putRef(Ref.MASTER, ObjectId.NULL.toString()); expected.expect(IllegalArgumentException.class); expected.expectMessage(Ref.MASTER + " is not a symbolic ref"); refDb.getSymRef(Ref.MASTER); }
@Test public void testRemove() { final String origin = Ref.append(Ref.ORIGIN, "master"); refDb.putRef(origin, sampleId.toString()); refDb.putSymRef(Ref.HEAD, origin); assertEquals(sampleId.toString(), refDb.getRef(origin)); assertEquals(origin, refDb.getSymRef(Ref.HEAD)); assertEquals(sampleId.toString(), refDb.remove(origin)); assertNull(refDb.getRef(origin)); assertNull(refDb.getSymRef(origin)); assertEquals(origin, refDb.remove(Ref.HEAD)); assertNull(refDb.getSymRef(Ref.HEAD)); assertNull(refDb.getRef(Ref.HEAD)); }
@Test public void testRemove() { final String origin = Ref.append(Ref.ORIGIN, "master"); refDb.putRef(origin, sampleId.toString()); refDb.putSymRef(Ref.HEAD, origin); assertEquals(sampleId.toString(), refDb.getRef(origin)); assertEquals(origin, refDb.getSymRef(Ref.HEAD)); assertEquals(sampleId.toString(), refDb.remove(origin)); assertNull(refDb.getRef(origin)); assertNull(refDb.getSymRef(origin)); assertEquals(origin, refDb.remove(Ref.HEAD)); assertNull(refDb.getSymRef(Ref.HEAD)); assertNull(refDb.getRef(Ref.HEAD)); }
@Test public void testEmpty() { refDb.putRef(Ref.MASTER, ObjectId.NULL.toString()); refDb.putSymRef(Ref.HEAD, Ref.MASTER); assertEquals(ObjectId.NULL.toString(), refDb.getRef(Ref.MASTER)); assertEquals(Ref.MASTER, refDb.getSymRef(Ref.HEAD)); }
@Test public void testEmpty() { refDb.putRef(Ref.MASTER, ObjectId.NULL.toString()); refDb.putSymRef(Ref.HEAD, Ref.MASTER); assertEquals(ObjectId.NULL.toString(), refDb.getRef(Ref.MASTER)); assertEquals(Ref.MASTER, refDb.getSymRef(Ref.HEAD)); }