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