1. 18 May, 2015 6 commits
    • Fix checking of return value for regcomp. · 7661fa12
      The regcomp function returns a non-zero value if compilation of
      a regular expression fails. In most places we only check for
      negative values, but positive values indicate an error, as well.
      Fix this tree-wide, fixing a segmentation fault when calling
      git_config_iterator_glob_new with an invalid regexp.
      Patrick Steinhardt committed
    • revwalk: don't insert uninteresting commits into the queue · 702ac408
      When a commit is first set as unintersting and then pushed, we must take
      care that we do not put it into the commit list as that makes us return
      at least that commit (but maybe more) as we've inserted it into the list
      because we have the assumption that we want anything in the commit list.
      Carlos Martín Nieto committed
    • revwalk: detect when we're out of interesting commits · 98e484b9
      When walking backwards and marking parents uninteresting, make sure we
      detect when the list of commits we have left has run out of
      uninteresting commits so we can stop marking commits as
      uninteresting. Failing to do so can mean that we walk the whole history
      marking everything uninteresting, which eats up time, CPU and IO for
      with useless work.
      
      While pre-marking does look for this, we still need to check during the
      main traversal as there are setups for which pre-marking does not leave
      enough information in the commits. This can happen if we push a commit
      and hide its parent.
      Carlos Martín Nieto committed
    • Fix git_checkout_tree() to do index filemodes correctly on Windows. · 04162eb1
      git_checkout_tree() has some fallback behaviors for file systems
      which don't have full support of filemodes.  Generally works fine,
      but if a given file had a change of type from a 0644 to 0755 (i.e.,
      you add executable permissions), the fallback behavior incorrectly
      triggers when writing hte updated index.
      
      This would cause a git_checkout_tree() command, even with the
      GIT_CHECKOUT_FORCE option set, to leave a dirty index on Windows.
      
      Also added checks to an existing test to catch this case.
      
      Conflicts:
      	src/checkout.c
      John Fultz committed
    • Make sure to also update delta->nfiles when merging diffs · 7dc1b1c4
      When diffs are generated, the value for the 'nfiles' field of 'git_diff_delta'
      will be consistent with the value in the 'status' field. Merging diffs can
      modify the 'status' field of some deltas and the 'nfiles' field needs to be
      updated accordingly.
      Pierre-Olivier Latour committed
  2. 24 Mar, 2015 7 commits
  3. 21 Mar, 2015 27 commits