DfsRefRename.java
- /*
- * Copyright (C) 2011, Google Inc. and others
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Distribution License v. 1.0 which is available at
- * https://www.eclipse.org/org/documents/edl-v10.php.
- *
- * SPDX-License-Identifier: BSD-3-Clause
- */
- package org.eclipse.jgit.internal.storage.dfs;
- import java.io.IOException;
- import org.eclipse.jgit.lib.ObjectId;
- import org.eclipse.jgit.lib.RefRename;
- import org.eclipse.jgit.lib.RefUpdate;
- import org.eclipse.jgit.lib.RefUpdate.Result;
- final class DfsRefRename extends RefRename {
- DfsRefRename(RefUpdate src, RefUpdate dst) {
- super(src, dst);
- }
- /** {@inheritDoc} */
- @Override
- protected Result doRename() throws IOException {
- // TODO Correctly handle renaming foo/bar to foo.
- // TODO Batch these together into one log update.
- destination.setExpectedOldObjectId(ObjectId.zeroId());
- destination.setNewObjectId(source.getRef().getObjectId());
- switch (destination.update()) {
- case NEW:
- source.delete();
- return Result.RENAMED;
- default:
- return destination.getResult();
- }
- }
- }