Re: [PATCH] Implement packed refs
tisdag 15 maj 2007 skrev Shawn O. Pearce:
Show 22 quoted lines
> Robin Rosenberg <robin.rosenberg@dewire.com> wrote:
> > 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.Show 7 quoted lines
> > + } 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