Browse Source

Add setLength(long) to DirCacheEntry

Applications should favor the long style interface, especially when
their source input is a long type, e.g. coming from java.io.File.
This way when the index format is later changed to support a
larger file size than 2 GiB we can handle it by just changing the
entry code, and not need to fix a lot of applications.

Change-Id: I332563caeb110014e2d544dc33050ce67ae9e897
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
stable-0.9
Shawn O. Pearce 15 years ago
parent
commit
edd8029558
  1. 1
      org.eclipse.jgit/resources/org/eclipse/jgit/JGitText.properties
  2. 1
      org.eclipse.jgit/src/org/eclipse/jgit/JGitText.java
  3. 16
      org.eclipse.jgit/src/org/eclipse/jgit/dircache/DirCacheEntry.java

1
org.eclipse.jgit/resources/org/eclipse/jgit/JGitText.properties

@ -328,6 +328,7 @@ shortReadOfBlock=Short read of block.
shortReadOfOptionalDIRCExtensionExpectedAnotherBytes=Short read of optional DIRC extension {0}; expected another {1} bytes within the section.
shortSkipOfBlock=Short skip of block.
similarityScoreMustBeWithinBounds=Similarity score must be between 0 and 100.
sizeExceeds2GB=Path {0} size {1} exceeds 2 GiB limit.
smartHTTPPushDisabled=smart HTTP push disabled
sourceDestinationMustMatch=Source/Destination must match.
sourceIsNotAWildcard=Source is not a wildcard.

1
org.eclipse.jgit/src/org/eclipse/jgit/JGitText.java

@ -387,6 +387,7 @@ public class JGitText extends TranslationBundle {
/***/ public String shortReadOfOptionalDIRCExtensionExpectedAnotherBytes;
/***/ public String shortSkipOfBlock;
/***/ public String similarityScoreMustBeWithinBounds;
/***/ public String sizeExceeds2GB;
/***/ public String smartHTTPPushDisabled;
/***/ public String sourceDestinationMustMatch;
/***/ public String sourceIsNotAWildcard;

16
org.eclipse.jgit/src/org/eclipse/jgit/dircache/DirCacheEntry.java vendored

@ -486,6 +486,22 @@ public class DirCacheEntry {
NB.encodeInt32(info, infoOffset + P_SIZE, sz);
}
/**
* Set the cached size (in bytes) of this file.
*
* @param sz
* new cached size of the file, as bytes.
* @throws IllegalArgumentException
* if the size exceeds the 2 GiB barrier imposed by current file
* format limitations.
*/
public void setLength(final long sz) {
if (Integer.MAX_VALUE <= sz)
throw new IllegalArgumentException(MessageFormat.format(JGitText
.get().sizeExceeds2GB, getPathString(), sz));
setLength((int) sz);
}
/**
* Obtain the ObjectId for the entry.
* <p>

Loading…
Cancel
Save