<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -14,13 +14,19 @@ If it's your first time looking at the source have a look at the class diagram i
 Bugs / Features
 ===============
 
-If you find any bugs or would like to see a feature implemented please report it at the [Lighthouse tracker](http://pheew.lighthouseapp.com/projects/21305/home)
+If you find any bugs or would like to see a feature implemented please report it at the 
+[Lighthouse tracker](http://pheew.lighthouseapp.com/projects/21305/home)
 
 
 How about Mono?
 ===============
 
-While it would be nice to be able to use dotGit on Mono it is NOT supported at the moment. The main reason behind this is the fact that we're using native Windows API calls to create memory maps because this is not supported by the .NET runtime. Using memory maps drastically improves dotGit's performance and we're not willing to sacrifice this huge performance boost for portability. 
-Furthermore Mono is, for the most part, used on \*NIX systems. Obviously, Git support on these OS's is excellent. Using regular Git is the sane choice here.
+While it would be nice to be able to use dotGit on Mono it is NOT supported at the moment. 
+The main reason behind this is the fact that we're using native Windows API calls to create 
+memory maps because this is not supported by the .NET runtime. Using memory maps drastically 
+improves dotGit's performance and we're not willing to sacrifice this huge performance 
+boost for portability. Furthermore Mono is, for the most part, used on \*NIX systems. 
+Obviously, Git support on these OS's is excellent. Using regular Git is the sane choice here.
 
-That being said, we might add support for Mono in the future by providing builds for Mono where memory maps are created using the Mono libraries. (Making these builds \*NIX only)
\ No newline at end of file
+That being said, we might add support for Mono in the future by providing builds for Mono 
+where memory maps are created using the Mono libraries. (Making these builds \*NIX only)
\ No newline at end of file</diff>
      <filename>README.markdown</filename>
    </modified>
    <modified>
      <diff>@@ -1,9 +1,12 @@
 &#65279;&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
 &lt;ClassDiagram MajorVersion=&quot;1&quot; MinorVersion=&quot;1&quot;&gt;
+  &lt;Comment CommentText=&quot;IStorableObject is the common interface for objects that Git stores in it's database. These are: &amp;#xD;&amp;#xA;- Blob&amp;#xD;&amp;#xA;- Tree&amp;#xD;&amp;#xA;- Commit&amp;#xD;&amp;#xA;- Tag&quot;&gt;
+    &lt;Position X=&quot;0.5&quot; Y=&quot;0.552&quot; Height=&quot;1.437&quot; Width=&quot;1.752&quot; /&gt;
+  &lt;/Comment&gt;
   &lt;Class Name=&quot;dotGit.Objects.GitObject&quot; Collapsed=&quot;true&quot;&gt;
     &lt;Position X=&quot;3&quot; Y=&quot;5.5&quot; Width=&quot;1.5&quot; /&gt;
     &lt;TypeIdentifier&gt;
-      &lt;HashCode&gt;AAAAAAAAAAAAAAAAAACAAAABACBAAAAAAAAAAAAAAAA=&lt;/HashCode&gt;
+      &lt;HashCode&gt;AAAAAAAAAAAAgAAAAACAAAABACBAAAAAAAAAAAAAAAA=&lt;/HashCode&gt;
       &lt;FileName&gt;Objects\GitObject.cs&lt;/FileName&gt;
     &lt;/TypeIdentifier&gt;
     &lt;Lollipop Position=&quot;0.2&quot; /&gt;
@@ -32,28 +35,28 @@
   &lt;Class Name=&quot;dotGit.Objects.Commit&quot; Collapsed=&quot;true&quot;&gt;
     &lt;Position X=&quot;5&quot; Y=&quot;5.5&quot; Width=&quot;1.5&quot; /&gt;
     &lt;TypeIdentifier&gt;
-      &lt;HashCode&gt;AAAAAAgAACCAEAAAgAACwAEQACBAAAAAAAAAIAAACAA=&lt;/HashCode&gt;
+      &lt;HashCode&gt;AAAAQAgAACCACAAEgAAAgAEAACBAAIAAAAAAIAAoCAI=&lt;/HashCode&gt;
       &lt;FileName&gt;Objects\Commit.cs&lt;/FileName&gt;
     &lt;/TypeIdentifier&gt;
   &lt;/Class&gt;
   &lt;Class Name=&quot;dotGit.Refs.Ref&quot; Collapsed=&quot;true&quot;&gt;
     &lt;Position X=&quot;3.75&quot; Y=&quot;2.5&quot; Width=&quot;1.5&quot; /&gt;
     &lt;TypeIdentifier&gt;
-      &lt;HashCode&gt;AAAAAAAAAAACAAIAAAAAAAQBAAAEAAAAAAAAAACAEAA=&lt;/HashCode&gt;
+      &lt;HashCode&gt;AAAAAAAAAAAAAAIAAACAAAQBAABAAAAAAAAAAAAAAAA=&lt;/HashCode&gt;
       &lt;FileName&gt;Refs\Ref.cs&lt;/FileName&gt;
     &lt;/TypeIdentifier&gt;
   &lt;/Class&gt;
   &lt;Class Name=&quot;dotGit.Refs.Branch&quot; Collapsed=&quot;true&quot;&gt;
     &lt;Position X=&quot;3&quot; Y=&quot;4&quot; Width=&quot;1.5&quot; /&gt;
     &lt;TypeIdentifier&gt;
-      &lt;HashCode&gt;AAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=&lt;/HashCode&gt;
+      &lt;HashCode&gt;AAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAQ=&lt;/HashCode&gt;
       &lt;FileName&gt;Refs\Branch.cs&lt;/FileName&gt;
     &lt;/TypeIdentifier&gt;
   &lt;/Class&gt;
   &lt;Class Name=&quot;dotGit.Refs.Tag&quot; Collapsed=&quot;true&quot;&gt;
     &lt;Position X=&quot;5&quot; Y=&quot;4&quot; Width=&quot;1.5&quot; /&gt;
     &lt;TypeIdentifier&gt;
-      &lt;HashCode&gt;IAAAAAACABAAAAAgAACAACAAACBAAAAAAAAAIAAAAAA=&lt;/HashCode&gt;
+      &lt;HashCode&gt;AAAAgAACABAAgAAgAAAAACACACBAAAAAAAAAIAAAAAA=&lt;/HashCode&gt;
       &lt;FileName&gt;Refs\Tag.cs&lt;/FileName&gt;
     &lt;/TypeIdentifier&gt;
     &lt;Lollipop Position=&quot;0.2&quot; /&gt;
@@ -68,7 +71,7 @@
   &lt;Class Name=&quot;dotGit.Repository&quot; Collapsed=&quot;true&quot;&gt;
     &lt;Position X=&quot;3.75&quot; Y=&quot;0.5&quot; Width=&quot;1.5&quot; /&gt;
     &lt;TypeIdentifier&gt;
-      &lt;HashCode&gt;AIAAAAACCIAAKAAAAAggAAAIAACAAEAAAAECAAABgoA=&lt;/HashCode&gt;
+      &lt;HashCode&gt;AIQAAAACCoAAKAAAAAggAAAAAACAAEAAAAECAAABgpA=&lt;/HashCode&gt;
       &lt;FileName&gt;Repository.cs&lt;/FileName&gt;
     &lt;/TypeIdentifier&gt;
   &lt;/Class&gt;
@@ -86,10 +89,38 @@
       &lt;FileName&gt;Objects\TreeNodeCollection.cs&lt;/FileName&gt;
     &lt;/TypeIdentifier&gt;
   &lt;/Class&gt;
+  &lt;Class Name=&quot;dotGit.Objects.Storage.Pack&quot; Collapsed=&quot;true&quot;&gt;
+    &lt;Position X=&quot;11.5&quot; Y=&quot;1.75&quot; Width=&quot;1.5&quot; /&gt;
+    &lt;TypeIdentifier&gt;
+      &lt;HashCode&gt;IAAAAAAAAAAAIAIAAAAAIAABAAAAAAABAAAAAAAAAAA=&lt;/HashCode&gt;
+      &lt;FileName&gt;Objects\Storage\Pack.cs&lt;/FileName&gt;
+    &lt;/TypeIdentifier&gt;
+  &lt;/Class&gt;
+  &lt;Class Name=&quot;dotGit.Objects.Storage.PackIndexV2&quot; Collapsed=&quot;true&quot;&gt;
+    &lt;Position X=&quot;12.25&quot; Y=&quot;4.25&quot; Width=&quot;1.5&quot; /&gt;
+    &lt;TypeIdentifier&gt;
+      &lt;HashCode&gt;IQAAhAAgAAAAAAIAAAAAAAABEIACAAABQAEAAAAAAAA=&lt;/HashCode&gt;
+      &lt;FileName&gt;Objects\Storage\PackIndexV2.cs&lt;/FileName&gt;
+    &lt;/TypeIdentifier&gt;
+  &lt;/Class&gt;
+  &lt;Class Name=&quot;dotGit.Objects.Storage.PackV2&quot; Collapsed=&quot;true&quot;&gt;
+    &lt;Position X=&quot;12&quot; Y=&quot;3.25&quot; Width=&quot;1.5&quot; /&gt;
+    &lt;TypeIdentifier&gt;
+      &lt;HashCode&gt;IAAAAAAAAAAAIAQAAEAAAAAAAAAAAAAACEEEAAAABAA=&lt;/HashCode&gt;
+      &lt;FileName&gt;Objects\Storage\PackV2.cs&lt;/FileName&gt;
+    &lt;/TypeIdentifier&gt;
+  &lt;/Class&gt;
+  &lt;Class Name=&quot;dotGit.Objects.Storage.PackFileV2&quot; Collapsed=&quot;true&quot;&gt;
+    &lt;Position X=&quot;10&quot; Y=&quot;4.25&quot; Width=&quot;1.5&quot; /&gt;
+    &lt;TypeIdentifier&gt;
+      &lt;HashCode&gt;IAAAQAAAABAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA=&lt;/HashCode&gt;
+      &lt;FileName&gt;Objects\Storage\PackFileV2.cs&lt;/FileName&gt;
+    &lt;/TypeIdentifier&gt;
+  &lt;/Class&gt;
   &lt;Interface Name=&quot;dotGit.Objects.Storage.IStorableObject&quot;&gt;
-    &lt;Position X=&quot;0.5&quot; Y=&quot;1.5&quot; Width=&quot;1.5&quot; /&gt;
+    &lt;Position X=&quot;0.5&quot; Y=&quot;2.25&quot; Width=&quot;1.5&quot; /&gt;
     &lt;TypeIdentifier&gt;
-      &lt;HashCode&gt;AAAAAAAAAAAAAAAAAACAAAAAACBAAAAAAAAAAAAAAAA=&lt;/HashCode&gt;
+      &lt;HashCode&gt;AAAAAAAAAAAAgAAAAACAAAAAACBAAAAAAAAAAAAAAAA=&lt;/HashCode&gt;
       &lt;FileName&gt;Objects\Storage\IStorableObject.cs&lt;/FileName&gt;
     &lt;/TypeIdentifier&gt;
   &lt;/Interface&gt;</diff>
      <filename>dotGit/ClassDiagram.cd</filename>
    </modified>
    <modified>
      <diff>@@ -10,7 +10,7 @@ using System.ComponentModel;
 namespace dotGit.Config
 {
   /// &lt;summary&gt;
-  /// Configuration class to represent global and repository scoped Git settings. Parts of this code where derived from the 
+  /// Configuration class to represent global and repository scoped Git settings. Parts of this code were derived from the 
   /// INI file handler described here : http://www.codeproject.com/KB/files/TA_INIDocument_cs.aspx
   /// 
   /// Global configuration is read/saved on demand. Repository configuration is loaded by instantiating this class and only saved after calling Save() for now.</diff>
      <filename>dotGit/Config/Configuration.cs</filename>
    </modified>
    <modified>
      <diff>@@ -103,27 +103,37 @@ namespace dotGit.Objects.Storage
             }
             else if (obj is Deltified)
             {
+              // Loop while we're still finding delta's and collect them
+
+              // Kick it off with the object found above
               List&lt;Deltified&gt; deltas = new List&lt;Deltified&gt;();
               deltas.Add((Deltified)obj);
+
+
               while (obj is Deltified)
               {
                 if (obj is REFDelta)
-                {
+                { // It's a REFDelta, we need fetch an offset from the idx file
                   string baseSha = ((REFDelta)obj).BaseSHA;
                   packFileOffset = Index.GetPackFileOffset(new Sha(baseSha));
                 }
                 else
-                {
+                { // It's an OFSDelta, apply it to current packFileOffset
                   packFileOffset -= ((OFSDelta)obj).BackwardsBaseOffset;
                 }
+
+                // Set stream offset to new object's offset
                 reader.Position = packFileOffset;
 
+                // Fetch next object
                 obj = Pack.GetObjectWithOffset(reader);
 
+                // Collect delta
                 if (obj is Deltified)
                   deltas.Add((Deltified)obj);
               }
 
+              // Whole object found! Apply found delta's starting with the last one we've found
               for (int i = deltas.Count - 1; i &gt;= 0; i--)
               {
                 ((Undeltified)obj).ApplyDelta(deltas[i]);</diff>
      <filename>dotGit/Objects/Storage/PackV2.cs</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>140bf4423e7efd33f56c6bcde5c49b4f1f777608</id>
    </parent>
  </parents>
  <author>
    <name>Pheew</name>
    <email>nbruins@gmail.com</email>
  </author>
  <url>http://github.com/pheew/dotgit/commit/9520e9561bf84f6b8666901de4d0479d869d42f8</url>
  <id>9520e9561bf84f6b8666901de4d0479d869d42f8</id>
  <committed-date>2009-01-21T14:31:47-08:00</committed-date>
  <authored-date>2009-01-21T14:31:47-08:00</authored-date>
  <message>Add some more documentation</message>
  <tree>dabd40af35858c42bb9965630c1e19cbda67855f</tree>
  <committer>
    <name>Pheew</name>
    <email>nbruins@gmail.com</email>
  </committer>
</commit>
