public class BundleWriter extends Object
 Bundles generated by this class can be later read in from a file URI using
 the bundle transport, or from an application controlled buffer by the more
 generic TransportBundleStream.
 
 Applications creating bundles need to call one or more include
 calls to reflect which objects should be available as refs in the bundle for
 the other side to fetch. At least one include is required to create a valid
 bundle file, and duplicate names are not permitted.
 
 Optional assume calls can be made to declare commits which the
 recipient must have in order to fetch from the bundle file. Objects reachable
 from these assumed commits can be used as delta bases in order to reduce the
 overall bundle size.
| Constructor and Description | 
|---|
BundleWriter(ObjectReader or)
Create a writer for a bundle. 
 | 
BundleWriter(Repository repo)
Create a writer for a bundle. 
 | 
| Modifier and Type | Method and Description | 
|---|---|
void | 
assume(RevCommit c)
Assume a commit is available on the recipient's side. 
 | 
void | 
include(Ref r)
Include a single ref (a name/object pair) in the bundle. 
 | 
void | 
include(String name,
       AnyObjectId id)
Include an object (and everything reachable from it) in the bundle. 
 | 
BundleWriter | 
setObjectCountCallback(ObjectCountCallback callback)
Set the  
ObjectCountCallback. | 
void | 
setPackConfig(PackConfig pc)
Set the configuration used by the pack generator. 
 | 
void | 
writeBundle(ProgressMonitor monitor,
           OutputStream os)
Generate and write the bundle to the output stream. 
 | 
public BundleWriter(Repository repo)
repo - repository where objects are stored.public BundleWriter(ObjectReader or)
or - reader for reading objects. Will be closed at the end of writeBundle(ProgressMonitor, OutputStream), but readers may be
            reused after closing.public void setPackConfig(PackConfig pc)
pc - configuration controlling packing parameters. If null the
            source repository's settings will be used, or the default
            settings if constructed without a repo.public void include(String name, AnyObjectId id)
name - name the recipient can discover this object as from the
            bundle's list of advertised refs . The name must be a valid
            ref format and must not have already been included in this
            bundle writer.id - object to pack. Multiple refs may point to the same object.public void include(Ref r)
 This is a utility function for:
 include(r.getName(), r.getObjectId()).
r - the ref to include.public void assume(RevCommit c)
In order to fetch from a bundle the recipient must have any assumed commit. Each assumed commit is explicitly recorded in the bundle header to permit the recipient to validate it has these objects.
c - the commit to assume being available. This commit should be
            parsed and not disposed in order to maximize the amount of
            debugging information available in the bundle stream.public void writeBundle(ProgressMonitor monitor, OutputStream os) throws IOException
This method can only be called once per BundleWriter instance.
monitor - progress monitor to report bundle writing status to.os - the stream the bundle is written to. The stream should be
            buffered by the caller. The caller is responsible for closing
            the stream.IOException - an error occurred reading a local object's data to include in
             the bundle, or writing compressed object data to the output
             stream.public BundleWriter setObjectCountCallback(ObjectCountCallback callback)
ObjectCountCallback.
 
 It should be set before calling
 writeBundle(ProgressMonitor, OutputStream).
 
 This callback will be passed on to
 PackWriter.setObjectCountCallback(org.eclipse.jgit.transport.ObjectCountCallback).
callback - the callback to setCopyright © 2020 Eclipse JGit Project. All rights reserved.