checkArgument(newBranchName != null, "New branch name not specified"); checkArgument(!newBranchName.equals(oldBranchName), "Done"); command(CheckRefFormat.class).setThrowsException(true).setRef(newBranchName) .setAllowOneLevel(true).call(); Optional<Ref> branch = Optional.absent(); Optional<Ref> headRef = command(RefParse.class).setName(Ref.HEAD).call(); checkArgument(headRef.isPresent() && headRef.get() instanceof SymRef, "Cannot rename detached HEAD."); branch = command(RefParse.class).setName(((SymRef) (headRef.get())).getTarget()).call(); } else { branch = command(RefParse.class).setName(oldBranchName).call(); Optional<Ref> newBranch = command(RefParse.class).setName(newBranchName).call(); Optional<Ref> renamedBranch = command(UpdateRef.class) .setName(branch.get().namespace() + newBranchName) .setNewValue(branch.get().getObjectId()).call(); List<Ref> symRefs = Lists.newArrayList(command(ForEachRef.class).setFilter(filter).call()); for (Ref ref : symRefs) { if (((SymRef) ref).getTarget().equals(branch.get().getName())) { command(UpdateSymRef.class).setName(ref.getName()) .setNewValue(renamedBranch.get().getName()).call(); command(UpdateRef.class).setName(branch.get().getName()).setDelete(true).call();
checkArgument(newBranchName != null, "New branch name not specified"); checkArgument(!newBranchName.equals(oldBranchName), "Done"); command(CheckRefFormat.class).setThrowsException(true).setRef(newBranchName) .setAllowOneLevel(true).call(); Optional<Ref> oldBranch = Optional.absent(); Optional<Ref> headRef = command(RefParse.class).setName(Ref.HEAD).call(); checkArgument(headRef.isPresent() && headRef.get() instanceof SymRef, "Cannot rename detached HEAD."); oldBranch = command(RefParse.class).setName(headRef.get().peel().localName()).call(); } else { oldBranch = command(RefParse.class).setName(oldBranchName).call(); Optional<Ref> newBranch = command(RefParse.class).setName(newBranchName).call(); Optional<Ref> renamedBranch = command(UpdateRef.class) .setName(oldBranch.get().namespace() + newBranchName) .setNewValue(oldBranch.get().getObjectId()).call(); final BranchConfig oldConfig = command(BranchConfigOp.class) .setName(oldBranch.get().localName()).delete(); final BranchConfig newConfig = command(BranchConfigOp.class) List<Ref> symRefs = Lists.newArrayList(command(ForEachRef.class).setFilter(filter).call()); for (Ref ref : symRefs) { if (((SymRef) ref).getTarget().equals(oldBranch.get().getName())) { command(UpdateSymRef.class).setName(ref.getName()) .setNewValue(renamedBranch.get().getName()).call();