From 23dfcd97ae833a960c2cf0aa82154cd300d58886 Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Wed, 7 Aug 2013 10:09:14 +0200 Subject: [PATCH] fix handling of pending changesets during pre receive repository hooks --- .../scm/repository/HgRepositoryHandler.java | 18 ++++++++++++++++++ .../scm/repository/spi/HgCommandContext.java | 3 ++- .../spi/IncomingOutgoingTestBase.java | 3 +++ 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/scm-plugins/scm-hg-plugin/src/main/java/sonia/scm/repository/HgRepositoryHandler.java b/scm-plugins/scm-hg-plugin/src/main/java/sonia/scm/repository/HgRepositoryHandler.java index eabd69bd3a..7053790206 100644 --- a/scm-plugins/scm-hg-plugin/src/main/java/sonia/scm/repository/HgRepositoryHandler.java +++ b/scm-plugins/scm-hg-plugin/src/main/java/sonia/scm/repository/HgRepositoryHandler.java @@ -310,6 +310,24 @@ public class HgRepositoryHandler return diffViewer; } + /** + * Method description + * + * + * @return + */ + public HgContext getHgContext() + { + HgContext context = hgContextProvider.get(); + + if (context == null) + { + context = new HgContext(); + } + + return context; + } + /** * Method description * diff --git a/scm-plugins/scm-hg-plugin/src/main/java/sonia/scm/repository/spi/HgCommandContext.java b/scm-plugins/scm-hg-plugin/src/main/java/sonia/scm/repository/spi/HgCommandContext.java index 0712c4b24f..fee73513cd 100644 --- a/scm-plugins/scm-hg-plugin/src/main/java/sonia/scm/repository/spi/HgCommandContext.java +++ b/scm-plugins/scm-hg-plugin/src/main/java/sonia/scm/repository/spi/HgCommandContext.java @@ -76,7 +76,8 @@ public class HgCommandContext implements Closeable HgRepositoryHandler handler, sonia.scm.repository.Repository repository, File directory) { - this(hookManager, handler, repository, directory, false); + this(hookManager, handler, repository, directory, + handler.getHgContext().isPending()); } /** diff --git a/scm-plugins/scm-hg-plugin/src/test/java/sonia/scm/repository/spi/IncomingOutgoingTestBase.java b/scm-plugins/scm-hg-plugin/src/test/java/sonia/scm/repository/spi/IncomingOutgoingTestBase.java index fa25d92866..e1904db1b0 100644 --- a/scm-plugins/scm-hg-plugin/src/test/java/sonia/scm/repository/spi/IncomingOutgoingTestBase.java +++ b/scm-plugins/scm-hg-plugin/src/test/java/sonia/scm/repository/spi/IncomingOutgoingTestBase.java @@ -30,6 +30,7 @@ */ + package sonia.scm.repository.spi; //~--- non-JDK imports -------------------------------------------------------- @@ -52,6 +53,7 @@ import org.junit.rules.TemporaryFolder; import sonia.scm.AbstractTestBase; import sonia.scm.repository.ChangesetPagingResult; import sonia.scm.repository.HgConfig; +import sonia.scm.repository.HgContext; import sonia.scm.repository.HgRepositoryHandler; import sonia.scm.repository.HgTestUtil; import sonia.scm.user.User; @@ -104,6 +106,7 @@ public abstract class IncomingOutgoingTestBase extends AbstractTestBase when(handler.getDirectory(outgoingRepository)).thenReturn( outgoingDirectory); when(handler.getConfig()).thenReturn(temp.getConfig()); + when(handler.getHgContext()).thenReturn(new HgContext()); } //~--- set methods ----------------------------------------------------------