1. 06 Jan, 2019 1 commit
  2. 28 Nov, 2018 1 commit
  3. 19 Oct, 2018 2 commits
  4. 04 Oct, 2018 1 commit
  5. 30 Sep, 2018 1 commit
  6. 10 Jun, 2018 1 commit
  7. 01 Jun, 2018 1 commit
    • path: unify `git_path_is_*` APIs · 92159bd4
      Right now, there's quite a lot of different function calls to determine
      whether a path component matches a specific name after normalization
      from the filesystem. We have a function for each of {gitattributes,
      gitmodules, gitignore} multiplicated with {generic, NTFS, HFS} checks.
      In the long time, this is unmaintainable in case there are e.g. new
      filesystems with specific semantics, blowing up the number of functions
      we need to implement.
      
      Replace all functions with a simple `git_path_is_gitfile` function,
      which accepts an enum pointing out the filename that is to be checked
      against as well as the filesystem normalizations to check for. This
      greatly simplifies implementation at the expense of the caller having to
      invoke a somewhat longer function call.
      Patrick Steinhardt committed
  8. 24 May, 2018 1 commit
  9. 23 May, 2018 1 commit
  10. 22 May, 2018 1 commit
  11. 18 May, 2018 2 commits
  12. 17 Feb, 2016 1 commit
    • index: allow read of index w/ illegal entries · 318b825e
      Allow `git_index_read` to handle reading existing indexes with
      illegal entries.  Allow the low-level `git_index_add` to add
      properly formed `git_index_entry`s even if they contain paths
      that would be illegal for the current filesystem (eg, `AUX`).
      Continue to disallow `git_index_add_bypath` from adding entries
      that are illegal universally illegal (eg, `.git`, `foo/../bar`).
      Edward Thomson committed
  13. 04 Feb, 2015 1 commit
  14. 03 Feb, 2015 1 commit
  15. 30 Jan, 2015 1 commit
  16. 20 Jan, 2015 1 commit
  17. 19 Dec, 2014 2 commits
  18. 17 Dec, 2014 1 commit
  19. 16 Dec, 2014 3 commits
    • checkout: disallow bad paths on HFS · 11d67b75
      HFS filesystems ignore some characters like U+200C.  When these
      characters are included in a path, they will be ignored for the
      purposes of comparison with other paths.  Thus, if you have a ".git"
      folder, a folder of ".git<U+200C>" will also match.  Protect our
      ".git" folder by ensuring that ".git<U+200C>" and friends do not match it.
      Edward Thomson committed
    • 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
    • win32: use NT-prefixed "\\?\" paths · cceae9a2
      When turning UTF-8 paths into UCS-2 paths for Windows, always use
      the \\?\-prefixed paths.  Because this bypasses the system's
      path canonicalization, handle the canonicalization functions ourselves.
      
      We must:
       1. always use a backslash as a directory separator
       2. only use a single backslash between directories
       3. not rely on the system to translate "." and ".." in paths
       4. remove trailing backslashes, except at the drive root (C:\)
      Edward Thomson committed
  20. 17 Sep, 2014 1 commit
  21. 16 Sep, 2014 1 commit
  22. 08 Sep, 2014 1 commit
  23. 03 Sep, 2014 1 commit