src


Log

Author Commit Date CI Message
Russell Belfer 965e4e2d 2013-01-21T13:19:41 Parse commit time as uint64_t to avoid overflow The commit time is already stored as a git_time_t, but we were parsing is as a uint32_t. This just switches the parser to use uint64_t which will handle dates further in the future (and adds some tests of those future dates).
Carlos Martín Nieto d47c6aab 2013-01-20T04:20:09 commit: don't include the LF in the header field value When the encoding header changed to be treated as an additional header, the EOL pointer started to point to the byte after the LF, making the git__strndup call copy the LF into the value. Increase the EOL pointer value after copying the data to keep the rest of the semantics but avoid copying LF.
Carlos Martín Nieto 7a2cf780 2013-01-20T01:57:32 Fix compilation on OpenBSD
Philip Kelley 77844988 2013-01-18T14:51:46 Fix really bad error handling in git_smart__negotiate_fetch
Vicent Martí ddcb28a4 2013-01-17T16:56:57 Merge pull request #1239 from ethomson/index_remove add an index_remove_bypath that removes conflicts
Vicent Martí 75f49ae4 2013-01-17T13:45:52 Merge pull request #1244 from carlosmn/pack-evict A comparison of eviction algorithms for the delta base cache
Ben Straub c49fa037 2013-01-17T13:37:32 Merge pull request #1247 from sba1/dont-segfault-if-transport-doesnt-support-push Don't segfault if transport doesn't support push.
Vicent Martí 5c8901ab 2013-01-17T13:36:33 Merge pull request #1255 from arrbee/fix-signed-commit-header-parsing Add skipping of unknown commit headers
Russell Belfer 291090a0 2013-01-17T13:19:09 Add skipping of unknown commit headers This moves the check for the "encoding" header into a loop which is just scanning for non-required headers at the end of a commit header. That loop will skip unrecognized lines (including header continuation lines) until a terminating completely blank line is found, and only then does it move to reading the commit message.
Edward Thomson 6e959708 2013-01-17T13:11:57 cache should contain on-disk (filtered) file size
Sebastian Bauer 9bf56c7b 2013-01-15T21:39:37 Don't segfault if transport doesn't support push. Instead, set an more informative error message.
Vicent Martí 34a4ad46 2013-01-16T15:52:58 Merge pull request #1211 from arrbee/fix-icase-status-file Fix case insensitivity issues in git_status_file
nulltoken bf031581 2013-01-14T14:22:11 branch: Introduce git_branch_tracking_name()
nulltoken 28cbd2e2 2013-01-14T12:09:10 Fix indentations
Russell Belfer fffe429a 2013-01-10T11:11:42 Shortcut spool and sort for empty iterator
Russell Belfer 25423d03 2013-01-09T16:07:54 Support case insensitive tree iterators and status This makes tree iterators directly support case insensitivity by using a secondary index that can be sorted by icase. Also, this fixes the ambiguity check in the git_status_file API to also be case insensitive. Lastly, this adds new test cases for case insensitive range boundary checking for all types of iterators. With this change, it should be possible to deprecate the spool and sort iterator, but I haven't done that yet.
Russell Belfer 98527b5b 2013-01-09T16:03:35 Add git_tree_entry_cmp and git_tree_entry_icmp This adds a new external API git_tree_entry_cmp and a new internal API git_tree_entry_icmp for sorting tree entries. The case insensitive one is internal only because general users should never be seeing case-insensitively sorted trees.
Russell Belfer 23594c1d 2013-01-09T16:02:42 Add git_path_icmp to case-insensitive path cmp This adds git_path_icmp to complement git_path_cmp.
Russell Belfer 851ad650 2013-01-09T16:00:16 Add payload "_r" versions of bsearch and tsort git__bsearch and git__tsort did not pass a payload through to the comparison function. This makes it impossible to implement sorted lists where the sort order depends on external data (e.g. building a secondary sort order for the entries in a tree). This commit adds git__bsearch_r and git__tsort_r versions that pass a third parameter to the cmp function of a user payload.
Russell Belfer 134d8c91 2013-01-08T15:53:13 Update iterator API with flags for ignore_case This changes the iterator API so that flags can be passed in to the constructor functions to control the ignore_case behavior. At this point, the flags are not supported on tree iterators (i.e. there is no functional change over the old API), but the API changes are all made to accomodate this. By the way, I went with a flags parameter because in the future I have a couple of other ideas for iterator flags that will make it easier to fix some diff/status/checkout bugs.
Russell Belfer 5c8bb98c 2013-01-08T13:45:06 Fix err msg for ambiguous path in git_status_file Returning GIT_EAMBIGUOUS from inside the status callback gets overridden with GIT_EUSER. `git_status_file` accounted for this via the callback payload, but was allowing the error message to be cleared. Move the `giterr_set` call outside the callback to where the EUSER case was being dealt with.
Russell Belfer 4b181037 2013-01-08T13:39:15 Minor iterator API cleanups In preparation for further iterator changes, this cleans up a few small things in the iterator API: * removed the git_iterator_for_repo_index_range API * made git_iterator_free not be inlined * minor param name and test function name tweaks
Russell Belfer facc0650 2013-01-08T13:27:25 Simplify git_diff__paired_foreach icase handling
Russell Belfer 230010d1 2013-01-15T09:46:50 Merge pull request #1238 from nulltoken/fix/checkout-index checkout: Teach checkout to cope with orphaned Head
Russell Belfer 848d77dc 2013-01-14T10:05:35 Merge pull request #1242 from sba1/init-with-template-fix Some fixes for external template support
Carlos Martín Nieto 9c62aaab 2013-01-14T17:42:12 pack: evict all of the pages at once Somewhat surprisingly, this can increase the speed considerably, as we don't bother trying to decide what to evict, and the most used entries are quickly back into the cache.
Carlos Martín Nieto ed6648ba 2013-01-14T16:39:22 pack: evict objects from the cache in groups of eight This drops the cache eviction below libcrypto and zlib in the perf output. The number has been chosen empirically.
Sebastian Bauer 85f40312 2013-01-13T11:30:05 Do not use GIT_CPDIR_CHMOD flag when copying the template. This is an intermin solution. While this essentially disables the --shared flag feature, previously external templates did not work at all. This change fixes the previously corrected, and since then failing, repo_init__extended_with_template() test. The problem is now documented in the source code comments.
nulltoken 5b524d69 2013-01-12T19:37:14 Fix Travis compilation warnings
nulltoken 2a3b3e03 2013-01-12T19:27:31 checkout: Teach checkout to cope with orphaned Head Fix #1236
Edward Thomson 25743bd7 2013-01-12T13:47:56 add an index_remove_bypath that removes conflicts, renamed add_from_workdir to match
Sebastian Bauer b7b1acfd 2013-01-12T20:02:00 Clear local error variable after invoking giterr_clear().
Carlos Martín Nieto 09e29e47 2013-01-12T19:31:07 pack: fixes to the cache The offset should be git_off_t, and we should check the return value of the mutex lock function.
Carlos Martín Nieto 96c9b9f0 2013-01-12T18:38:19 indexer: properly free the packfile resources The indexer needs to call the packfile's free function so it takes care of freeing the caches. We still need to close the mwf descriptor manually so we can rename the packfile into its final name on Windows.
Vicent Martí e2d2c6e5 2013-01-12T02:14:14 Merge pull request #1222 from scunz/clone_branch Switch to specified branch during clone
Ben Straub 3874f2d5 2013-01-11T20:23:46 Kill vestigal dangling-remote code Fixes #1232
Philip Kelley 359316b5 2013-01-11T17:16:55 Merge pull request #1215 from phkelley/binaryunicode Add a failing test for CRLF filters
Vicent Marti 355dddbf 2013-01-12T01:40:35 buf: Is this the function you were looking for?
Russell Belfer ad10db2a 2013-01-10T15:59:36 Check for binary blobs in checkout This adds a git_buf_text_is_binary check to blobs before applying filters when the blob data is being written to disk.
Vicent Martí 160e4fb7 2013-01-11T11:35:09 Merge pull request #1230 from arrbee/match-core-git-diff-binary-detection Match binary file check of core git in diff
Vicent Martí 6e19edaa 2013-01-11T11:34:13 Merge pull request #1229 from arrbee/fix-diff-patch-line-numbers Fix diff patch line number calculation
Russell Belfer 0d65acad 2013-01-11T11:24:26 Match binary file check of core git in diff Core git just looks for NUL bytes in files when deciding about is-binary inside diff (although it uses a better algorithm in checkout, when deciding if CRLF conversion should be done). Libgit2 was using the better algorithm in both places, but that is causing some confusion. For now, this makes diff just look for NUL bytes to decide if a file is binary by content in diff.
Russell Belfer 805c476c 2013-01-11T11:20:44 Fix diff patch line number calculation This was just wrong. Added a test that verifying patch line numbers even for hunks further into a file and then fixed the algorithm. I needed to add a little extra state into the patch so that I could track old and new file numbers independently, but it should be okay.
Carlos Martín Nieto 80d647ad 2013-01-11T20:15:06 Revert "pack: packfile_free -> git_packfile_free and use it in the indexers" This reverts commit f289f886cb81bb570bed747053d5ebf8aba6bef7, which makes the tests fail on Windows. Revert until we can figure out a solution.
nulltoken 090d5e1f 2013-01-11T14:40:09 Fix MSVC compilation warnings
nulltoken 4a0ac175 2013-01-10T23:27:13 checkout: Deploy EMERGECONFLICT usage
Vicent Marti d0b14cea 2013-01-11T18:21:09 pack: That declaration
Vicent Martí 32b33d62 2013-01-11T09:12:21 Merge pull request #1228 from carlosmn/delta-base Introduce a delta base cache
Carlos Martín Nieto f289f886 2013-01-11T17:24:52 pack: packfile_free -> git_packfile_free and use it in the indexers It turns out the indexers have been ignoring the pack's free function and leaking data. Plug that.
Carlos Martín Nieto 0ed75620 2012-12-21T13:46:48 pack: limit the amount of memory the base delta cache can use Currently limited to 16MB (like git) and to objects up to 1MB in size.
Carlos Martín Nieto c8f79c2b 2012-12-21T10:59:10 pack: abstract out the cache into its own functions
Carlos Martín Nieto 525d961c 2012-12-20T07:55:51 pack: refcount entries and add a mutex around cache access
Carlos Martín Nieto c0f4a011 2012-12-19T16:48:12 pack: introduce a delta base cache Many delta bases are re-used. Cache them to avoid inflating the same data repeatedly. This version doesn't limit the amount of entries to store, so it can end up using a considerable amound of memory.
nulltoken a379e652 2013-01-11T16:14:17 refspec: prevent git_refspec__free() from segfaulting Fix libgit2/libgit2sharp#247
Sascha Cunz 1265b51f 2013-01-11T03:07:50 Add missing git_buf_free
Sascha Cunz 88aef766 2013-01-11T02:45:55 Implement analog for 'git checkout --branch xxx ...'
Sascha Cunz 132c2db6 2013-01-11T02:18:27 Fix possible free'ing of unitialized pointer in error case
Russell Belfer 40342bd2 2013-01-10T15:15:37 Add GIT_CHECKOUT_DISABLE_PATHSPEC_MATCH This adds an option to checkout a la the diff option to turn off fnmatch evaluation for pathspec entries. This can be useful to make sure your "pattern" in really interpretted as an exact file match only.
Vicent Martí 404880b1 2013-01-10T11:24:09 Merge pull request #1206 from ben/stock-auth Expose stock user/pass credential utility
Vicent Martí 48de3061 2013-01-10T10:04:53 Merge pull request #1220 from ethomson/reuc_empty_sides REUC needs to handle empty sides
Edward Thomson eb3c247a 2013-01-10T11:56:02 REUC needs to handle empty sides
Vicent Martí 7bacc2c8 2013-01-10T08:15:10 Merge pull request #1182 from libgit2/odb-file-refresh Sane refresh logic for #1180
Vicent Marti 8fe6bc5c 2013-01-10T15:43:08 odb: Refresh on `exists` query too
Vicent Marti 891a4681 2013-01-04T17:42:41 dat errorcode
Vicent Marti 4a863c06 2013-01-03T20:36:26 Sane refresh logic All the ODB backends have a specific refresh interface. When reading an object, first we attempt every single backend: if the read fails, then we refresh all the backends and retry the read one more time to see if the object has appeared.
Sebastian Bauer e9bb730c 2012-11-09T06:02:30 Added missing curly brackets and fixed compiler warnings.
Ben Straub 520dcc1c 2013-01-08T19:55:59 Move credential helpers to their own (optional) header
Ben Straub ffb02b16 2013-01-08T12:58:20 Expose stock user/pass credential utility
Michael Schubert abeefbbe 2012-12-26T19:16:23 push: properly handle tags Currently, push doesn't really handle tags when queueing objects. Fix it.
Jameson Miller 087f64d3 2012-12-17T18:48:26 Relax refspecs accepted by push
Russell Belfer de590550 2013-01-08T17:11:11 Resolve crash with diff against empty file It is not legal inside our `p_mmap` function to mmap a zero length file. This adds a test that exercises that case inside diff and fixes the code path where we would try to do that. The fix turns out not to be a lot of code since our default file content is already initialized to "" which works in this case. Fixes #1210
Edward Thomson 359fc2d2 2013-01-08T17:07:25 update copyrights
Edward Thomson 8f09f464 2013-01-08T16:54:44 remove ppc sha1 asm
Russell Belfer f2b7f7a6 2013-01-07T15:44:22 Share git_diff_blobs/git_diff_blob_to_buffer code This moves the implementation of these two APIs into common code that will be shared between the two. Also, this adds tests for the `git_diff_blob_to_buffer` API. Lastly, this adds some extra `const` to a few places that can use it.
Ignacio Casal Quinteiro f6234cd9 2012-12-21T20:57:43 Introduce git_diff_blob_to_buffer
Philip Kelley f6ed5e2d 2013-01-07T09:53:43 Revert changes from git/git diff-delta.c by dak@gnu.org, proski@gnu.org
Edward Thomson c31ae146 2013-01-06T18:38:29 merge cleanup should actually cleanup and the test should actually test
Vicent Martí 5df7ad3e 2013-01-06T07:56:45 Merge pull request #1196 from scunz/allow_clone_without_master_branch Allow to clone repositories that don't have a `master` branch
Vicent Martí 74f880a6 2013-01-06T07:56:08 Merge pull request #1197 from nulltoken/travis/run-online-tests travis: Include the online suite when running against Travis
nulltoken d01fe380 2013-01-06T15:26:54 reset: Fix a memory leak
nulltoken d1aee477 2013-01-06T15:09:27 clone: Fix a memory leak
Sascha Cunz 2ba6f3c7 2013-01-06T14:30:52 Allow to clone repositories that don't have a `master` branch Before this, we error out from `reference_matches_remote_head` if the reference we're searching for does not exist. Since we explicitly check if master is existing in `update_head_to_remote` and error out if it doesn't, a repository without master branch could not be cloned. In fact this was later clobbered by what is fixed in #1194. However, this patch introduces a `found` member in `head_info` and sets it accordingly. That also saves us from checking the string length of `branchname` a few times.
Scott J. Goldman f9b55bcb 2013-01-05T18:20:42 git_mwindow_file_deregister() shouldn't return errors As a function that appears to only be called on error paths, I don't think it makes sense for it to return an error, or clobber the global giterr. Note that no existing callsites actually check the return code. In my own application, there are errors where the real error ends up being hidden, as git_mwindow_file_deregister() clobbers the global giterr. I'm not sure this error is even relevant?
Vicent Martí d74b1bc5 2013-01-05T15:44:19 Merge pull request #1131 from libgit2/correct-ahead-behind Fix an issue with ahead-behind for lopsided traversal
Scott J. Goldman ef82ff30 2013-01-05T00:46:39 Handle packed refs with no trailing newline I saw a repo in the wild today which had a master branch ref which was packed, but had no trailing newline. Git handled it fine, but libgit2 choked on it. Fix seems simple enough. If we don't see a newline, assume the end of the buffer is the end of the ref line.
Maxwell Swadling 79ff264e 2013-01-05T11:34:19 Fixed size_t format string warning
Russell Belfer 817d6251 2013-01-03T16:56:27 Fix checkout of index-only dirs and prefixed paths There are a couple of checkout bugs fixed here. One is with untracked working directory entries that are prefixes of tree entries but not in a meaningful way (i.e. "read" is a prefix of "readme.txt" but doesn't interfere in any way). The second bug is actually a redo of 07edfa0fc640f85f95507c3101e77accd7d2bf0d where directory entries in the index that are not in the diff were not being removed correctly. That fix remedied one case but broke another.
Russell Belfer 7fc00435 2013-01-03T15:48:52 Add index API to remove all files in a directory This adds the git_index_remove_directory API plus tests.
Russell Belfer 1b88faf7 2013-01-03T14:21:25 Fix oid tostr issue with NULL oid I made a small change to the behavior of this code and apparently got it wrong. Sigh.
Russell Belfer d8889d2b 2013-01-03T14:08:53 Fix checkout bug rmv untracked trees from index When checking out with the GIT_CHECKOUT_REMOVE_UNTRACKED option and there was an entire tree in the working directory and in the index that is not in the baseline nor target commit, the tree was correctly(?) removed from the working directory but was not successfully removed from the index. This fixes that and adds a test of the functionality.
Russell Belfer dde7602a 2013-01-03T13:22:34 Fix memory leak with checkout tree iterator
Russell Belfer 0d70f650 2013-01-03T10:51:18 Fixing checkout UPDATE_ONLY and adding tests This adds a bunch of new checkout tests and in the process I found a bug in the GIT_CHECKOUT_UPDATE_ONLY flag which I fixed.
Russell Belfer 2850252a 2013-01-03T09:11:52 Oh yeah, bugs from my rebase
Russell Belfer 77cffa31 2013-01-02T17:14:00 Simplify checkout documentation This moves a lot of the detailed checkout documentation into a new file (docs/checkout-internals.md) and simplifies the public docs for the checkout API.
Russell Belfer e0548c0e 2013-01-02T17:09:07 Fix some submodule and typechange checkout cases There were a bunch of small bugs in the checkout code where I was assuming that a typechange was always from a tree to a blob or vice versa. This fixes up most of those cases. Also, there were circumstances where the submodule definitions were changed by the checkout and the submodule data was not getting reloaded properly before the new submodules were checked out.
Russell Belfer 16a666d3 2013-01-02T17:05:54 Fix workdir notifications and removals The notifications were broken from the various iterations over this code and were not returning working dir item data correctly. Also, workdir items that were alphabetically after the last item in diff were not being processed.
Russell Belfer 546d65a8 2013-01-02T17:01:34 Fix up spoolandsort iterator usage The spoolandsort iterator changes got sort-of cherry picked out of this branch and so I dropped the commit when rebasing; however, there were a few small changes that got dropped as well (since the version merged upstream wasn't quite the same as what I dropped).
Russell Belfer a9a73007 2012-12-20T16:16:22 Submodule caching fix and location API This adds a new API to the submodule interface that just returns where information about the submodule was found (e.g. config file only or in the HEAD, index, or working directory). Also, the old "refresh" call was potentially keeping some stale submodule data around, so this simplfies that code and literally discards the old cache, then reallocates.
Russell Belfer 6f58332f 2012-12-20T16:15:02 Fix use of uninitialized variable
Russell Belfer a6a82e1a 2012-12-19T15:06:40 Improve error propagation in stash Stash was sometimes obscuring the actual error code, replacing it with a -1 when there was more descriptive value. This updates stash to preserve the original error code more reliably along with a variety of other error handling tweaks. I believe this is an improvement, but arguably, preserving the underlying error code may result in values that are harder to interpret by the caller who does not understand the internals. Discussion is welcome!