Permalink
Commits on May 19, 2012
  1. Merge pull request #715 from schu/cleanup-misc

    Cleanup
    vmg committed May 19, 2012
  2. Cleanup

    * indexer: remove leftover printf
    
    * commit: remove unused macros COMMIT_BASIC_PARSE, COMMIT_FULL_PARSE
      and COMMIT_PRINT
    schu committed May 19, 2012
  3. Merge pull request #713 from waywardmonkeys/spelling

    Fix spelling errors.
    vmg committed May 19, 2012
  4. Fix spelling errors.

    waywardmonkeys committed May 19, 2012
Commits on May 18, 2012
  1. libgit2 v0.17.0 "Lord of Diffstruction"

    Welcome to yet another libgit2 release, this one being the
    biggest we've shipped so far. Highlights on this release
    include diff, branches, notes and submodules support. The new
    diff API is shiny and powerful. Check it out.
    
    Apologies, one more time, to all the early adopters for the
    breaking API changes. We've been iterating on the error
    handling for the library until we reached its current state,
    which we believe it's significantly more usable both for normal
    users and for developers of bindings to other languages.
    Also, we've renamed a few legacy calls to ensure that the whole
    external API uses a consistent naming scheme.
    
    As always, check the API docs for the full list of new API calls
    and backwards-incompatible changes.
    
    	http://libgit2.github.com/libgit2/
    
    Changelog of new features follows:
    
    Attributes:
    	- Added function macros to check attribute values instead of having
    	to manually compare them
    	- Added support for choosing the attribute loading order (workdir files
    	vs index) and to skip the systems' default `.gitattributes`
    	- Fixed issues when fetching attribute data on bare repositories
    
    Blob:
    	- Added support for creating blobs from any file on disk (not
    	restricted to the repository's working directory)
    	- Aded support for smudge filters when writing blobs to the ODB
    		- So far only CRLF normalization is available
    
    Branches:
    	- Added a high-level branch API:
    		- git_branch_create
    		- git_branch_delete
    		- git_branch_list
    		- git_branch_move
    
    Commit:
    	- Commit messages are now filtered to match Git rules (stripping
    	comments and adding proper whitespacing rules)
    
    Config:
    	- Added support for setting and getting multivars
    	- Added `git_config_get_mapped` to map the value of a config
    	variable based on its defaults
    
    Diff:
    	- Added full diff API:
    		- tree to tree
    		- index to tree
    		- workdir to index
    		- workdir to tree
    		- blob to blob
    
    	- Added helper functions to print the diffs as valid patchfiles
    
    Error handling:
    	- New design for the error handling API, taking into consideration
    	the requirements of dynamic languages
    
    Indexer:
    	- Added streaming packfile indexer
    
    Merge:
    	- Added support for finding the merge base between two commits
    
    Notes:
    	- Full git-notes support:
    		- git_note_read
    		- git_note_message/git_note_oid
    		- git_note_create
    		- git_note_remove
    		- git_note_free
    		- git_note_foreach
    
    References:
    	- Added `git_reference_name_to_oid` helper to resolve
    	a reference to its final OID
    
    	- Added `git_reference_cmp` to compare two references with
    	a stable order
    
    Remotes:
    	- Added support for writing and saving remotes
    		- `git_remote_add`
    		- `git_remote_save`
    		- Setters for all the attributes of a remote
    	- Switched remote download to the new streaming packfile indexer
    	- Fixed fetch on HTTP and Git under Windows
    	- Added `git_remote_supported_url` helper to check if a protocol
    	can be accessed by the library
    	- Added `git_remote_list`
    
    Repository:
    	- Made `git_repository_open` smarter when finding the `.git` folder.
    	- Added `git_repository_open_ext` with extra options when
    	opening a repository
    
    Revwalk:
    	- Added support for pushing/hiding several references through a glob
    	- Added helper to push/hide the current HEAD to the walker
    	- Added helper to push/hide a single reference to the walker
    
    Status:
    	- Greatly improved Status implementation using the new `diff` code
    	as a backend
    
    Submodules:
    	- Added a partial submodules API to get information about a
    	submodule and list all the submodules in a repository
    		- git_submodule_foreach
    		- git_submodule_lookup
    
    Tag:
    	- Added `git_tag_peel` helper to peel a tag to its pointed object
    	- Tag messages are now filtered to match Git rules (stripping comments
    	and adding proper whitespacing rules)
    
    Tree:
    	- Killed the old `git_tree_diff` API, which is replaced by the
    	new diff code.
    
    Signed-off-by: Vicent Marti <tanoku@gmail.com>
    vmg committed May 18, 2012
  2. Merge pull request #710 from libgit2/breaking-changes

    Break everything before the release
    vmg committed May 18, 2012
  3. Merge pull request #711 from schu/fetch-local-dummy

    fetch: set dummy function for local fetch
    vmg committed May 18, 2012
  4. fetch: set dummy function for local fetch

    Local fetch isn't implemented yet. Don't segfault on call, but set a
    dummy for negotiate_fetch and terminate gracefully.
    
    Reported-by: Brad Harder <bch@methodlogic.net>
    schu committed May 18, 2012
Commits on May 17, 2012
  1. Merge pull request #685 from nulltoken/fix/list-remote-branches

    branch: retrieve symbolic references when listing the branches
    vmg committed May 17, 2012
  2. errors: Rename error codes

    vmg committed May 17, 2012
  3. Properly tag all `enums` with a `_t`

    vmg committed May 17, 2012
  4. errors: Remove old comments

    vmg committed May 11, 2012
  5. global: Change parameter ordering in API

    Consistency is good.
    vmg committed May 10, 2012
  6. Merge pull request #709 from arrbee/profiling-with-scottg

    Profiling with scottg
    vmg committed May 17, 2012
  7. Merge pull request #708 from arrbee/fix-empty-workdir-iterator

    Fix workdir iterators on empty directories
    vmg committed May 17, 2012
  8. Fix workdir iterators on empty directories

    Creating a workdir iterator on a directory with absolutely
    no files was returning an error (GIT_ENOTFOUND) instead of
    an iterator for nothing.  This fixes that and includes two
    new tests that cover that case.
    arrbee committed May 17, 2012
  9. Other optimization and warning fixes

    This fixes a warning left by the earlier optimization and
    addresses one of the other hotspots identified by GProf.
    arrbee committed May 17, 2012
  10. Optimize away git_text_gather_stats in diff

    GProf shows `git_text_gather_stats` as the most expensive call
    in large diffs.  The function calculates a lot of information
    that is not actually used and does not do so in a optimal
    order.  This introduces a tuned `git_buf_is_binary` function
    that executes the same algorithm in a fraction of the time.
    arrbee committed May 17, 2012
  11. Basic setup for profiling

    This fixes the examples so they will build and adds a PROFILE
    option to the CMakeFile that enabled gprof info on non-Windows
    arrbee committed May 17, 2012
  12. Merge pull request #706 from arrbee/fix_592_again

    Fix status for files under ignored dirs
    vmg committed May 17, 2012
  13. Fix status for files under ignored dirs

    There was a bug where tracked files inside directories that were
    inside ignored directories where not being found by status.  To
    make that a little clearer, if you have a .gitignore with:
    
        ignore/
    
    And then have the following files:
    
        ignore/dir/tracked     <-- actually a tracked file
        ignore/dir/untracked   <-- should be ignored
    
    Then we would show the tracked file as being removed (because
    when we got the to contained item "dir/" inside the ignored
    directory, we decided it was safe to skip -- bzzt, wrong!).
    
    This update is much more careful about checking that we are
    not skipping over any prefix of a tracked item, regardless of
    whether it is ignored or not.
    
    As documented in diff.c, this commit does create behavior that
    still differs from core git with regards to the handling of
    untracked files contained inside ignored directories.  With
    libgit2, those files will just not show up in status or diff.
    With core git, those files don't show up in status or diff
    either *unless* they are explicitly ignored by a .gitignore
    pattern in which case they show up as ignored files.
    
    Needless to say, this is a local behavior difference only, so
    it should not be important and (to me) the libgit2 behavior
    seems more consistent.
    arrbee committed May 17, 2012
Commits on May 16, 2012
  1. Merge pull request #705 from nulltoken/fix/note_list_callback_signature

    notes: make git_note_foreach() callback signature easier to cope with from a binding perspective
    vmg committed May 16, 2012
  2. notes: make git_note_foreach() callback signature easier to cope with…

    … from a binding perspective
    nulltoken committed May 16, 2012
  3. tree: Naming conventions

    vmg committed May 16, 2012
  4. clar: Fix warning

    vmg committed May 16, 2012
  5. tree: Kill the `git_tree_diff` functions

    These are deprecated and replaced with the diffing code in git2/diff.h
    vmg committed May 16, 2012
  6. Merge pull request #700 from cholin/revwalk_reset

    really reset walker with git_revwalk_reset
    vmg committed May 16, 2012
  7. Merge pull request #702 from arrbee/fix-status-file

    Update git_status_file and add ranged iterators
    vmg committed May 16, 2012
  8. Merge pull request #703 from carlosmn/consistency

    A few indexer consistency checks
    vmg committed May 16, 2012
Commits on May 15, 2012
  1. Document git_buf_common_prefix

    This function fills in a git_buf with the common prefix of
    an array of strings, but let's make that a little more clear.
    arrbee committed May 15, 2012