Package org.eclipse.jgit.storage.pack

Examples of org.eclipse.jgit.storage.pack.PackWriter$State


      pc.setIndexVersion(2);
      pc.setDeltaCompress(false);
      pc.setReuseDeltas(true);
      pc.setReuseObjects(true);

      PackWriter pw = new PackWriter(pc, ctx);
      try {
        pw.setDeltaBaseAsOffset(true);
        pw.setReuseDeltaCommits(false);

        addObjectsToPack(pw, ctx, pm);
        if (pw.getObjectCount() == 0)
          return;

        boolean rollback = true;
        DfsPackDescription pack = objdb.newPack(COMPACT);
        try {
          writePack(objdb, pack, pw, pm);
          writeIndex(objdb, pack, pw);

          PackWriter.Statistics stats = pw.getStatistics();
          pw.release();
          pw = null;

          pack.setPackStats(stats);
          objdb.commitPack(Collections.singletonList(pack), toPrune());
          newPacks.add(pack);
          newStats.add(stats);
          rollback = false;
        } finally {
          if (rollback)
            objdb.rollbackPack(Collections.singletonList(pack));
        }
      } finally {
        if (pw != null)
          pw.release();
      }
    } finally {
      ctx.release();
    }
  }
View Full Code Here


  private void packHeads(ProgressMonitor pm) throws IOException {
    if (allHeads.isEmpty())
      return;

    PackWriter pw = newPackWriter();
    try {
      pw.preparePack(pm, allHeads, Collections.<ObjectId> emptySet());
      if (0 < pw.getObjectCount())
        writePack(GC, pw, pm).setTips(allHeads);
    } finally {
      pw.release();
    }
  }
View Full Code Here

  private void packRest(ProgressMonitor pm) throws IOException {
    if (nonHeads.isEmpty() || objectsPacked == getObjectsBefore())
      return;

    PackWriter pw = newPackWriter();
    try {
      for (DfsPackFile pack : newPackList)
        pw.excludeObjects(pack.getPackIndex(ctx));
      pw.preparePack(pm, nonHeads, allHeads);
      if (0 < pw.getObjectCount())
        writePack(GC, pw, pm);
    } finally {
      pw.release();
    }
  }
View Full Code Here

    // TODO(sop) This is ugly. The garbage pack needs to be deleted.
    List<PackIndex> newIdx = new ArrayList<PackIndex>(newPackList.size());
    for (DfsPackFile pack : newPackList)
      newIdx.add(pack.getPackIndex(ctx));

    PackWriter pw = newPackWriter();
    try {
      RevWalk pool = new RevWalk(ctx);
      for (DfsPackFile oldPack : packsBefore) {
        PackIndex oldIdx = oldPack.getPackIndex(ctx);
        pm.beginTask("Finding garbage", (int) oldIdx.getObjectCount());
        for (PackIndex.MutableEntry ent : oldIdx) {
          pm.update(1);
          ObjectId id = ent.toObjectId();
          if (pool.lookupOrNull(id) != null || anyIndexHas(newIdx, id))
            continue;

          int type = oldPack.getObjectType(ctx, ent.getOffset());
          pw.addObject(pool.lookupAny(id, type));
        }
        pm.endTask();
      }
      if (0 < pw.getObjectCount())
        writePack(UNREACHABLE_GARBAGE, pw, pm);
    } finally {
      pw.release();
    }
  }
View Full Code Here

    }
    return objectsBefore;
  }

  private PackWriter newPackWriter() {
    PackWriter pw = new PackWriter(packConfig, ctx);
    pw.setDeltaBaseAsOffset(true);
    pw.setReuseDeltaCommits(false);
    pw.setTagTargets(tagTargets);
    return pw;
  }
View Full Code Here

      pc.setIndexVersion(2);
      pc.setDeltaCompress(false);
      pc.setReuseDeltas(true);
      pc.setReuseObjects(true);

      PackWriter pw = new PackWriter(pc, ctx);
      try {
        pw.setDeltaBaseAsOffset(true);
        pw.setReuseDeltaCommits(false);

        addObjectsToPack(pw, ctx, pm);
        if (pw.getObjectCount() == 0)
          return;

        boolean rollback = true;
        DfsPackDescription pack = objdb.newPack(COMPACT);
        try {
          writePack(objdb, pack, pw, pm);
          writeIndex(objdb, pack, pw);

          PackWriter.Statistics stats = pw.getStatistics();
          pw.release();
          pw = null;

          pack.setPackStats(stats);
          objdb.commitPack(Collections.singletonList(pack), toPrune());
          newPacks.add(pack);
          newStats.add(stats);
          rollback = false;
        } finally {
          if (rollback)
            objdb.rollbackPack(Collections.singletonList(pack));
        }
      } finally {
        if (pw != null)
          pw.release();
      }
    } finally {
      ctx.release();
    }
  }
View Full Code Here

  private void packHeads(ProgressMonitor pm) throws IOException {
    if (allHeads.isEmpty())
      return;

    PackWriter pw = newPackWriter();
    try {
      pw.preparePack(pm, allHeads, Collections.<ObjectId> emptySet());
      if (0 < pw.getObjectCount())
        writePack(GC, pw, pm).setTips(allHeads);
    } finally {
      pw.release();
    }
  }
View Full Code Here

  private void packRest(ProgressMonitor pm) throws IOException {
    if (nonHeads.isEmpty() || objectsPacked == getObjectsBefore())
      return;

    PackWriter pw = newPackWriter();
    try {
      for (PackWriter.ObjectIdSet packedObjs : newPackObj)
        pw.excludeObjects(packedObjs);
      pw.preparePack(pm, nonHeads, allHeads);
      if (0 < pw.getObjectCount())
        writePack(GC, pw, pm);
    } finally {
      pw.release();
    }
  }
View Full Code Here

  private void packGarbage(ProgressMonitor pm) throws IOException {
    if (objectsPacked == getObjectsBefore())
      return;

    // TODO(sop) This is ugly. The garbage pack needs to be deleted.
    PackWriter pw = newPackWriter();
    try {
      RevWalk pool = new RevWalk(ctx);
      for (DfsPackFile oldPack : packsBefore) {
        PackIndex oldIdx = oldPack.getPackIndex(ctx);
        pm.beginTask("Finding garbage", (int) oldIdx.getObjectCount());
        for (PackIndex.MutableEntry ent : oldIdx) {
          pm.update(1);
          ObjectId id = ent.toObjectId();
          if (pool.lookupOrNull(id) != null || anyPackHas(id))
            continue;

          int type = oldPack.getObjectType(ctx, ent.getOffset());
          pw.addObject(pool.lookupAny(id, type));
        }
        pm.endTask();
      }
      if (0 < pw.getObjectCount())
        writePack(UNREACHABLE_GARBAGE, pw, pm);
    } finally {
      pw.release();
    }
  }
View Full Code Here

    }
    return objectsBefore;
  }

  private PackWriter newPackWriter() {
    PackWriter pw = new PackWriter(packConfig, ctx);
    pw.setDeltaBaseAsOffset(true);
    pw.setReuseDeltaCommits(false);
    pw.setTagTargets(tagTargets);
    return pw;
  }
View Full Code Here

TOP

Related Classes of org.eclipse.jgit.storage.pack.PackWriter$State

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.