1. 08 May, 2014 1 commit
    • examples: add a basic for-each-ref example · 56ec2256
      This is quite close to running "git for-each-ref" except:
      
        1. It does not take any formatting or selection options at
           all.
      
        2. The output is not sorted.
      
      I wrote it to look at debugging some issues with ref
      iteration, but there's no reason it can't live on as an
      example command.
      Jeff King committed
  2. 01 May, 2014 1 commit
  3. 22 Apr, 2014 2 commits
    • Use git_diff_get_stats in example/diff + refactor · 8d09efa2
      This takes the `--stat` and related example options in the example
      diff.c program and converts them to use the `git_diff_get_stats`
      API which nicely formats stats for you.
      
      I went to add bar-graph scaling to the stats formatter and noticed
      that the `git_diff_stats` structure was holding on to all of the
      `git_patch` objects.  Unfortunately, each of these objects keeps
      the full text of the diff in memory, so this is very expensive.  I
      ended up modifying `git_diff_stats` to keep just the data that it
      needs to keep and allowed it to release the patches.  Then, I added
      width scaling to the output on top of that.
      
      In making the diff example program match 'git diff' output, I ended
      up removing an newline from the sumamry output which I then had to
      compensate for in the email formatting to match the expectations.
      
      Lastly, I went through and refactored the tests to use a couple of
      helper functions and reduce the overall amount of code there.
      Russell Belfer committed
    • Some doc and examples/diff.c changes · 12e422a0
      I was playing with "git diff-index" and wanted to be able to
      emulate that behavior a little more closely with the diff example.
      
      Also, I wanted to play with running `git_diff_tree_to_workdir`
      directly even though core Git doesn't exactly have the equivalent,
      so I added a command line option for that and tweaked some other
      things in the example code.
      
      This changes a minor output thing in that the "raw" print helper
      function will no longer add ellipses (...) if the OID is not
      actually abbreviated.
      Russell Belfer committed
  4. 21 Apr, 2014 1 commit
  5. 01 Apr, 2014 3 commits
  6. 25 Mar, 2014 1 commit
    • Make submodules externally refcounted · a15c7802
      `git_submodule` objects were already refcounted internally in case
      the submodule name was different from the path at which it was
      stored.  This makes that refcounting externally used as well, so
      `git_submodule_lookup` and `git_submodule_add_setup` return an
      object that requires a `git_submodule_free` when done.
      Russell Belfer committed
  7. 06 Mar, 2014 1 commit
  8. 05 Mar, 2014 5 commits
  9. 03 Mar, 2014 3 commits
  10. 27 Feb, 2014 1 commit
  11. 25 Feb, 2014 1 commit
  12. 24 Feb, 2014 1 commit
  13. 23 Feb, 2014 1 commit
  14. 09 Feb, 2014 1 commit
  15. 08 Feb, 2014 1 commit
  16. 05 Feb, 2014 1 commit
  17. 27 Jan, 2014 2 commits
  18. 25 Jan, 2014 1 commit
  19. 14 Nov, 2013 1 commit
  20. 12 Nov, 2013 1 commit
  21. 11 Nov, 2013 1 commit
    • remote: make _ls return the list directly · 359dce72
      The callback-based method of listing remote references dates back to the
      beginning of the network code's lifetime, when we didn't know any
      better.
      
      We need to keep the list around for update_tips() after disconnect() so
      let's make use of this to simply give the user a pointer to the array so
      they can write straightforward code instead of having to go through a
      callback.
      Carlos Martín Nieto committed
  22. 07 Nov, 2013 1 commit
  23. 04 Nov, 2013 4 commits
  24. 03 Nov, 2013 1 commit
  25. 02 Nov, 2013 1 commit
  26. 01 Nov, 2013 2 commits
    • Make diff and status perform soft index reload · 4bf630b6
      This changes `git_index_read` to have two modes - a hard index
      reload that always resets the index to match the on-disk data
      (which was the old behavior) and a soft index reload that uses
      the timestamp / file size information and only replaces the index
      data if the file on disk has been modified.
      
      This then updates the git_status code to do a soft reload unless
      the new GIT_STATUS_OPT_NO_REFRESH flag is passed in.
      
      This also changes the behavior of the git_diff functions that use
      the index so that when an index is not explicitly passed in (i.e.
      when the functions call git_repository_index for you), they will
      also do a soft reload for you.
      
      This intentionally breaks the file signature of git_index_read
      because there has been some confusion about the behavior previously
      and it seems like all existing uses of the API should probably be
      examined to select the desired behavior.
      Russell Belfer committed