1. 16 Dec, 2014 2 commits
    • checkout: disallow bad paths on win32 · a64119e3
      Disallow:
       1. paths with trailing dot
       2. paths with trailing space
       3. paths with trailing colon
       4. paths that are 8.3 short names of .git folders ("GIT~1")
       5. paths that are reserved path names (COM1, LPT1, etc).
       6. paths with reserved DOS characters (colons, asterisks, etc)
      
      These paths would (without \\?\ syntax) be elided to other paths - for
      example, ".git." would be written as ".git".  As a result, writing these
      paths literally (using \\?\ syntax) makes them hard to operate with from
      the shell, Windows Explorer or other tools.  Disallow these.
      Edward Thomson committed
  2. 06 Jul, 2014 1 commit
  3. 30 Apr, 2014 1 commit
  4. 17 Apr, 2014 1 commit
    • Decouple index iterator sort from index · 3b4c401a
      This makes the index iterator honor the GIT_ITERATOR_IGNORE_CASE
      and GIT_ITERATOR_DONT_IGNORE_CASE flags without modifying the
      index data itself.  To take advantage of this, I had to export a
      number of the internal index entry comparison functions.  I also
      wrote some new tests to exercise the capability.
      Russell Belfer committed
  5. 15 Jan, 2014 1 commit
  6. 13 Jan, 2014 1 commit
  7. 08 Jan, 2014 1 commit
  8. 19 Nov, 2013 1 commit
  9. 17 Sep, 2013 2 commits
  10. 01 Sep, 2013 1 commit
  11. 09 Jul, 2013 1 commit
  12. 17 Jun, 2013 3 commits
  13. 12 Jun, 2013 1 commit
  14. 07 Jun, 2013 1 commit
  15. 25 May, 2013 1 commit
  16. 24 May, 2013 1 commit
  17. 07 May, 2013 1 commit
  18. 25 Apr, 2013 1 commit
  19. 23 Apr, 2013 1 commit
  20. 22 Apr, 2013 5 commits
  21. 15 Apr, 2013 1 commit
  22. 25 Mar, 2013 1 commit
  23. 18 Mar, 2013 2 commits
    • Fixes and cleanups · 32460251
      Get rid of some dead code, tighten things up a bit, and fix a bug
      with core::env test.
      Russell Belfer committed
    • Switch search paths to classic delimited strings · 41954a49
      This switches the APIs for setting and getting the global/system
      search paths from using git_strarray to using a simple string with
      GIT_PATH_LIST_SEPARATOR delimited paths, just as the environment
      PATH variable would contain.  This makes it simpler to get and set
      the value.
      
      I also added code to expand "$PATH" when setting a new value to
      embed the old value of the path.  This means that I no longer
      require separate actions to PREPEND to the value.
      Russell Belfer committed
  24. 15 Mar, 2013 1 commit
    • Implement global/system file search paths · 5540d947
      The goal of this work is to expose the search logic for "global",
      "system", and "xdg" files through the git_libgit2_opts() interface.
      
      Behind the scenes, I changed the logic for finding files to have a
      notion of a git_strarray that represents a search path and to store
      a separate search path for each of the three tiers of config file.
      For each tier, I implemented a function to initialize it to default
      values (generally based on environment variables), and then general
      interfaces to get it, set it, reset it, and prepend new directories
      to it.
      
      Next, I exposed these interfaces through the git_libgit2_opts
      interface, reusing the GIT_CONFIG_LEVEL_SYSTEM, etc., constants
      for the user to control which search path they were modifying.
      There are alternative designs for the opts interface / argument
      ordering, so I'm putting this phase out for discussion.
      
      Additionally, I ended up doing a little bit of clean up regarding
      attr.h and attr_file.h, adding a new attrcache.h so the other two
      files wouldn't have to be included in so many places.
      Russell Belfer committed
  25. 12 Mar, 2013 1 commit
  26. 11 Mar, 2013 1 commit
  27. 09 Mar, 2013 1 commit
    • Make tree iterator handle icase equivalence · e40f1c2d
      There is a serious bug in the previous tree iterator implementation.
      If case insensitivity resulted in member elements being equivalent
      to one another, and those member elements were trees, then the
      children of the colliding elements would be processed in sequence
      instead of in a single flattened list.  This meant that the tree
      iterator was not truly acting like a case-insensitive list.
      
      This completely reworks the tree iterator to manage lists with
      case insensitive equivalence classes and advance through the items
      in a unified manner in a single sorted frame.
      
      It is possible that at a future date we might want to update this
      to separate the case insensitive and case sensitive tree iterators
      so that the case sensitive one could be a minimal amount of code
      and the insensitive one would always know what it needed to do
      without checking flags.
      
      But there would be so much shared code between the two, that I'm
      not sure it that's a win.  For now, this gets what we need.
      
      More tests are needed, though.
      Russell Belfer committed
  28. 27 Jan, 2013 1 commit
  29. 23 Jan, 2013 2 commits
  30. 15 Jan, 2013 1 commit
    • Add payload "_r" versions of bsearch and tsort · 851ad650
      git__bsearch and git__tsort did not pass a payload through to the
      comparison function.  This makes it impossible to implement sorted
      lists where the sort order depends on external data (e.g. building
      a secondary sort order for the entries in a tree).  This commit
      adds git__bsearch_r and git__tsort_r versions that pass a third
      parameter to the cmp function of a user payload.
      Russell Belfer committed