1. 10 Jun, 2018 1 commit
  2. 03 Jul, 2017 1 commit
    • Make sure to always include "common.h" first · 0c7f49dd
      Next to including several files, our "common.h" header also declares
      various macros which are then used throughout the project. As such, we
      have to make sure to always include this file first in all
      implementation files. Otherwise, we might encounter problems or even
      silent behavioural differences due to macros or defines not being
      defined as they should be. So in fact, our header and implementation
      files should make sure to always include "common.h" first.
      
      This commit does so by establishing a common include pattern. Header
      files inside of "src" will now always include "common.h" as its first
      other file, separated by a newline from all the other includes to make
      it stand out as special. There are two cases for the implementation
      files. If they do have a matching header file, they will always include
      this one first, leading to "common.h" being transitively included as
      first file. If they do not have a matching header file, they instead
      include "common.h" as first file themselves.
      
      This fixes the outlined problems and will become our standard practice
      for header and source files inside of the "src/" from now on.
      Patrick Steinhardt committed
  3. 30 Jun, 2017 1 commit
  4. 29 Dec, 2016 1 commit
  5. 26 Apr, 2016 1 commit
    • annotated_commit: provide refs and description · d5592378
      Differentiate between the ref_name used to create an annotated_commit
      (that can subsequently be used to look up the reference) and the
      description that we resolved this with (which _cannot_ be looked up).
      
      The description is used for things like reflogs (and may be a ref name,
      and ID something that we revparsed to get here), while the ref name must
      actually be a reference name, and is used for things like rebase to
      return to the initial branch.
      Edward Thomson committed
  6. 09 Dec, 2015 1 commit
  7. 28 May, 2015 1 commit
    • diff/status: introduce conflicts · 7c948014
      When diffing against an index, return a new `GIT_DELTA_CONFLICTED`
      delta type for items that are conflicted.  For a single file path,
      only one delta will be produced (despite the fact that there are
      multiple entries in the index).
      
      Index iterators now have the (optional) ability to return conflicts
      in the index.  Prior to this change, they would be omitted, and callers
      (like diff) would omit conflicted index entries entirely.
      Edward Thomson committed
  8. 20 Apr, 2015 1 commit
  9. 16 Mar, 2015 1 commit
  10. 08 Mar, 2015 1 commit
  11. 03 Mar, 2015 2 commits
  12. 27 Oct, 2014 1 commit
  13. 03 Aug, 2014 1 commit
  14. 21 Apr, 2014 1 commit
  15. 07 Mar, 2014 1 commit
  16. 06 Mar, 2014 1 commit
  17. 03 Feb, 2014 1 commit
  18. 25 Jan, 2014 2 commits
  19. 15 Jan, 2014 1 commit
  20. 02 Dec, 2013 1 commit
  21. 16 Oct, 2013 1 commit
  22. 15 Oct, 2013 1 commit
    • Diff API cleanup · 10672e3e
      This lays groundwork for separating formatting options from diff
      creation options.  This groups the formatting flags separately
      from the diff list creation flags and reorders the options.  This
      also tweaks some APIs to further separate code that uses patches
      from code that just looks at git_diffs.
      Russell Belfer committed
  23. 11 Oct, 2013 1 commit
  24. 15 May, 2013 1 commit
  25. 07 Mar, 2013 1 commit
  26. 05 Feb, 2013 1 commit
  27. 08 Jan, 2013 1 commit
  28. 06 Jan, 2013 1 commit
  29. 04 Jan, 2013 3 commits
    • Reorder operations in git reset · bfe7d7de
      This corrects the order of operations in git reset so that the
      checkout to reset the working directory content is done before
      the HEAD is moved.  This allows us to use the HEAD and the index
      content to know what files can / should safely be reset.
      
      Unfortunately, there are still some cases where the behavior of
      this revision differs from core git.  Notable, a file which has
      been added to the index but is not present in the HEAD is
      considered to be tracked by core git (and thus removable by a
      reset command) whereas since this loads the target state into
      the index prior to resetting, it will consider such a file to be
      untracked and won't touch it.  That is a larger fix that I'll
      defer to a future commit.
      Russell Belfer committed
  30. 03 Jan, 2013 1 commit
  31. 30 Nov, 2012 1 commit
  32. 27 Nov, 2012 2 commits
  33. 15 Nov, 2012 1 commit
    • Add explicit git_index ptr to diff and checkout · bbe6dbec
      A number of diff APIs and the `git_checkout_index` API take a
      `git_repository` object an operate on the index.  This updates
      them to take a `git_index` pointer explicitly and only fall back
      on the `git_repository` index if the index input is NULL.  This
      makes it easier to operate on a temporary index.
      Russell Belfer committed
  34. 09 Nov, 2012 1 commit
    • Rework checkout with new strategy options · ad9a921b
      This is a major reworking of checkout strategy options.  The
      checkout code is now sensitive to the contents of the HEAD tree
      and the new options allow you to update the working tree so that
      it will match the index content only when it previously matched
      the contents of the HEAD.  This allows you to, for example, to
      distinguish between removing files that are in the HEAD but not
      in the index, vs just removing all untracked files.
      
      Because of various corner cases that arise, etc., this required
      some additional capabilities in rmdir and other utility functions.
      
      This includes the beginnings of an implementation of code to read
      a partial tree into the index based on a pathspec, but that is
      not enabled because of the possibility of creating conflicting
      index entries.
      Russell Belfer committed
  35. 25 Oct, 2012 1 commit