From 4c9eda17bea2a5f9c2d4905d2a9e43cc832a432d Mon Sep 17 00:00:00 2001 From: Shawn Pearce Date: Wed, 6 Jan 2016 12:05:46 -0800 Subject: [PATCH] InMemoryRepository: Abort BatchRefUpdate if a command previously failed If any command has already been marked as failing, fail the entire batch. Change-Id: I1692240841aa4f4cb252bdccbc6f11d9246929c1 --- .../jgit/internal/storage/dfs/InMemoryRepository.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/InMemoryRepository.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/InMemoryRepository.java index cdebb7a8f..205d3c7f8 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/InMemoryRepository.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/InMemoryRepository.java @@ -310,6 +310,11 @@ public class InMemoryRepository extends DfsRepository { Map peeled = new HashMap<>(); try (RevWalk rw = new RevWalk(getRepository())) { for (ReceiveCommand c : cmds) { + if (c.getResult() != ReceiveCommand.Result.NOT_ATTEMPTED) { + reject(cmds); + return; + } + if (!ObjectId.zeroId().equals(c.getNewId())) { try { RevObject o = rw.parseAny(c.getNewId());