private Ref toLocal(Ref remoteRef) { Optional<String> localName = remote.mapToRemote(remoteRef.getName()); Preconditions.checkArgument(localName.isPresent(), "Can't map %s to local ref using %s", remoteRef.getName(), remote.getFetchSpec()); Ref localRef; if (remoteRef instanceof SymRef) { Ref target = toLocal(remoteRef.peel()); localRef = new SymRef(localName.get(), target); } else { localRef = new Ref(localName.get(), remoteRef.getObjectId()); } return localRef; }
private Ref toRemote(Ref localRef) { Optional<String> remoteName = remote.mapToLocal(localRef.getName()); Preconditions.checkArgument(remoteName.isPresent(), "Can't map %s to remote ref using %s", localRef.getName(), remote.getFetchSpec()); Ref remoteRef; if (localRef instanceof SymRef) { Ref target = toRemote(localRef.peel()); remoteRef = new SymRef(remoteName.get(), target); } else { remoteRef = new Ref(remoteName.get(), localRef.getObjectId()); } return remoteRef; }
+ "' was not present for symref " + name + " -> '" + storedValue + "'"); Ref resolved = new SymRef(name, target.get()); return Optional.of(resolved);
+ "' was not present for symref " + name + " -> '" + storedValue + "'"); Ref resolved = new SymRef(name, target.get()); return Optional.of(resolved);
remoteRef = Optional.of((Ref) new SymRef(refName, new Ref(target, ObjectId.valueOf(objectId)))); } else {
ObjectId targetObjectId = ObjectId.valueOf(tokens[2]); Ref target = new Ref(targetRef, targetObjectId); ref = new SymRef(name, target);
private Ref toLocal(Ref localRemoteRef) { final Remote remote = this.remote; if (localRemoteRef.namespace().equals(Ref.TAGS_PREFIX)) { return localRemoteRef; } final String localName = localRemoteRef.localName(); final String remoteNamespace = localRemoteRef.namespace(); final String expectedRemotePrefix = Ref.REMOTES_PREFIX + remote.getName() + "/"; Preconditions.checkArgument(remoteNamespace.equals(expectedRemotePrefix)); final String localPrefix = Ref.HEAD.equals(localName) ? "" : Ref.HEADS_PREFIX; final String localRefName = localPrefix + localName; Ref ref = null; if (localRemoteRef instanceof SymRef) { SymRef sr = (SymRef) localRemoteRef; Ref localTarget = toLocal(new Ref(sr.getTarget(), sr.getObjectId())); ref = new SymRef(localRefName, localTarget); } else { ref = new Ref(localRefName, localRemoteRef.getObjectId()); } return ref; }
updatedRef = new SymRef(refName, new Ref(target, ObjectId.valueOf(objectId))); } else { updatedRef = new Ref(refName, ObjectId.valueOf(objectId));
private Ref toRemote(Ref localRef) { if (localRef.namespace().equals(Ref.TAGS_PREFIX)) { return localRef; } checkArgument(!localRef.getName().startsWith(Ref.REMOTES_PREFIX), "ref is already in a remotes namespace: %s", localRef); final String remoteNamespace = Ref.REMOTES_PREFIX + remote.getName() + "/"; final String remoteRefName = remoteNamespace + localRef.localName(); Ref remoteRef; if (localRef instanceof SymRef) { SymRef sr = (SymRef) localRef; String localtarget = sr.getTarget(); Ref remoteTarget = toRemote(new Ref(localtarget, sr.getObjectId())); remoteRef = new SymRef(remoteRefName, remoteTarget); } else { remoteRef = new Ref(remoteRefName, localRef.getObjectId()); } return remoteRef; }
@Test public void testSymRef() { Ref testRef = new Ref(Ref.REFS_PREFIX + "commit1", ObjectId.valueOf("abc123000000000000001234567890abcdef0000")); SymRef symRef = new SymRef("TestRef", testRef); assertEquals(testRef.getName(), symRef.getTarget()); String symRefString = symRef.toString(); assertEquals("TestRef -> " + "[" + testRef.getName() + " -> " + testRef.getObjectId().toString() + "]", symRefString); } }