</message_arguments>
</filter>
</resource>
+ <resource path="src/org/eclipse/jgit/transport/BaseReceivePack.java" type="org.eclipse.jgit.transport.BaseReceivePack">
+ <filter comment="Method is only used by those subclassing BaseReceivePack, minor version are allowed to break implementer API according to OSGi semantic versioning (http://www.osgi.org/wiki/uploads/Links/SemanticVersioning.pdf)" id="338792546">
+ <message_arguments>
+ <message_argument value="org.eclipse.jgit.transport.BaseReceivePack"/>
+ <message_argument value="unlockPack()"/>
+ </message_arguments>
+ </filter>
+ </resource>
<resource path="src/org/eclipse/jgit/transport/TransportHttp.java" type="org.eclipse.jgit.transport.TransportHttp">
<filter comment="Method is only used by implementers of TransportHttp's API, minor version are allowed to break implementer API according to OSGi semantic versioning (http://www.osgi.org/wiki/uploads/Links/SemanticVersioning.pdf)" id="338792546">
<message_arguments>
public class PackLock {
private final File keepFile;
private final FS fs;
+ private final File packFile;
/**
* Create a new lock for a pack file.
final String n = packFile.getName();
keepFile = new File(p, n.substring(0, n.length() - 5) + ".keep"); //$NON-NLS-1$
this.fs = fs;
+ this.packFile = packFile;
}
/**
public void unlock() throws IOException {
FileUtils.delete(keepFile);
}
+
+ /**
+ * @return the pack file being held by this lock
+ */
+ public File getPackFile() {
+ return packFile;
+ }
}
import static org.eclipse.jgit.transport.SideBandOutputStream.CH_PROGRESS;
import static org.eclipse.jgit.transport.SideBandOutputStream.MAX_BUF;
+import java.io.File;
import java.io.EOFException;
import java.io.IOException;
import java.io.InputStream;
/**
* Unlock the pack written by this object.
*
+ * @return the pack file that was unlocked, {@code null} if there was no
+ * lock
* @throws IOException
* the pack could not be unlocked.
+ * @since 3.3
*/
- protected void unlockPack() throws IOException {
+ protected File unlockPack() throws IOException {
if (packLock != null) {
+ File packFile = packLock.getPackFile();
packLock.unlock();
packLock = null;
+ return packFile;
}
+ return null;
}
/**
import static org.eclipse.jgit.transport.GitProtocolConstants.CAPABILITY_REPORT_STATUS;
+import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
private boolean echoCommandFailures;
+ /** The pack file that was created by this receive pack */
+ private File packFile;
+
/**
* Create a new pack receive for an open repository.
*
}
}
+ /**
+ * @return the pack file that was created by the
+ * {@link #receive(InputStream, OutputStream, OutputStream)} method
+ * @since 3.3
+ */
+ public File getPackFile() {
+ return packFile;
+ }
+
@Override
protected void enableCapabilities() {
reportStatus = isCapabilityEnabled(CAPABILITY_REPORT_STATUS);
preReceive.onPreReceive(this, filterCommands(Result.NOT_ATTEMPTED));
executeCommands();
}
- unlockPack();
+ packFile = unlockPack();
if (reportStatus) {
if (echoCommandFailures && msgOut != null) {