1. 31 Mar, 2013 1 commit
  2. 25 Mar, 2013 1 commit
  3. 19 Mar, 2013 1 commit
    • Three submodule status bug fixes · 65025cb8
      1. Fix sort order problem with submodules where "mod" was sorting
         after "mod-plus" because they were being sorted as "mod/" and
         "mod-plus/".  This involved pushing the "contains a .git entry"
         test significantly lower in the stack.
      2. Reinstate behavior that a directory which contains a .git entry
         will be treated as a submodule during iteration even if it is
         not yet added to the .gitmodules.
      3. Now that any directory containing .git is reported as submodule,
         we have to be more careful checking for GIT_EEXISTS when we
         do a submodule lookup, because that is the error code that is
         returned by git_submodule_lookup when you try to look up a
         directory containing .git that has no record in gitmodules or
         the index.
      Russell Belfer committed
  4. 07 Mar, 2013 1 commit
    • Make iterator APIs consistent with standards · 169dc616
      The iterator APIs are not currently consistent with the parameter
      ordering of the rest of the codebase.  This rearranges the order
      of parameters, simplifies the naming of a number of functions, and
      makes somewhat better use of macros internally to clean up the
      iterator code.
      
      This also expands the test coverage of iterator functionality,
      making sure that case sensitive range-limited iteration works
      correctly.
      Russell Belfer committed
  5. 26 Feb, 2013 1 commit
    • Fix initialization of repo directories · 3c42e4ef
      When PR #1359 removed the hooks from the test resources/template
      directory, it made me realize that the tests for
      git_repository_init_ext using templates must be pretty shabby
      because we could not have been testing if the hooks were getting
      created correctly.
      
      So, this started with me recreating a couple of hooks, including
      a sample and symlink, and adding tests that they got created
      correctly in the various circumstances, including with the SHARED
      modes, etc.  Unfortunately this uncovered some issues with how
      directories and symlinks were copied and chmod'ed.  Also, there
      was a FIXME in the code related to the chmod behavior as well.
      
      Going back over the directory creation logic for setting up a
      repository, I found it was a little difficult to read and could
      result in creating and/or chmod'ing directories that the user
      almost certainly didn't intend.
      
      So that let to this work which makes repo initialization much
      more careful (and hopefully easier to follow).  It required a
      couple of extensions / changes to core fileops utilities, but I
      also think those are for the better, at least for git_futils_cp_r
      in terms of being careful about what actions it takes.
      Russell Belfer committed
  6. 25 Feb, 2013 1 commit
  7. 22 Feb, 2013 1 commit
    • Add diff rename tests with partial similarity · d4b747c1
      This adds some new tests that actually exercise the similarity
      metric between files to detect renames, copies, and split modified
      files that are too heavily modified.
      
      There is still more testing to do - these tests are just partially
      covering the cases.
      
      There is also one bug fix in this where a change set with only
      MODIFY being broken into ADD/DELETE (due to low self-similarity)
      without any additional RENAMED entries would end up not processing
      the split requests (because the num_rewrites counter got reset).
      Russell Belfer committed
  8. 11 Feb, 2013 1 commit
  9. 06 Feb, 2013 1 commit
  10. 22 Jan, 2013 1 commit
  11. 18 Jan, 2013 1 commit
  12. 17 Jan, 2013 1 commit
  13. 13 Jan, 2013 1 commit
  14. 12 Jan, 2013 1 commit
  15. 09 Jan, 2013 2 commits
  16. 07 Dec, 2012 1 commit
    • tree: relax the filemode parser · f1c75b94
      There are many different broken filemodes in the wild so we need to
      protect against them and give something useful up the chain. Don't
      fail when reading a tree from the ODB but normalize the mode as best
      we can.
      
      As 664 is no longer a mode that we consider to be valid and gets
      normalized to 644, we can stop accepting it in the treebuilder. The
      library won't expose it to the user, so any invalid modes are a bug.
      Carlos Martín Nieto committed
  17. 29 Nov, 2012 3 commits
  18. 28 Nov, 2012 2 commits
  19. 13 Nov, 2012 1 commit
  20. 09 Nov, 2012 1 commit
  21. 08 Nov, 2012 1 commit
  22. 05 Nov, 2012 1 commit
  23. 02 Nov, 2012 1 commit
    • tags: Fixed the tag parser to correctly treat the message field as optional. · 6bb9fea1
      This fix makes libgit2 capable of parsing annotated tag objects that lack
      the optional message/description field.
      Previously, libgit2 treated this field as mandatory and raised a tag_error on
      such tags. However, the message field is optional.
      
      An example of such a tag is refs/tags/v2.6.16.31-rc1 in Linux:
      
      $ git cat-file tag refs/tags/v2.6.16.31-rc1
      object afaa018cefb6af63befef1df7d8febaae904434f
      type commit
      tag v2.6.16.31-rc1
      tagger Adrian Bunk <bunk@stusta.de> 1162716505 +0100
      $
      Erik van Zijst committed
  24. 30 Oct, 2012 1 commit
  25. 23 Oct, 2012 3 commits
    • Initial implementation of diff rename detection · b4f5bb07
      This implements the basis for diff rename and copy detection,
      although it is based on simple SHA comparison right now instead
      of using a matching algortihm.  Just as `git_diff_merge` can be
      used as a post-pass on diffs to emulate certain command line
      behaviors, there is a new API `git_diff_detect` which will
      update a diff list in-place, adjusting some deltas to RENAMED
      or COPIED state (and also, eventually, splitting MODIFIED deltas
      where the change is too large into DELETED/ADDED pairs).
      
      This also adds a new test repo that will hold rename/copy/split
      scenarios.  Right now, it just has exact-match rename and copy,
      but the tests are written to use tree diffs, so we should be able
      to add new test scenarios easily without breaking tests.
      Russell Belfer committed
    • Add config level support in the config API · a1abe66a
      Added `struct git_config_entry`: a git_config_entry contains the key, the value, and the config file level from which a config element was found.
      Added `git_config_open_level`: build a single-level focused config object from a multi-level one.
      
      We are now storing `git_config_entry`s in the khash of the config_file
      yorah committed
    • Fix adding variable to config file with no trailing newline · f8ede948
      This can occur after a manual modification of a config file.
      yorah committed
  26. 15 Oct, 2012 2 commits
    • Fix single-file ignore checks · 52032ae5
      To answer if a single given file should be ignored, the path to
      that file has to be processed progressively checking that there
      are no intermediate ignored directories in getting to the file
      in question.  This enables that, fixing the broken old behavior,
      and adds tests to exercise various ignore situations.
      Russell Belfer committed
    • refs: loosen the OID parsing · 47f44b6e
      We used to require loose references to contain only an OID (possibly
      after trimming the string). This is however not enough for letting us
      lookup FETCH_HEAD, which can have a lot of content after the initial
      OID.
      
      Change the parsing rules so that a loose refernce must e at least 40
      bytes long and the 41st (if it's there) must be accepted by
      isspace(3). This makes the trim unnecessary, so only do it for
      symrefs. This fixes #977.
      Carlos Martín Nieto committed
  27. 09 Oct, 2012 2 commits
    • Add complex checkout test and then fix checkout · 0d64bef9
      This started as a complex new test for checkout going through the
      "typechanges" test repository, but that revealed numerous issues
      with checkout, including:
      
      * complete failure with submodules
      * failure to create blobs with exec bits
      * problems when replacing a tree with a blob because the tree
        "example/" sorts after the blob "example" so the delete was
        being processed after the single file blob was created
      
      This fixes most of those problems and includes a number of other
      minor changes that made it easier to do that, including improving
      the TYPECHANGE support in diff/status, etc.
      Russell Belfer committed
  28. 27 Sep, 2012 1 commit
  29. 25 Sep, 2012 1 commit
  30. 22 Sep, 2012 1 commit
  31. 13 Sep, 2012 2 commits