1. 18 Apr, 2014 7 commits
    • Fix ignore difference from git with trailing /* · 916fcbd6
      Ignore patterns that ended with a trailing '/*' were still needing
      to match against another actual '/' character in the full path.
      This is not the same behavior as core Git.
      
      Instead, we strip a trailing '/*' off of any patterns that were
      matching and just take it to imply the FNM_LEADING_DIR behavior.
      Russell Belfer committed
    • Preload attribute files that may contain macros · e3a2a04c
      There was a latent bug where files that use macro definitions
      could be parsed before the macro definitions were loaded.  Because
      of attribute file caching, preloading files that are going to be
      used doesn't add a significant amount of overhead, so let's always
      preload any files that could contain macros before we assemble the
      actual vector of files to scan for attributes.
      Russell Belfer committed
    • Pop ignore only if whole relative path matches · 6a0956e5
      When traversing the directory structure, the iterator pushes and
      pops ignore files using a vector.  Some directories don't have
      ignore files, so it uses a path comparison to decide when it is
      right to actually pop the last ignore file.  This was only
      comparing directory suffixes, though, so a subdirectory with the
      same name as a parent could result in the parent's .gitignore
      being popped off the list ignores too early.  This changes the
      logic to compare the entire relative path of the ignore file.
      Russell Belfer committed
    • Merge pull request #2274 from libgit2/cmn/ssh-expect-username · 3c69bebc
      cred: tighten username rules
      Vicent Marti committed
    • cred: tighten username rules · bd270b70
      The ssh-specific credentials allow the username to be missing. The idea
      being that the ssh transport will then use the username provided in the
      url, if it's available. There are two main issues with this.
      
      The credential callback already knows what username was provided by the
      url and needs to figure out whether it wants to ask the user for it or
      it can reuse it, so passing NULL as the username means the credential
      callback is suspicious.
      
      The username provided in the url is not in fact used by the
      transport. The only time it even considers it is for the user/pass
      credential, which asserts the existence of a username in its
      constructor. For the ssh-specific ones, it passes in the username stored
      in the credential, which is NULL. The libssh2 macro we use runs strlen()
      against this value (which is no different from what we would be doing
      ourselves), so we then crash.
      
      As the documentation doesn't suggest to leave out the username, assert
      the need for a username in the code, which removes this buggy behavior
      and removes implicit state.
      
      git_cred_has_username() becomes a blacklist of credential types that do
      not have a username. The only one at the moment is the 'default' one,
      which is meant to call up some Microsoft magic.
      Carlos Martín Nieto committed
    • Merge pull request #2108 from libgit2/rb/threadsafe-index-iterator · 28fd7206
      Make index iterator thread safe
      Vicent Marti committed
  2. 17 Apr, 2014 21 commits
  3. 16 Apr, 2014 4 commits
  4. 15 Apr, 2014 6 commits
  5. 14 Apr, 2014 2 commits
    • Fix core.excludesfile named .gitignore · a9528b8f
      Ignore rules with slashes in them are matched using FNM_PATHNAME
      and use the path to the .gitignore file from the root of the
      repository along with the path fragment (including slashes) in
      the ignore file itself.  Unfortunately, the relative path to the
      .gitignore file was being applied to the global core.excludesfile
      if that was also named ".gitignore".
      
      This fixes that with more precise matching and includes test for
      ignore rules with leading slashes (which were the primary example
      of this being broken in the real world).
      
      This also backports an improvement to the file context logic from
      the threadsafe-iterators branch where we don't rely on mutating
      the key of the attribute file name to generate the context path.
      Russell Belfer committed
    • Merge pull request #2264 from jacquesg/fix-warnings · 289e31cd
      Correct C90 warnings
      Vicent Marti committed