/* * Copyright (c) 2024 Qualcomm Innovation Center, Inc. * and other copyright owners as documented in the project's IP log. * * 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.pgm; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import java.io.File; import org.eclipse.jgit.api.Git; import org.eclipse.jgit.internal.storage.file.FileRepository; import org.eclipse.jgit.lib.CLIRepositoryTestCase; import org.eclipse.jgit.lib.ConfigConstants; import org.eclipse.jgit.lib.Constants; import org.eclipse.jgit.lib.Ref; import org.junit.Before; import org.junit.Test; public class PackRefsTest extends CLIRepositoryTestCase { private Git git; @Override @Before public void setUp() throws Exception { super.setUp(); git = new Git(db); git.commit().setMessage("initial commit").call(); } @Test public void tagPacked() throws Exception { git.tag().setName("test").call(); git.packRefs().call(); assertEquals(Ref.Storage.PACKED, git.getRepository().exactRef("refs/tags/test").getStorage()); } @Test public void nonTagRefNotPackedWithoutAll() throws Exception { git.branchCreate().setName("test").call(); git.packRefs().call(); assertEquals(Ref.Storage.LOOSE, git.getRepository().exactRef("refs/heads/test").getStorage()); } @Test public void nonTagRefPackedWithAll() throws Exception { git.branchCreate().setName("test").call(); git.packRefs().setAll(true).call(); assertEquals(Ref.Storage.PACKED, git.getRepository().exactRef("refs/heads/test").getStorage()); } @Test public void refTableCompacted() throws Exception { ((FileRepository) git.getRepository()).convertRefStorage( ConfigConstants.CONFIG_REF_STORAGE_REFTABLE, false, false); git.commit().setMessage("test commit").call(); File tableDir = new File(db.getDirectory(), Constants.REFTABLE); File[] reftables = tableDir.listFiles(); assertNotNull(reftables); assertTrue(reftables.length > 2); git.packRefs().call(); reftables = tableDir.listFiles(); assertNotNull(reftables); assertEquals(2, reftables.length); } }