include


Log

Author Commit Date CI Message
Vicent Marti 2cbca8b0 2011-11-18T01:43:27 include: Unify internal include strategies Do not add the `git2` path to internal includes, or that will cause an extra path dependency.
Vicent Marti 2ba14f23 2011-11-17T02:13:46 tree: Add payload to `git_tree_walk`
Vicent Marti 9432af36 2011-11-17T01:23:19 Rename `git_tree_frompath` to `git_tree_get_subtree` That makes more sense to me.
Vicent Marti a15c550d 2011-11-16T14:09:44 threads: Fix the shared global state with TLS See `global.c` for a description of what we're doing. When libgit2 is built with GIT_THREADS support, the threading system must be explicitly initialized with `git_threads_init()`.
Vicent Marti d4a0b124 2011-10-30T21:58:33 refs: Partial rewrite for read-only refs This new version of the references code is significantly faster and hopefully easier to read. External API stays the same. A new method `git_reference_reload()` has been added to force updating a memory reference from disk. In-memory references are no longer updated automagically -- this was killing us. If a reference is deleted externally and the user doesn't reload the memory object, nothing critical happens: any functions using that reference should fail gracefully (e.g. deletion, renaming, and so on). All generated references from the API are read only and must be free'd by the user. There is no reference counting and no traces of generated references are kept in the library. There is no longer an internal representation for references. There is only one reference struct `git_reference`, and symbolic/oid targets are stored inside an union. Packfile references are stored using an optimized struct with flex array for reference names. This should significantly reduce the memory cost of loading the packfile from disk.
schu a46ec457 2011-08-10T16:19:42 refs: split internal and external references Currently libgit2 shares pointers to its internal reference cache with the user. This leads to several problems like invalidation of reference pointers when reordering the cache or manipulation of the cache from user side. Give each user its own git_reference instead of leaking the internal representation (struct reference). Add the following new API functions: * git_reference_free * git_reference_is_packed Signed-off-by: schu <schu-github@schulog.org>
Vicent Marti 3286c408 2011-10-28T14:51:13 global: Properly use `git__` memory wrappers Ensure that all memory related functions (malloc, calloc, strdup, free, etc) are using their respective `git__` wrappers.
Vicent Marti da37654d 2011-10-27T22:33:31 tree: Add traversal in post-order
Vicent Marti 11d51ca6 2011-10-26T16:43:55 windows: Add support for non-UTF codepages Our previous assumption that all paths in Windows are encoded in UTF-8 is rather weak, specially when considering that Git is encoding-agnostic. These set of functions allow the user to change the library's active codepage globally, so it is possible to access paths and files on all international versions of Windows. Note that the default encoding here is UTF-8 because we assume that 99% of all Git repositories will be in UTF-8. Also, if you use non-ascii characters in paths, anywhere, please burn on a fire.
Vicent Marti 28c1451a 2011-10-20T02:35:19 tree: Fix name lookups once and for all Double-pass binary search. Jeez.
Vicent Marti 8cf2de07 2011-10-19T01:34:42 tree: Fix lookups by entry name
nulltoken 3fa735ca 2011-10-13T23:17:19 tree: Add git_tree_frompath() which, given a relative path to a tree entry, retrieves the tree object containing this tree entry
nulltoken 34aff010 2011-10-12T14:06:23 oid: Add git_oid_streq() which checks if an oid and an hex formatted string are equal
Vicent Martí 92e2081f 2011-10-12T11:03:58 Merge pull request #449 from csware/include-win-version-information Include windows version information in git2.dll
Sven Strickroth 96fab093 2011-10-09T18:37:41 put version information in separate file Signed-off-by: Sven Strickroth <email@cs-ware.de>
Sven Strickroth 314f54eb 2011-10-09T05:29:57 fix build for x64 Signed-off-by: Sven Strickroth <email@cs-ware.de>
Vicent Marti 3eaf34f4 2011-10-05T16:48:36 libgit2 v0.15.0 "Das Wunderbar Release" I am aware the codename is not gramatically correct in any language. Check the COPYING file for the detailed terms on libgit2's license. Check the AUTHORS file for the full list of guilty parties. As we slowly stabilize the API, we've dropped 1 function from the library, and changed the signature of only 5 of them. There's of course a good chunk of new functionality, and a thousand bug fixes. In this release of libgit2: - Changed `git_blob_rawsize`: Now returns `size_t` instead of int, allowing files >4GB in 64 bit systems. - Removed `git_commit_message_short`: Please use `git_commit_message` to get the full message and decide which is the "short view" according to your needs (first line, first 80 chars...) - Added `git_commit_message_encoding`: Returns the encoding field of a commit message, if it exists. - Changed `git_commit_create`, `git_commit_create_v`: New argument `encoding`, which adds a encoding field to the generated commit object. - Added `git_config_find_system`: Returns the path to the system's global config file (according to the Core Git standards). - Changed `git_config_get_XX`, `git_config_set_XX`: the `long` and `int` types have been replaced by `int64` and `int32` respectively, to make their meaning more obvious. - Added `git_indexer`: An interface to index Git Packfiles has been added in the `git2/indexer.h` header. - Changed `git_reflog_entry_XX`: Reflog entries are now returned as `git_oid *` objects instead of hexadecimal OIDs. - Added `git_remote`: More fetch functionality has been added to the `git2/remote.h` functionality. Local, Smart HTTP and Git protocols are now supported. - Added `git_repository_head`: Returns the HEAD of the repository. - Added `git_repository_config_autoload`: Opens the configuration file of a repository, including the user's and the system's global config files, if they can be found. - Changed `git_signature_now`: Now returns an error code; the signature is stored by reference.
Vicent Marti dd3fd682 2011-10-05T13:44:27 msvc: Remove superfluous includes
Vicent Marti c060854e 2011-10-04T21:11:51 msvc: Properly handle inttypes.h/stdint.h
Carlos Martín Nieto dc8e3096 2011-10-01T02:09:35 Include stdint.h in git2/config.h Otherwise MSVC doesn't know what we're talking about when we say int32_t or int64_t. Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
Vicent Marti fafd4710 2011-09-30T16:08:06 config: Proper type declarations for 64 bit ints
Carlos Martín Nieto c36280a0 2011-09-30T06:26:29 repository: export git_repository_config_autoload Take the opportunity to finish the comment about this function. Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
Vicent Marti 8af4d074 2011-09-29T15:34:17 odb: Let users decide compression level for the loose ODB
Carlos Martín Nieto 40fe5fbe 2011-09-22T22:50:36 Make repo config loading automatic or completely explicit git_repository_config wants to take the global and system paths again so that one can be explicit if needed. The git_repository_config_autoload function is provided for the cases when it's good enough for the library to guess where those files are located. Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
Carlos Martín Nieto 4c562347 2011-09-22T21:34:46 Add git_config_find_system This allows the library to guess where the system configuration file should be located. Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
nulltoken ad196c6a 2011-09-21T23:17:39 config: make git_config_[get|set]_long() able to properly deal with 8 bytes wide values Should fix issue #419. Signed-off-by: nulltoken <emeric.fermas@gmail.com>
Vicent Martí 6640266e 2011-09-18T19:58:22 Merge pull request #398 from carlosmn/config-autohome git_repository_config: open global config file automatically
Vicent Martí e311519d 2011-09-18T19:38:14 Merge pull request #411 from boyski/gcc4 Don't use '__attribute__ visibility' with gcc unless it's at version 4 or better
David Boyce d2a1861e 2011-09-18T21:27:25 Don't use '__attribute__ visibility' with gcc unless it's at version 4 or better.
Vicent Marti 87d9869f 2011-09-19T03:34:49 Tabify everything There were quite a few places were spaces were being used instead of tabs. Try to catch them all. This should hopefully not break anything. Except for `git blame`. Oh well.
Vicent Marti bb742ede 2011-09-19T01:54:32 Cleanup legal data 1. The license header is technically not valid if it doesn't have a copyright signature. 2. The COPYING file has been updated with the different licenses used in the project. 3. The full GPLv2 header in each file annoys me.
David Boyce 784b3b49 2011-09-12T23:44:39 Fixed typo in example Makefile code and slimmed it down more. Reverted signature of git_signature_new. Removed error check wrappers (voted down). Made Makefile work out of the box on Linux and Solaris when standard cmake build instructions for the library are followed.
nulltoken 56453d34 2011-09-02T13:44:42 status: enhance determination of status for a single file - fix retrieval of a file status when working against a newly initialized repository - reduce memory pressure - prevents a directory from being tested
nulltoken 3601c4bf 2011-08-08T13:40:17 repository: Add git_repository_head()
David Boyce d9111722 2011-09-13T12:30:25 Standardized doxygen @return lines for int functions to say "GIT_SUCCESS or an error code".
David Boyce 0251733e 2011-09-12T23:39:47 Changes to allow examples/*.c to compile and link. This required on change to the signature of an API function (git_signature_new). Also, the examples/general.c had a lot of unchecked return values which were addresed with a couple of macros. The resulting example still does not work correctly but at least now it fails with an error message rather than not compiling or dumping core. Example runtime issues may be addressed in a later commit.
Carlos Martín Nieto f9d4b0c3 2011-09-12T17:25:46 git_repository_config: open global config file automatically If the global configuration file is missing, it is ignored. Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
Sebastian Schuberth 26e74c6a 2011-09-08T14:21:17 Fix some random size_t vs. int conversion warnings
Carlos Martín Nieto 778e1c73 2011-08-22T15:43:57 Add git_remote_new As we no longer expose the transport functions, this is now the only way to connect to a remote when given an URL instead of a remote name Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
Carlos Martín Nieto b5a8aa94 2011-08-22T15:18:19 Don't hide the transport details Transports shouldn't get used outside of the library, so don't expose accessor functions. Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
Carlos Martín Nieto a1be77cd 2011-08-07T14:27:47 Be smarter about selecting wants There is no need to inspect what the local repository is like. Only check whether the objects exist locally. Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
Carlos Martín Nieto 1564db11 2011-08-07T14:02:04 Remove enum git_whn Instead, use flags inside the git_remote_head structure. Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
Carlos Martín Nieto 441f57c2 2011-08-06T13:48:52 Add git_remote_update_tips This function updates the references in the local reference storage to match the ones in the remote. Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
Carlos Martín Nieto 48a65a07 2011-08-04T22:42:58 Only wait for pack if we need it Provide the git_remote_download function to instruct the library to downlad the packfile and let the user know the temporary location. Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
Carlos Martín Nieto e1d88030 2011-08-04T13:07:55 Don't expose the fetch code to the user Move the generation of the want-list to be done from the negotiate function, and keep the filtered references inside the remote structure. Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
Carlos Martín Nieto 65fbc48a 2011-06-24T16:23:19 negotiation
Carlos Martín Nieto e1f4a761 2011-06-22T14:53:01 Add git_fetch_list_want which creates the "want" list Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
schu e7be57a9 2011-08-15T18:56:27 reflog: assimilate reflog API to return git_oid's Rather than returning the OIDs out of the reflog as string return them as git_oid. Signed-off-by: schu <schu-github@schulog.org>
Lambert CLARA a6bbb8ca 2011-08-13T10:56:33 Add missing GIT_BEGIN_DECL and GIT_END_DECL to indexer header
Vicent Marti 5ae2f0c0 2011-08-12T16:24:19 commit: Add support for Encoding header
Vicent Marti b2e60e4e 2011-08-10T15:25:17 Add common.h to types.h
Vicent Martí 31bf5f38 2011-08-03T18:59:30 Merge pull request #345 from carlosmn/gsoc2011/indexer Implement a pack indexer
schu 63396a39 2011-08-03T15:57:33 signature: adjust API to return error codes git_signature_new() and git_signature_now() currently don't return error codes. Change the API to return error codes and not pointers to let the user handle errors properly. Signed-off-by: schu <schu-github@schulog.org>
Carlos Martín Nieto 65cb1586 2011-08-01T16:46:36 Document the indexer calls Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
Carlos Martín Nieto 48b3ad4f 2011-08-01T14:02:09 Move pack index writing to a public function Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
Carlos Martín Nieto b7c44096 2011-07-28T23:35:39 Implement the indexer Only v2 index files are supported. Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
Carlos Martín Nieto ab525a74 2011-07-07T19:20:13 Rename stuff to git_indexer_ Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
Carlos Martín Nieto f23c4a66 2011-07-07T19:08:45 Start the runner Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
Carlos Martín Nieto 3412391d 2011-07-07T11:47:31 Intial indexer code
Marcel Groothuis ede21113 2011-07-29T19:31:39 Fix compilation in C++: remove double GIT_BEGIN_DECL
Marcel Groothuis c7b508e6 2011-07-29T19:29:47 Remove double include of remote.h from git2.h
Vicent Martí 2b7fffa8 2011-07-28T05:23:27 Merge pull request #341 from carlosmn/development Fixup network headers
Julien Miotte b311e313 2011-07-27T18:31:13 Including git2/status.h in the git2.h header.
Carlos Martín Nieto 1e76676f 2011-07-27T01:22:50 Fixup network headers The network headers were still missing some formalities. Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
Johan 't Hart 136e7129 2011-07-16T01:28:13 On some header files, GIT_END_DECL was absent while GIT_BEGIN_DECL wasn't.
Kirill A. Shutemov 7d9cc9f8 2011-07-15T17:46:55 index: fix cast warnings /home/kas/git/public/libgit2/src/index.c: In function ‘git_index_clear’: /home/kas/git/public/libgit2/src/index.c:228:8: warning: cast discards ‘__attribute__((const))’ qualifier from pointer target type [-Wcast-qual] /home/kas/git/public/libgit2/src/index.c:235:8: warning: cast discards ‘__attribute__((const))’ qualifier from pointer target type [-Wcast-qual] /home/kas/git/public/libgit2/src/index.c: In function ‘index_insert’: /home/kas/git/public/libgit2/src/index.c:392:7: warning: cast discards ‘__attribute__((const))’ qualifier from pointer target type [-Wcast-qual] /home/kas/git/public/libgit2/src/index.c:399:7: warning: cast discards ‘__attribute__((const))’ qualifier from pointer target type [-Wcast-qual] /home/kas/git/public/libgit2/src/index.c: In function ‘read_unmerged’: /home/kas/git/public/libgit2/src/index.c:681:35: warning: cast discards ‘__attribute__((const))’ qualifier from pointer target type [-Wcast-qual] /home/kas/git/public/libgit2/src/index.c: In function ‘read_entry’: /home/kas/git/public/libgit2/src/index.c:716:33: warning: cast discards ‘__attribute__((const))’ qualifier from pointer target type [-Wcast-qual] Signed-off-by: Kirill A. Shutemov <kirill@shutemov.name>
Lambert CLARA ac2351fd 2011-07-25T20:23:23 Modify struct definition to enable forward declare with C++ compiler, thus avoid including C library's header in C++ header.
nulltoken e5f36505 2011-07-14T15:11:31 tag: Make git_tag_create_lightweight() accessible to bindings
Vicent Marti 52e50c1a 2011-07-14T00:01:48 libgit2 v0.14.0, "watermelon wheat" This a very packed minor release. The usual guilty parties have been working harder than usual during the holidays -- thanks to everyone involved! As always, the updated API docs can be found at: http://libgit2.github.com/libgit2/ NEW FEATURES: - New OS abstraction layer. This should make all POSIX calls much more reliable under Windows. - Much faster writes of simple objects (commits, tags, trees) to the ODB via in-memory buffering and direct writes, instead of streaming. - Unified & simplified API for object creation. All the `create` methods now take Objects instead of OIDs to ensure that corrupted (dangling) objects cannot be created on the repository. - Fully Git-compilant reference renaming (finally!), with the already existing `git_reference_rename`. - Deletion of config keys with `git_config_delete` - Greatly improved index performance when adding new entries - Reflog support with the `git_reflog` API - Remotes support with the `git_remote` API - First parts of the Networking API, including refspecs and the transport abstraction layer. (Note that there are no actual transports implemented yet) - Status support with the `git_status_foreach` and `git_status_file` functions. - Tons of bugfixes, including the outstanding bug #127 (wrong sort ordering when querying tree entries). KNOWN ISSUES: - The reference renaming code leaks memory. This is being worked on as part of a reference handling overhaul. - The tree-from-index builder has abysmal performance because it doesn't handle the Treecache extension yet. This is also being worked on. FULL API CHANGELOG: - removed, * modified, + added - git_commit_create_o - git_commit_create_ov - git_reference_create_oid_f - git_reference_create_symbolic_f - git_reference_rename_f - git_tag_create_f - git_tag_create_fo - git_tag_create_o * git_commit_create * git_commit_create_v * git_config_foreach * git_reference_create_oid * git_reference_create_symbolic * git_reference_rename * git_tag_create * git_tag_create_frombuffer + git_clearerror + git_config_delete + git_index_uniq + git_odb_hashfile + git_oid_fromstrn + git_reflog_entry_byindex + git_reflog_entry_committer + git_reflog_entry_msg + git_reflog_entry_oidnew + git_reflog_entry_oidold + git_reflog_entrycount + git_reflog_free + git_reflog_read + git_reflog_write + git_refspec_src_match + git_refspec_transform + git_remote_connect + git_remote_fetchspec + git_remote_free + git_remote_get + git_remote_ls + git_remote_name + git_remote_url + git_repository_head_detached + git_repository_head_orphan + git_status_file + git_status_foreach + git_tag_create_lightweight + git_tag_list_match + git_transport_new
Carlos Martín Nieto 91d8a4c0 2011-07-09T17:29:42 typo: one git_remote_fetchspec should be pushspec Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
Vicent Marti b08683ff 2011-07-12T02:38:20 config: Rename `del` to `delete
nulltoken bfbb5562 2011-07-11T16:30:46 tag: Add creation of lightweight tag
Lambert CLARA f6e4a98a 2011-07-11T13:04:36 Finish to hide git_pkt from external API.
Lambert CLARA 5f35d0ce 2011-07-09T14:53:00 Remove the last reference of git_net_direction enum
Vicent Marti bdd18829 2011-07-11T02:58:00 Cleanup external API Some of the WIP API calls have been hidden in preparation for the next minor release.
Vicent Marti f27f29b1 2011-07-09T15:13:32 include: Fix unmatched params in documentation
Vicent Marti c52736fa 2011-07-09T15:05:14 status: Cleanup The `hashfile` function has been moved to ODB, next to `git_odb_hash`. Global state has been removed from the dirent call in `status.c`, because global state is killing the rainforest and causing global warming.
Jason Penny 20361b2f 2011-06-23T18:51:22 status: get status for single file Add git_status_file to be able to retrieve status of single file by supplying a path.
Jason Penny 3af6b34a 2011-06-22T18:31:20 status: get file statuses and run callback Add git_status_foreach() to run a callback on each file passing the path and a status value.
Jason Penny 205166d2 2011-06-22T18:19:46 status: get blob object id of file on disk Add git_status_hashfile() to get blob's object id for a file without adding it to the object database or needing a repository at all. This functionality is similar to `git hash-object` without '-w'.
schu 27df4275 2011-06-28T14:13:12 reflog: add API to read or write a reference log So far libgit2 didn't support reference logs (reflog). Add a new git_reflog_* API for basic reading and writing of reflogs: * git_reflog_read * git_reflog_write * git_reflog_free Signed-off-by: schu <schu-github@schulog.org>
nulltoken 2b5af615 2011-07-07T13:47:45 tag: add pattern based retrieval of list of tag names
Kirill A. Shutemov 245adf4f 2011-07-02T01:08:42 index: introduce git_index_uniq() function It removes all entries with equal path except last added. On large indexes git_index_append() + git_index_uniq() before writing is *much* faster, than git_index_add(). Signed-off-by: Kirill A. Shutemov <kirill@shutemov.name>
Vicent Martí f12aa9dc 2011-07-05T04:31:37 Merge pull request #300 from carlosmn/gsoc2011/master A bit of networking
Carlos Martín Nieto 2601fcfc 2011-06-28T15:21:44 Add tests for deleting a config var Signed-off-by: Carlos Martín Nieto <cmn@elego.de>
Kirill A. Shutemov 932d1baf 2011-06-30T19:52:34 cleanup: remove trailing spaces Signed-off-by: Kirill A. Shutemov <kirill@shutemov.name>
Vicent Marti e0fc39da 2011-06-29T15:11:34 config: Fix unmatched parameters in docs
nulltoken 408d733b 2011-06-30T06:56:58 repository: Make head_detached() and head_orphan() convenience methods accessible to bindings
Vicent Marti cfef5fb7 2011-06-29T15:09:21 config: `foreach` now returns variable values too
Vicent Marti 7376ad99 2011-06-29T11:01:35 refs: Remove duplicate rename method `git_reference_rename` now takes a `force` flag
Vicent Marti ab7941b5 2011-06-28T21:04:59 test: Properly show error messages
Vicent Marti c682886e 2011-06-28T21:09:22 repo: Rename HEAD-related methods
Vicent Martí ccd59372 2011-06-28T10:44:19 Merge pull request #279 from carlosmn/detached-orphan Add detached and orphan convenience functions
Vicent Marti d5afc039 2011-06-28T19:15:48 Remove redundant methods from the API A bunch of redundant methods have been removed from the external API. - All the reference/tag creation methods with `_f` are gone. The force flag is now passed as an argument to the normal create methods. - All the different commit creation methods are gone; commit creation now always requires a `git_commit` pointer for parents and a `git_tree` pointer for tree, to ensure that corrupted commits cannot be generated. - All the different tag creation methods are gone; tag creation now always requires a `git_object` pointer to ensure that tags are not created to inexisting objects.
Carlos Martín Nieto 35502d2e 2011-06-28T13:55:00 Add git_repository_is_detached, git_repository_is_orphan Signed-off-by: Carlos Martín Nieto <cmn@elego.de>
Carlos Martín Nieto 0ac2726f 2011-06-27T20:23:47 Slim down git_transport Remove the unused repo and private pointers and make the direction a flag, as it can only have two states. Change the connect signature to use an int instead of git_net_direction and remove that enum. Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
Carlos Martín Nieto 9ba49bb5 2011-06-23T03:04:23 Add git_remote_connect and git_remote_ls These allow you to implement git-ls-remote when given a reference name and a repository. Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
Carlos Martín Nieto ce90a407 2011-06-22T15:34:37 Remove the repo param from git_transport_new Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
Carlos Martín Nieto 4e913309 2011-06-17T16:38:21 Move transports to an inheritance model Rather than an 'private' pointer, make the private structures inherit from the generic git_transport struct. This way, we only have to worry about one memory allocation instead of two. The structures are so simple that this may even make the code use less memory overall. Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
Carlos Martín Nieto fd679021 2011-06-16T02:17:49 Move git_pkt_{gen_proto,send_request} to transport_git.c This is where they really belong. Remvoe the prefix and make them static. Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>