diff --git a/CHANGELOG.md b/CHANGELOG.md
index b10bba8e94..5fa1f5ff79 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -12,6 +12,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Changed
- New footer design
+- Update jgit to version 5.6.1.202002131546-r-scm1
- Update svnkit to version 1.10.1-scm1
### Fixed
diff --git a/pom.xml b/pom.xml
index a472742c11..39f604ca3c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -855,7 +855,7 @@
1.4.1
- v5.4.0.201906121030-r-scm2
+ 5.6.1.202002131546-r-scm1
1.10.1-scm1
diff --git a/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/repository/spi/GitLfsFilterContextListener.java b/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/repository/spi/GitLfsFilterContextListener.java
index c202874781..f116bcc550 100644
--- a/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/repository/spi/GitLfsFilterContextListener.java
+++ b/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/repository/spi/GitLfsFilterContextListener.java
@@ -4,54 +4,34 @@ import com.google.common.io.ByteStreams;
import org.eclipse.jgit.attributes.FilterCommand;
import org.eclipse.jgit.attributes.FilterCommandRegistry;
import org.eclipse.jgit.lib.Repository;
-import org.eclipse.jgit.util.FS;
+import org.eclipse.jgit.util.SystemReader;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import sonia.scm.SCMContextProvider;
import sonia.scm.plugin.Extension;
-import javax.inject.Inject;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
-import java.nio.charset.Charset;
-import java.nio.file.Files;
-import java.nio.file.Path;
import java.util.regex.Pattern;
-import static java.nio.file.StandardOpenOption.CREATE;
-import static java.nio.file.StandardOpenOption.TRUNCATE_EXISTING;
-
@Extension
public class GitLfsFilterContextListener implements ServletContextListener {
- public static final String GITCONFIG = "[filter \"lfs\"]\n" +
- "clean = git-lfs clean -- %f\n" +
- "smudge = git-lfs smudge -- %f\n" +
- "process = git-lfs filter-process\n" +
- "required = true\n";
public static final Pattern COMMAND_NAME_PATTERN = Pattern.compile("git-lfs (smudge|clean) -- .*");
private static final Logger LOG = LoggerFactory.getLogger(GitLfsFilterContextListener.class);
- private final SCMContextProvider contextProvider;
-
- @Inject
- public GitLfsFilterContextListener(SCMContextProvider contextProvider) {
- this.contextProvider = contextProvider;
- }
-
@Override
public void contextInitialized(ServletContextEvent sce) {
- Path gitconfig = contextProvider.getBaseDirectory().toPath().resolve("gitconfig");
try {
- Files.write(gitconfig, GITCONFIG.getBytes(Charset.defaultCharset()), TRUNCATE_EXISTING, CREATE);
- FS.DETECTED.setGitSystemConfig(gitconfig.toFile());
- LOG.info("wrote git config file: {}", gitconfig);
- } catch (IOException e) {
- LOG.error("could not write git config in path {}; git lfs support may not work correctly", gitconfig, e);
+ SystemReader.getInstance().getSystemConfig().setString("filter", "lfs", "clean", "git-lfs clean -- %f");
+ SystemReader.getInstance().getSystemConfig().setString("filter", "lfs", "smudge", "git-lfs smudge -- %f");
+ SystemReader.getInstance().getSystemConfig().setString("filter", "lfs", "process", "git-lfs filter-process");
+ SystemReader.getInstance().getSystemConfig().setString("filter", "lfs", "required", "true");
+ } catch (Exception e) {
+ LOG.error("could not set git config; git lfs support may not work correctly", e);
}
FilterCommandRegistry.register(COMMAND_NAME_PATTERN, NoOpFilterCommand::new);
}
diff --git a/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/web/CollectingPackParserListener.java b/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/web/CollectingPackParserListener.java
index fdb96d18d7..20873b3229 100644
--- a/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/web/CollectingPackParserListener.java
+++ b/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/web/CollectingPackParserListener.java
@@ -39,8 +39,8 @@ import com.google.common.collect.ImmutableSet;
import org.eclipse.jgit.lib.ObjectId;
import org.eclipse.jgit.lib.ObjectIdSubclassMap;
import org.eclipse.jgit.revwalk.RevObject;
-import org.eclipse.jgit.transport.BaseReceivePack;
-import org.eclipse.jgit.transport.BaseReceivePack.PackParserListener;
+import org.eclipse.jgit.transport.ReceivePack;
+import org.eclipse.jgit.transport.ReceivePack.PackParserListener;
import org.eclipse.jgit.transport.PackParser;
import org.slf4j.Logger;
@@ -76,7 +76,7 @@ public class CollectingPackParserListener implements PackParserListener
*
* @return listener
*/
- public static CollectingPackParserListener get(BaseReceivePack pack)
+ public static CollectingPackParserListener get(ReceivePack pack)
{
PackParserListener listener = pack.getPackParserListener();
@@ -101,7 +101,7 @@ public class CollectingPackParserListener implements PackParserListener
*
* @param pack receive pack
*/
- public static void set(BaseReceivePack pack)
+ public static void set(ReceivePack pack)
{
logger.trace("apply collecting listener to receive pack");
pack.setPackParserListener(new CollectingPackParserListener());
diff --git a/scm-plugins/scm-git-plugin/src/test/java/sonia/scm/repository/spi/GitModifyCommand_LFSTest.java b/scm-plugins/scm-git-plugin/src/test/java/sonia/scm/repository/spi/GitModifyCommand_LFSTest.java
index b1a5c7bbcc..90c4985d35 100644
--- a/scm-plugins/scm-git-plugin/src/test/java/sonia/scm/repository/spi/GitModifyCommand_LFSTest.java
+++ b/scm-plugins/scm-git-plugin/src/test/java/sonia/scm/repository/spi/GitModifyCommand_LFSTest.java
@@ -5,8 +5,8 @@ import com.github.sdorra.shiro.SubjectAware;
import org.eclipse.jgit.api.Git;
import org.eclipse.jgit.api.errors.GitAPIException;
import org.eclipse.jgit.revwalk.RevCommit;
-import org.junit.After;
-import org.junit.Before;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TemporaryFolder;
@@ -38,14 +38,14 @@ public class GitModifyCommand_LFSTest extends AbstractGitCommandTestBase {
private final LfsBlobStoreFactory lfsBlobStoreFactory = mock(LfsBlobStoreFactory.class);
- @Before
- public void registerFilter() {
- new GitLfsFilterContextListener(contextProvider).contextInitialized(null);
+ @BeforeClass
+ public static void registerFilter() {
+ new GitLfsFilterContextListener().contextInitialized(null);
}
- @After
- public void unregisterFilter() {
- new GitLfsFilterContextListener(contextProvider).contextDestroyed(null);
+ @AfterClass
+ public static void unregisterFilter() {
+ new GitLfsFilterContextListener().contextDestroyed(null);
}
@Test