[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [jgit-dev] Large Objects
|
That parameter is a global for the process and isn't set in a repository. JGit has no way to set this for its command line tools. Egit needs to set it from the workspace prefs. Its the WindowCacheConfig, you need to load it and call WindowCache.reconfigure().
On Apr 10, 2012 11:31 PM, "Markus Duft" <
markus.duft@xxxxxxxxxx> wrote:
Hi!
Currently, 80 developers came to a screeching halt because somebody managed to push a 127Mb file. We managed to get Gerrit back to working order by following [1]. Still all developers cannot checkout, since jgit completely hangs (* not true, see below) when checking out this file
* jgit actually does not hang. it spends huuuuge amounts of time reading the file from the pack [2]. since the file isLarge(), it uses the fixed 8k buffer in a loop, with another 8k buffer on top, reading junks of (so it seems) 4-20 bytes. I let it run all night today, and it managed to checkout half the file (~64Mb) in 12 hours!
I need a quick and dirty solution to get around the problem to get all devs back on track. I played with streamFileThreshold, as that helped on the Gerrit server, but it seems to have no effect on local JGit. Any other thing i can do? And if it's changing a constant in jgit source for now, i'm happy too!
[1] http://groups.google.com/group/repo-discuss/browse_thread/thread/d46af3758a383e7c/fa73c82ff222a616?#fa73c82ff222a616
[2] Thread [ModalContext] (Suspended)
Inflater.inflateBytes(long, byte[], int, int) line: not available [native method]
Inflater.inflate(byte[], int, int) line: 255
InflaterInputStream.read(byte[], int, int) line: 152
InflaterInputStream.skip(long) line: 208
BufferedInputStream.skip(long) line: 366
ObjectStream$Filter.skip(long) line: 199
IO.skipFully(InputStream, long) line: 327
LargePackedDeltaObject$2(DeltaStream).seekBase() line: 339
LargePackedDeltaObject$2(DeltaStream).read(byte[], int, int) line: 213
BufferedInputStream.read1(byte[], int, int) line: 273
BufferedInputStream.read(byte[], int, int) line: 334
TeeInputStream.read(byte[], int, int) line: 111
LargePackedDeltaObject$1(ObjectStream$Filter).read(byte[], int, int) line: 209
LargePackedDeltaObject$1(InputStream).read(byte[]) line: 101
LargePackedDeltaObject(ObjectLoader).copyTo(OutputStream) line: 254
DirCacheCheckout.checkoutEntry(Repository, File, DirCacheEntry, ObjectReader) line: 961
DirCacheCheckout.doCheckout() line: 447
DirCacheCheckout.checkout() line: 381
CheckoutCommand.call() line: 174
GitRepositoryUtils.cloneRepository(File, URIish, String, boolean, IProgressMonitor, List<PostCloneTask>) line: 235
CloneRepositoryDialog$3.run(IProgressMonitor) line: 155
ModalContext$ModalContextThread.run() line: 121
Regards,
Markus