1. 13 Jul, 2018 1 commit
    • treewide: remove use of C++ style comments · 9994cd3f
      C++ style comment ("//") are not specified by the ISO C90 standard and
      thus do not conform to it. While libgit2 aims to conform to C90, we did
      not enforce it until now, which is why quite a lot of these
      non-conforming comments have snuck into our codebase. Do a tree-wide
      conversion of all C++ style comments to the supported C style comments
      to allow us enforcing strict C90 compliance in a later commit.
      Patrick Steinhardt committed
  2. 06 Jul, 2018 1 commit
  3. 29 Jun, 2018 3 commits
  4. 10 Jun, 2018 1 commit
  5. 23 May, 2018 1 commit
  6. 22 May, 2018 1 commit
  7. 05 Apr, 2018 1 commit
  8. 24 Feb, 2018 2 commits
    • checkout test: ensure workdir mode is simplified · 275693e2
      Ensure that when examining the working directory for checkout that the
      mode is correctly simplified.  Git only pays attention to whether a file
      is executable or not.  When examining a working directory, we should
      coalesce modes in the working directory to either `0755` (indicating
      that a file is executable) or `0644` (indicating that it is not).
      
      Test this by giving the file an exotic mode, and ensuring that when
      checkout out a branch that changes the file's contents, that we do not
      have a checkout conflict.
      Edward Thomson committed
    • checkout test: add core.filemode checkout tests · ec96db57
      Add two tests for filemode.
      
      The first ensures that `core.filemode=true` is honored: if we have
      changed the filemode such that a file that _was_ executable (mode 0755)
      is now executable (mode 0644) and we go to check out a branch that has
      otherwise changed the contents of the file, then we should raise a
      checkout conflict for that file.
      
      The second ensures that `core.filemode=false` is honored: in the same
      situation, we set a file that was executable to be non-executable, and
      check out the branch that changes the contents of the file.  However,
      since `core.filemode` is false, we do not detect the filemode change.
      
      We run these tests on both operating systems that obey `core.filemode`
      (eg, POSIX) and those that have no conception of filemode (eg, Win32).
      This ensures that `core.filemode` is always honored, as it is a cache of
      the underlying filesystem's settings.  This ensures that we do not
      make assumptions based on the operating system, and honor the
      configuration setting even if it were misconfigured.
      Edward Thomson committed
  9. 20 Feb, 2018 2 commits
  10. 03 Jan, 2018 1 commit
    • tests: status::worktree: indicate skipped tests on Win32 · 72c28ab0
      Some function bodies of tests which are not applicable to the Win32
      platform are completely #ifdef'd out instead of calling `cl_skip()`.
      This leaves us with no indication that these tests are not being
      executed at all and may thus cause decreased scrutiny when investigating
      skipped tests. Improve the situation by calling `cl_skip()` instead of
      just doing nothing.
      Patrick Steinhardt committed
  11. 09 Oct, 2017 2 commits
  12. 07 Oct, 2017 1 commit
  13. 10 Jun, 2017 1 commit
  14. 10 Apr, 2017 1 commit
  15. 23 Jan, 2017 1 commit
  16. 30 Dec, 2016 1 commit
    • Fix handling of GIT_CHECKOUT_DISABLE_PATHSPEC_MATCH flag. · 5f959dca
      git_checkout_tree() sets up its working directory iterator to respect the
      pathlist if GIT_CHECKOUT_DISABLE_PATHSPEC_MATCH is present, which is great.
      What's not so great is that this iterator is then used side-by-side with
      an iterator created by git_checkout_iterator(), which did not set up its
      pathlist appropriately (although the iterator mirrors all other iterator
      options).
      
      This could cause git_checkout_tree() to delete working tree files which
      were not specified in the pathlist when GIT_CHECKOUT_DISABLE_PATHSPEC_MATCH
      was used, as the unsynchronized iterators causes git_checkout_tree() to think
      that files have been deleted between the two trees.  Oops.
      
      And added a test which fails without this fix (specifically, the final check
      for "testrepo/README" to still be present fails).
      John Fultz committed
  17. 30 Aug, 2016 1 commit
  18. 15 Jun, 2016 1 commit
  19. 07 Jun, 2016 1 commit
  20. 01 Jun, 2016 1 commit
  21. 26 May, 2016 1 commit
  22. 24 May, 2016 1 commit
  23. 12 Feb, 2016 1 commit
  24. 01 Dec, 2015 1 commit
  25. 20 Nov, 2015 1 commit
  26. 17 Nov, 2015 1 commit
    • checkout::crlf test: don't crash when no idx entry · de999f26
      When there's no matching index entry (for whatever reason), don't
      try to dereference the null return value to get at the id.
      
      Otherwise when we break something in the index API, the checkout
      test crashes for confusing reasons and causes us to step through
      it in a debugger thinking that we had broken much more than we
      actually did.
      Edward Thomson committed
  27. 19 Sep, 2015 1 commit
  28. 17 Sep, 2015 1 commit
    • git_futils_mkdir_*: make a relative-to-base mkdir · ac2fba0e
      Untangle git_futils_mkdir from git_futils_mkdir_ext - the latter
      assumes that we own everything beneath the base, as if it were
      being called with a base of the repository or working directory,
      and is tailored towards checkout and ensuring that there is no
      bogosity beneath the base that must be cleaned up.
      
      This is (at best) slow and (at worst) unsafe in the larger context
      of a filesystem where we do not own things and cannot do things like
      unlink symlinks that are in our way.
      Edward Thomson committed
  29. 16 Sep, 2015 5 commits
  30. 30 Jun, 2015 1 commit
  31. 29 Jun, 2015 1 commit