java.lang.Object
org.eclipse.jgit.internal.storage.file.Pack
All Implemented Interfaces:
Iterable<PackIndex.MutableEntry>

public class Pack extends Object implements Iterable<PackIndex.MutableEntry>
A Git version 2 pack file representation. A pack file contains Git objects in delta packed format yielding high compression of lots of object where some objects are similar.
  • Field Details

    • SORT

      public static final Comparator<Pack> SORT
      Sorts PackFiles to be most recently created to least recently created.
  • Constructor Details

    • Pack

      public Pack(Config cfg, File packFile, @Nullable PackFile bitmapIdxFile)
      Construct a reader for an existing, pre-indexed packfile.
      Parameters:
      cfg - configuration this directory consults for write settings.
      packFile - path of the .pack file holding the data.
      bitmapIdxFile - existing bitmap index file with the same base as the pack
  • Method Details

    • getPackFile

      public PackFile getPackFile()
      Get the File object which locates this pack on disk.
      Returns:
      the File object which locates this pack on disk.
    • getIndex

      public PackIndex getIndex() throws IOException
      Get the index for this pack file.
      Returns:
      the index for this pack file.
      Throws:
      IOException - if an IO error occurred
    • getPackName

      public String getPackName()
      Get name extracted from pack-*.pack pattern.
      Returns:
      name extracted from pack-*.pack pattern.
    • hasObject

      public boolean hasObject(AnyObjectId id) throws IOException
      Determine if an object is contained within the pack file.

      For performance reasons only the index file is searched; the main pack content is ignored entirely.

      Parameters:
      id - the object to look for. Must not be null.
      Returns:
      true if the object is in this pack; false otherwise.
      Throws:
      IOException - the index file cannot be loaded into memory.
    • shouldBeKept

      public boolean shouldBeKept()
      Determines whether a .keep file exists for this pack file.
      Returns:
      true if a .keep file exist.
    • close

      public void close()
      Close the resources utilized by this repository
    • iterator

      public Iterator<PackIndex.MutableEntry> iterator()

      Provide iterator over entries in associated pack index, that should also exist in this pack file. Objects returned by such iterator are mutable during iteration.

      Iterator returns objects in SHA-1 lexicographical order.

      Specified by:
      iterator in interface Iterable<PackIndex.MutableEntry>
      See Also:
    • toString

      public String toString()
      Overrides:
      toString in class Object