Log

Author Commit Date CI Message
nulltoken a1bd78ea 2011-10-29T21:29:31 status: Add a file in the test repository to cover the correct sorting of entries when the working folder is being read In this case, "subdir.txt" should be listed before the "subdir" directory.
nulltoken d1db74bf 2011-10-29T17:40:04 status: Prevent segfaulting when determining the status of a repository Fixes #465
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 4849dbb8 2011-10-27T17:54:17 Merge branch 'status' of https://github.com/carlosmn/libgit2 into development
Carlos Martín Nieto c2892d61 2011-10-22T11:46:22 status: remove git_tree_entry_bypos The only caller has been changed to treat a NULL tree as a special case and use the existing git_tree_entry_byindex. Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
Carlos Martín Nieto 899cb7a8 2011-10-22T11:36:18 status: remove git_index_entry_bypos This function is already implemented (better) as git_index_get. Change the only caller to use that function. Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
Carlos Martín Nieto 1ca715e0 2011-10-22T12:36:30 status: move GIT_STATUS_PATH_* into an enum Their actual values have no meaning, so pack them in an enum. Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
Carlos Martín Nieto 68a26dfa 2011-10-22T12:33:49 status: reorder retrieve_head_tree error checks Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
Vicent Martí a2366c94 2011-10-27T15:33:53 Merge pull request #467 from oleganza/oa-config-parse-fix Fixed crash in config parser when empty value is encountered.
Oleg Andreev 9f861826 2011-10-27T16:45:44 Fixed crash in config parser when empty value is encountered. Example: key1 = value1 key2 = In this config the value will be a bad pointer which config object will attempt to free() causing a crash.
Vicent Martí d533c888 2011-10-26T19:25:18 Merge pull request #463 from schu/tests-clay-object-raw tests-clay: move t01-rawobj.c to clay
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.
schu 9ff46db9 2011-10-19T13:48:51 tests-clay: move t01-rawobj.c to clay Signed-off-by: schu <schu-github@schulog.org>
Vicent Martí c2fbe423 2011-10-24T14:43:18 Merge pull request #464 from rtyley/development Tolerate zlib deflation with window size < 32Kb
Roberto Tyley c51065e3 2011-10-24T14:39:03 Tolerate zlib deflation with window size < 32Kb libgit2 currently identifies loose objects as corrupt if they've been deflated using a window size less than 32Kb, because the is_zlib_compressed_data() function doesn't recognise the header byte as a zlib header. This patch makes the method tolerant of all valid window sizes (15-bit to 8-bit) - but doesn't sacrifice it's accuracy in distingushing the standard loose-object format from the experimental (now abandoned) format. It's based on a patch which has been merged into C-Git master branch: https://github.com/git/git/commit/7f684a2aff636f44a506 On memory constrained systems zlib may use a much smaller window size - working on Agit, I found that Android uses a 4KB window; giving a header byte of 0x48, not 0x78. Consequently all loose objects generated by the Android platform appear 'corrupt' :( It might appear that this patch changes isStandardFormat() to the point where it could incorrectly identify the experimental format as the standard one, but the two criteria (bitmask & checksum) can only give a false result for an experimental object where both of the following are true: 1) object size is exactly 8 bytes when uncompressed (bitmask) 2) [single-byte in-pack git type&size header] * 256 + [1st byte of the following zlib header] % 31 = 0 (checksum) As it happens, for all possible combinations of valid object type (1-4) and window bits (0-7), the only time when the checksum will be divisible by 31 is for 0x1838 - ie object type *1*, a Commit - which, due the fields all Commit objects must contain, could never be as small as 8 bytes in size. Given this, the combination of the two criteria (bitmask & checksum) always correctly determines the buffer format, and is more tolerant than the previous version. References: Android uses a 4KB window for deflation: http://android.git.kernel.org/?p=platform/libcore.git;a=blob;f=luni/src/main/native/java_util_zip_Deflater.cpp;h=c0b2feff196e63a7b85d97cf9ae5bb258 Code snippet searching for false positives with the zlib checksum: https://gist.github.com/1118177 Change-Id: Ifd84cd2bd6b46f087c9984fb4cbd8309f483dec0
Carlos Martín Nieto 4ce16ed8 2011-10-22T12:25:55 CMake: use -O0 in debug mode Otherwise, GCC optimizes variables away and gdb can't tell us what's in them. Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
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
Carlos Martín Nieto 5fa1bed0 2011-10-15T23:09:05 mwindow: close LRU window properly Remove a wrong call to git_mwindow_close which caused a segfault if it ever did run. In that same piece of code, if the LRU was from the first wiindow in the list in a different file, we didn't update that list, so the first element had been freed. Fix these two issues. Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
Vicent Martí a014a083 2011-10-14T16:32:00 Merge pull request #459 from brodie/test-improvements tests: propagate errors from open_temp_repo() instead of exiting
Brodie Rao 252840a5 2011-08-11T15:18:04 tests: propagate errors from open_temp_repo() instead of exiting This makes it slightly easier to debug test failures when one test opens a repo, has a failure, and doesn't get a chance to close it for the next test. Now, instead of getting no feedback, we at least see test failure information.
Vicent Martí 1776f5ab 2011-10-13T18:08:19 Merge pull request #457 from khalsah/makefile-fix Update Makefile.embed with http-parser dependency
Hargobind S. Khalsa d42eff03 2011-10-13T19:05:03 Add src/transports to Makefile sources
Hargobind S. Khalsa 7fcddeb6 2011-10-13T18:36:43 Update Makefile.embed with http-parser dependency
Vicent Martí b7e1dd16 2011-10-13T14:54:12 Merge pull request #448 from nulltoken/ntk/topic/treeentry-random-access Add git_tree_frompath()
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
nulltoken a6c0e4d2 2011-10-11T14:42:48 Fix minor indentation issues
nulltoken b3f993e2 2011-10-09T13:13:49 Add test commit containing subtrees and files
nulltoken a41e9f13 2011-10-13T22:48:07 Fix compilation error on Windows
Vicent Martí 5c3d5fb0 2011-10-13T12:16:07 Merge pull request #454 from brodie/parsing-fixes Improvements to tag, commit, and signature parsing
Vicent Martí a3e23a7c 2011-10-13T12:01:06 Merge pull request #455 from brodie/pack-fixes odb_pack: don't do ambiguity checks for fully qualified SHA1 hashes
Brodie Rao b2a2702d 2011-10-11T22:05:12 odb_pack: don't do ambiguity checks for fully qualified SHA1 hashes This makes libgit2 more closely match Git, which only checks for ambiguous pack entries when given short hashes. Note that the only time this is ever relevant is when a pack has the same object more than once (it's happened in the wild, I promise).
Brodie Rao 6f2856f3 2011-10-05T15:17:37 signature: don't blow up trying to parse names containing '>' When trying to find the end of an email, instead of starting at the beginning of the signature, we start at the end of the name (after the first '<'). This brings libgit2 more in line with Git's behavior when reading out existing signatures. However, note that Git does not allow names like these through the usual porcelain; instead, it silently strips any '>' characters it sees.
Brodie Rao 15b0bed2 2011-08-11T16:12:29 tag: allow the tagger field to be missing when parsing tags Instead of bailing out with an error, this sets tagger to NULL when the field is missing from the object. This makes it possible to inspect tags like this one: http://git.kernel.org/?p=git/git.git;a=tag;h=f25a265a342aed6041ab0cc484224d9ca54b6f41
Brodie Rao cf7b13f3 2011-08-11T14:05:55 tag: avoid a double-free when parsing tags without a tagger field The v0.99 tag in the Git repo triggers this behavior: http://git.kernel.org/?p=git/git.git;a=tag;h=d6602ec5194c87b0fc87103ca4d67251c76f233a Ideally, we'd allow the tag to be instantiated even though the tagger field is missing, but this at the very least prevents libgit2 from crashing. To test this bug, a new repository has been added based on the test branch in testrepo.git. It contains a "e90810b" tag that looks like this: object e90810b8df3e80c413d903f631643c716887138d type commit tag e90810b This is a very simple tag.
Brodie Rao 04f78802 2011-08-09T20:49:12 commit: properly parse empty commit messages This ensures commit->message is always non-NULL, even if the commit message is empty or consists of only a newline. One such commit can be found in the wild in the jQuery repository: https://github.com/jquery/jquery/commit/25b424134f9927a5bf0bab5cba836a0aa6c3cfc1
Carlos Martín Nieto 3707b331 2011-10-08T02:44:31 pkt: move the protocol strings to the top of the file Put them all together so we know where to find them. Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
Carlos Martín Nieto dfafb03b 2011-10-07T00:44:41 Move the transports to their own directory
Carlos Martín Nieto 8c252874 2011-10-06T00:51:32 net: plug a few memory leaks Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
Carlos Martín Nieto 546a3c8f 2011-10-06T00:10:11 http: download pack when fetching Unfortunately, we can't use the function in fetch.c due to chunked encoding and keep-alive connections. Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
Carlos Martín Nieto 03e4833b 2011-10-05T20:17:21 remote: bitfield should be unsigned Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
Carlos Martín Nieto fc3e3c55 2011-10-05T20:12:12 git transport: don't loose received data Using a different buffer in each function means that some data might get lost. Store all the data in a buffer in the transport object. Take this opportunity to use the generic download-pack function. Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
Carlos Martín Nieto 2c982daa 2011-10-05T20:09:49 fetch: add a generic pack-download function Taken mostly from the git transport's version, this can be used by any transport that takes its pack data from the network. Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
Carlos Martín Nieto 51760bc1 2011-10-05T18:11:22 pkt: get rid of the chunked support It was a bad idea. Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
Carlos Martín Nieto e5e92c1f 2011-10-05T16:57:34 http: simple negotiation Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
Carlos Martín Nieto 65c86048 2011-10-05T01:28:16 Introduce the git_pkt_buffer_ family of functions Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
Carlos Martín Nieto f9613325 2011-10-05T00:42:27 http: parse the response from the server Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
Carlos Martín Nieto cbb2fede 2011-09-27T00:34:52 http: add a set of common refs Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
Carlos Martín Nieto 3313a05a 2011-09-18T21:11:45 http: move stuff out of negotiate_fetch Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
Carlos Martín Nieto 1636ba5a 2011-09-18T20:07:49 transport: don't have an extra send-wants step It's a bit awkward to run it as an extra step, and HTTP may need to send the wants list several times. Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
Carlos Martín Nieto 747bf5f1 2011-09-13T23:28:42 http: Start negotiate_fetch
Carlos Martín Nieto 34bfb4b0 2011-09-14T00:54:45 net,pkt: add chunked support As we don't know the length of the message we want to send to the other end, we send a chunk size before each message. In later versions, sending the wants might benefit from batching the lines together. Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
Carlos Martín Nieto eb07a4d1 2011-09-12T15:25:45 http: add more modularity to the code Not every request needs a new connection if we're using a keep-alive connection. Store the HTTP parser, host and port in the transport in order to have it available in later calls. Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
Vicent Marti 502dd2da 2011-10-12T12:09:56 msvc: Fix resourc embedding
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
Vicent Martí bff5f4e3 2011-10-11T15:11:23 Merge pull request #452 from carlosmn/cmake-respect-user Assorted CMake fixes
Carlos Martín Nieto 5cb7a1ad 2011-10-11T18:12:36 Explain how to build universal OSX binaries Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
Carlos Martín Nieto 5b216d1a 2011-10-11T18:08:54 CMake: don't overwrite the user's CFLAGS If either CFLAGS is defined or the user passes -DCMAKE_C_FLAGS to cmake, the variable already contains flags. Don't overwrite them, but append them to our settings. Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
Carlos Martín Nieto dcd62cb2 2011-10-11T16:11:40 CMake: Only add the STDCALL option when using MSVC This option is only ever used with MSVC. Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
Carlos Martín Nieto 8f9be316 2011-10-09T21:49:10 fetch: move 'head' so it's visible to the whole function Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
Vicent Martí 6aac5afb 2011-10-09T12:09:57 Merge pull request #444 from carlosmn/fetch-fixes A couple of fetch fixes
Sven Strickroth cf9bf6b7 2011-10-09T18:45:23 include version information in git2.dll on Windows Signed-off-by: Sven Strickroth <email@cs-ware.de>
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 da2281c7 2011-10-09T18:35:42 libgit2 doesn't use -LIB define Signed-off-by: Sven Strickroth <email@cs-ware.de>
Vicent Martí 5a1d2b2a 2011-10-08T21:18:09 Merge pull request #447 from csware/fix-win64-build fix build for x64
Sven Strickroth 314f54eb 2011-10-09T05:29:57 fix build for x64 Signed-off-by: Sven Strickroth <email@cs-ware.de>
Carlos Martín Nieto 517bda19 2011-10-04T00:30:01 fetch: store FETCH_HEAD We should always save the remote's HEAD as FETCH_HEAD locally. Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
Carlos Martín Nieto 4a3b18a6 2011-10-03T22:26:06 A missing refspec is not an error It's rare for a configured remote, but for one given as an URL on the command line, it's more often than not the case. Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
Vicent Martí d322d10a 2011-10-07T14:20:53 Merge pull request #439 from carlosmn/network-examples Add network examples
Vicent Martí 01be6f37 2011-10-07T14:20:25 Merge pull request #446 from schu/tests-clay-update tests-clay: update
schu 1d33bf9d 2011-10-07T22:57:44 tests-clay: add a readme file Signed-off-by: schu <schu-github@schulog.org>
schu 681008c7 2011-10-07T22:31:08 tests-clay: update clay The clay script didn't match the latest version from upstream. Additionaly, add core/strtol.c to complete porting the core tests to clay. Signed-off-by: schu <schu-github@schulog.org>
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 d3fb6a81 2011-10-05T16:46:34 cmake: Set the old test suite as default for the release
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 72d6a20b 2011-10-05T19:59:34 indexer: NUL-terminate the filename As we no longer use the STRLEN macro, the NUL-terminator in the string was not copied over. Fix this. Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
Vicent Martí 24ce105b 2011-10-03T14:42:52 Merge pull request #441 from csware/ignore-missing-pack-file ignore missing pack file
Vicent Martí ef1e5da1 2011-10-03T14:40:06 Merge pull request #438 from jdavid/development Make git_oid_fromstrn support hex strings of odd length
Sven Strickroth 599297fd 2011-10-03T23:12:43 ignore missing pack file as git does See http://code.google.com/p/tortoisegit/issues/detail?id=862 Signed-off-by: Sven Strickroth <email@cs-ware.de>
Carlos Martín Nieto 24012627 2011-10-03T00:33:13 examples: add ls-remote, fetch and index-pack examples Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
J. David Ibáñez 0e058e78 2011-10-02T21:40:57 oid: add missing check to git_oid_fromstrn Signed-off-by: J. David Ibáñez <jdavid.ibp@gmail.com>
Carlos Martín Nieto cd19ca95 2011-10-01T20:16:13 Squelch a couple of warnings Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
Carlos Martín Nieto 9ac581bf 2011-10-01T19:56:04 config: behave like git with [section.subsection] The documentation is a bit misleading. The subsection name is always case-sensitive, but with a [section.subsection] header, the subsection is transformed to lowercase when the configuration is parsed. Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
Carlos Martín Nieto 92be7908 2011-10-01T14:46:30 indexer: return immediately if passed a NULL value Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
Carlos Martín Nieto 922bc225 2011-10-01T14:34:51 pkt: send all of the wants in the negotiation A missing if caused the function to return after the first want line without capabilities. Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
Carlos Martín Nieto 7ad994bb 2011-10-01T13:41:16 transport-git: fix git request length calculation There was an off-by-one error that was uncovered when we used the right length from git_buf. Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
Vicent Marti dfd0abda 2011-10-01T13:25:24 clay: Fix compilation under MSVC
Vicent Marti 10063aeb 2011-10-01T13:10:29 transport-git: Encapsulation ist gut
Vicent Marti 657ce4b5 2011-10-01T12:58:55 http-transport: Properly cleanup the WSA context
Vicent Marti 1e5b2635 2011-10-01T12:58:17 http-transport: Update copyright
Vicent Martí f77d4f7f 2011-10-01T03:56:19 Merge pull request #437 from carlosmn/networking-windows Fix networking on Windows
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>
Carlos Martín Nieto bad53552 2011-09-30T23:48:27 netops: abstract away socket closing Winsock wants us to use closesocket() instead of close(), so introduce the gitno_close function, which does the right thing. Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
Carlos Martín Nieto a2888919 2011-09-30T18:35:33 local transport: don't segfault on wrong URL memset the structure on initialisation and don't try to dereference the vector with the heads if we didn't find a repository. Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
Carlos Martín Nieto ccc9872d 2011-09-30T17:21:30 Initialise the winsock DLL Windows wants us to initialise the networking DLL before we're allowed to send data through a socket. Call WSASetup and WSACleanup if GIT_WIN32 is defined. Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
Carlos Martín Nieto a95aeb48 2011-09-30T16:55:05 Use git_buf in the git request This is clearer and sidesteps the issue of what the return value of snprintf is on the particular OS we're running on. Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
Vicent Martí a70b3c73 2011-09-30T13:52:01 Merge pull request #436 from libgit2/config-int-types config: Proper type declarations for 64 bit ints