Thread (13 messages) flat view 13 messages, 4 authors, 2016-06-15

Re: [PATCH] Implement packed refs

From: Robin Rosenberg <hidden>
Date: 2016-06-15 22:43:10

tisdag 15 maj 2007 skrev Shawn O. Pearce:
Robin Rosenberg [off-list ref] wrote:
quoted
diff --git a/org.spearce.jgit/src/org/spearce/jgit/lib/Repository.java b/org.spearce.jgit/src/org/spearce/jgit/lib/Repository.java
index 76191be..3b2a82c 100644
@@ -411,6 +412,10 @@ public class Repository {
 	private Ref readRefBasic(String name) throws IOException {
 		int depth = 0;
 		REF_READING: do {
+			ObjectId id = packedRefs.get(name);
+			if (id != null)
+				return new Ref(null, id);
+
 			final File f = new File(getDirectory(), name);
 			if (!f.isFile()) {
 				return new Ref(f, null);
This is actually backwards.  Git checks the loose ref first, and
then the packed ref.  The reason is so that users can pack all
of their refs (git pack-refs --all) and then just create new ref
files for those that they change, rather than rewriting the entire
packed-refs file over again.

I'm adding a commit after your series to correct this.
Thanks.
quoted
+		} catch (IOException e) {
+			e.printStackTrace();
+		}
We really should be throwing exceptions back to the caller,
especially on things that could indicate corruption or other
problems with reading the repository contents.
Well, [looking for something to blame]... 

-- robin
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help