Browse Source

InMemoryRepository: Abort BatchRefUpdate if a command previously failed

If any command has already been marked as failing, fail the entire batch.

Change-Id: I1692240841aa4f4cb252bdccbc6f11d9246929c1
stable-4.3
Shawn Pearce 9 years ago
parent
commit
4c9eda17be
  1. 5
      org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/InMemoryRepository.java

5
org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/InMemoryRepository.java

@ -310,6 +310,11 @@ public class InMemoryRepository extends DfsRepository {
Map<ObjectId, ObjectId> peeled = new HashMap<>(); Map<ObjectId, ObjectId> peeled = new HashMap<>();
try (RevWalk rw = new RevWalk(getRepository())) { try (RevWalk rw = new RevWalk(getRepository())) {
for (ReceiveCommand c : cmds) { for (ReceiveCommand c : cmds) {
if (c.getResult() != ReceiveCommand.Result.NOT_ATTEMPTED) {
reject(cmds);
return;
}
if (!ObjectId.zeroId().equals(c.getNewId())) { if (!ObjectId.zeroId().equals(c.getNewId())) {
try { try {
RevObject o = rw.parseAny(c.getNewId()); RevObject o = rw.parseAny(c.getNewId());

Loading…
Cancel
Save