| /* |
| * 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); |
| } |
| } |