Permalink
Commits on Nov 16, 2011
  1. threads: Fix the shared global state with TLS

    vmg committed Nov 16, 2011
    See `global.c` for a description of what we're doing.
    
    When libgit2 is built with GIT_THREADS support, the threading system
    must be explicitly initialized with `git_threads_init()`.
Commits on Nov 7, 2011
  1. Merge pull request #475 from carlosmn/perms

    vmg committed Nov 7, 2011
    Fix Windows permissions problems
  2. Write packed-refs with 0644 permissions

    carlosmn committed Nov 7, 2011
    Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
  3. Reword packed-refs error messages so they're easier to track down

    carlosmn committed Nov 7, 2011
    Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
  4. Implement p_rename

    carlosmn committed Nov 7, 2011
    Move the callers of git_futils_mv_atomic to use p_rename.
    
    Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
  5. Merge pull request #473 from drafnel/bc/update-examples

    vmg committed Nov 7, 2011
    bc/update examples
  6. Merge pull request #470 from schu/test-helpers-no-assert

    vmg committed Nov 7, 2011
    test_helpers: do not rely on assert
  7. Merge pull request #472 from libgit2/new-references

    vmg committed Nov 7, 2011
    References! References! References!
  8. examples/network/git2.c: exit with proper status, and avoid segfault

    drafnel committed Nov 7, 2011
    This function should exit after printing usage information if too few
    arguments were specified.
    
    Additionally, it should exit with a failure status if the first argument
    supplied is not one in the internal command list.
  9. examples/network/fetch.c: revert overzealous conversion of free to gi…

    drafnel committed Nov 7, 2011
    …t__free
    
    Since git__free is not exported (it's actually a macro), it should not be
    used in client programs.  Change this call to 'git__free' back to 'free'.
Commits on Nov 6, 2011
  1. refs: Partial rewrite for read-only refs

    vmg committed Oct 31, 2011
    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.
  2. git_reference_rename: cleanup reference renaming

    schu authored and vmg committed Aug 13, 2011
    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>
  3. Free all used references in the source tree

    schu authored and vmg committed Aug 11, 2011
    Since references are not owned by the repository anymore we have to free
    them manually now.
    
    Signed-off-by: schu <schu-github@schulog.org>
  4. refs: add test case checking "immutable" references

    schu authored and vmg committed Jul 26, 2011
    Signed-off-by: schu <schu-github@schulog.org>
  5. refs: split internal and external references

    schu authored and vmg committed Aug 10, 2011
    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>
Commits on Nov 5, 2011
  1. examples/general.c: update for recent API renaming of git_config_get_int

    drafnel committed Nov 5, 2011
    git_config_get_int --> git_config_get_int32
Commits on Oct 30, 2011
  1. test_helpers: do not rely on assert

    schu
    schu committed Oct 30, 2011
    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>
Commits on Oct 29, 2011
  1. Merge pull request #468 from nulltoken/ntk/fix/issue-465

    vmg committed Oct 29, 2011
    Status: fix segfault (#465) and order issues
  2. status: Fix a sorting issue in the treewalker

    nulltoken committed Oct 29, 2011
    This ensures that entries from the working directory are retrieved according to the following rules:
    
     - The file "subdir" should appear before the file "subdir.txt"
     - The folder "subdir" should appear after the file "subdir.txt"
  3. status: Add a file in the test repository to cover the correct sortin…

    nulltoken committed Oct 29, 2011
    …g of entries when the working folder is being read
    
    In this case, "subdir.txt" should be listed before the "subdir" directory.
  4. Merge pull request #456 from brodie/perm-fixes

    vmg committed Oct 29, 2011
    Create objects, indexes, and directories with the right file permissions
  5. global: Properly use `git__` memory wrappers

    vmg committed Oct 28, 2011
    Ensure that all memory related functions (malloc, calloc, strdup, free,
    etc) are using their respective `git__` wrappers.
Commits on Oct 28, 2011
  1. tree: Add traversal in post-order

    vmg committed Oct 28, 2011
Commits on Oct 27, 2011
  1. status: move GIT_STATUS_PATH_* into an enum

    carlosmn committed Oct 22, 2011
    Their actual values have no meaning, so pack them in an enum.
    
    Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
  2. status: reorder retrieve_head_tree error checks

    carlosmn committed Oct 22, 2011
    Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
  3. status: remove git_tree_entry_bypos

    carlosmn committed Oct 22, 2011
    The only caller has been changed to treat a NULL tree as a special
    case and use the existing git_tree_entry_byindex.
    
    Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
  4. status: remove git_index_entry_bypos

    carlosmn committed Oct 22, 2011
    This function is already implemented (better) as git_index_get. Change
    the only caller to use that function.
    
    Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
  5. Merge pull request #467 from oleganza/oa-config-parse-fix

    vmg committed Oct 27, 2011
    Fixed crash in config parser when empty value is encountered.
  6. Fixed crash in config parser when empty value is encountered.

    oleganza committed Oct 27, 2011
    Example:
    
    key1 = value1
    key2 =
    
    In this config the value will be a bad pointer which config object will attempt to free() causing a crash.
  7. Merge pull request #463 from schu/tests-clay-object-raw

    vmg committed Oct 27, 2011
    tests-clay: move t01-rawobj.c to clay