From 749110b462b3147c6dfff076fb5d1bf0460a4f99 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Tue, 07 Aug 2012 08:14:15 -0400
Subject: [PATCH] Do not incrementally index blobs in submodules (issue 119)

---
 src/com/gitblit/utils/JGitUtils.java |   24 +++++++++++++-----------
 1 files changed, 13 insertions(+), 11 deletions(-)

diff --git a/src/com/gitblit/utils/JGitUtils.java b/src/com/gitblit/utils/JGitUtils.java
index 4415982..90e6a76 100644
--- a/src/com/gitblit/utils/JGitUtils.java
+++ b/src/com/gitblit/utils/JGitUtils.java
@@ -559,18 +559,20 @@
 				}
 				ObjectId entid = tw.getObjectId(0);
 				FileMode entmode = tw.getFileMode(0);
-				RevObject ro = rw.lookupAny(entid, entmode.getObjectType());
-				rw.parseBody(ro);
-				ByteArrayOutputStream os = new ByteArrayOutputStream();
-				ObjectLoader ldr = repository.open(ro.getId(), Constants.OBJ_BLOB);
-				byte[] tmp = new byte[4096];
-				InputStream in = ldr.openStream();
-				int n;
-				while ((n = in.read(tmp)) > 0) {
-					os.write(tmp, 0, n);
+				if (entmode != FileMode.GITLINK) {
+					RevObject ro = rw.lookupAny(entid, entmode.getObjectType());
+					rw.parseBody(ro);
+					ByteArrayOutputStream os = new ByteArrayOutputStream();
+					ObjectLoader ldr = repository.open(ro.getId(), Constants.OBJ_BLOB);
+					byte[] tmp = new byte[4096];
+					InputStream in = ldr.openStream();
+					int n;
+					while ((n = in.read(tmp)) > 0) {
+						os.write(tmp, 0, n);
+					}
+					in.close();
+					content = os.toByteArray();
 				}
-				in.close();
-				content = os.toByteArray();
 			}
 		} catch (Throwable t) {
 			error(t, repository, "{0} can't find {1} in tree {2}", path, tree.name());

--
Gitblit v1.9.1