1. 18 Nov, 2011 6 commits
  2. 17 Nov, 2011 1 commit
  3. 16 Nov, 2011 7 commits
  4. 07 Nov, 2011 11 commits
  5. 06 Nov, 2011 6 commits
    • refs: Partial rewrite for read-only refs · d4a0b124
      This new version of the references code is significantly faster and
      hopefully easier to read.
      
      External API stays the same. A new method `git_reference_reload()` has
      been added to force updating a memory reference from disk. In-memory
      references are no longer updated automagically -- this was killing us.
      
      If a reference is deleted externally and the user doesn't reload the
      memory object, nothing critical happens: any functions using that
      reference should fail gracefully (e.g. deletion, renaming, and so on).
      
      All generated references from the API are read only and must be free'd
      by the user. There is no reference counting and no traces of generated
      references are kept in the library.
      
      There is no longer an internal representation for references. There is
      only one reference struct `git_reference`, and symbolic/oid targets are
      stored inside an union.
      
      Packfile references are stored using an optimized struct with flex array
      for reference names. This should significantly reduce the memory cost of
      loading the packfile from disk.
      Vicent Marti committed
    • git_reference_rename: cleanup reference renaming · 549bbd13
      git_reference_rename() didn't properly cleanup old references given by
      the user to not break some ugly old tests. Since references don't point
      to libgit's internal cache anymore we can cleanup git_reference_rename()
      to be somewhat less messy.
      
      Signed-off-by: schu <schu-github@schulog.org>
      schu committed
    • Free all used references in the source tree · 75abd2b9
      Since references are not owned by the repository anymore we have to free
      them manually now.
      
      Signed-off-by: schu <schu-github@schulog.org>
      schu committed
    • refs: add test case checking "immutable" references · 4fd89fa0
      Signed-off-by: schu <schu-github@schulog.org>
      schu committed
    • refs: split internal and external references · a46ec457
      Currently libgit2 shares pointers to its internal reference cache with
      the user. This leads to several problems like invalidation of reference
      pointers when reordering the cache or manipulation of the cache from
      user side.
      
      Give each user its own git_reference instead of leaking the internal
      representation (struct reference).
      
      Add the following new API functions:
      
      	* git_reference_free
      	* git_reference_is_packed
      
      Signed-off-by: schu <schu-github@schulog.org>
      schu committed
  6. 05 Nov, 2011 1 commit
  7. 30 Oct, 2011 1 commit
    • test_helpers: do not rely on assert · ec907944
      The functions loose_object_mode and loose_object_dir_mode call stat
      inside an assert statement which isn't evaluated when compiling in
      Release mode (NDEBUG) and leads to failing tests. Replace it.
      
      Signed-off-by: schu <schu-github@schulog.org>
      schu committed
  8. 29 Oct, 2011 6 commits
  9. 28 Oct, 2011 1 commit