src


Log

Author Commit Date CI Message
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 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 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 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 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 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 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
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
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 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 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 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!
Russell Belfer 8fe713cc 2012-12-19T15:06:14 Make git_oid_tostr use out buffer for NULL oid Previously a NULL oid was handled like an empty buffer and returned a status empty string. This makes git_oid_tostr() set the output buffer to the empty string instead.
Russell Belfer 5cf9875a 2012-12-18T15:19:24 Add index updating to checkout Make checkout update entries in the index for all files that are updated and/or removed, unless flag GIT_CHECKOUT_DONT_UPDATE_INDEX is given. To do this, iterators were extended to allow a little more introspection into the index being iterated over, etc.
Russell Belfer 7e5c8a5b 2012-12-10T15:31:43 More checkout improvements This flips checkout back to be driven off the changes between the baseline and the target trees. This reinstates the complex code for tracking the contents of the working directory, but overall, I think the resulting logic is easier to follow.
Russell Belfer cf208031 2012-12-06T13:36:17 Rework checkout internals (again) I've tried to map out the detailed behaviors of checkout and make sure that we're handling the various cases correctly, along with providing options to allow us to emulate "git checkout" and "git checkout-index" with the various flags. I've thrown away flags in the checkout API that seemed like clutter and added some new ones. Also, I've converted the conflict callback to a general notification callback so we can emulate "git checkout" output and display "dirty" files. As of this commit, the new behavior is not working 100% but some of that is probably baked into tests that are not testing the right thing. This is a decent snapshot point, I think, along the way to getting the update done.
Russell Belfer bfe7d7de 2012-11-26T17:24:02 Reorder operations in git reset This corrects the order of operations in git reset so that the checkout to reset the working directory content is done before the HEAD is moved. This allows us to use the HEAD and the index content to know what files can / should safely be reset. Unfortunately, there are still some cases where the behavior of this revision differs from core git. Notable, a file which has been added to the index but is not present in the HEAD is considered to be tracked by core git (and thus removable by a reset command) whereas since this loads the target state into the index prior to resetting, it will consider such a file to be untracked and won't touch it. That is a larger fix that I'll defer to a future commit.
Russell Belfer 6fee906c 2012-12-18T15:13:11 missing error message is confusing
Russell Belfer 6ac724af 2012-12-18T15:12:06 Clear error to avoid leaving invalid error behind
Vicent Martí c18a5ec5 2013-01-04T11:10:39 Merge pull request #1174 from nulltoken/topic/soft_reset_with_index_conflicts Prevent soft reset when index contains conflicts
Philip Kelley 27fe6efe 2013-01-04T13:48:08 Fix git_index sorting with core.ignorecase in git_index_read
nulltoken 9a0d5904 2012-12-27T13:42:27 reset: Cannot soft reset with a conflicted index
Edward Thomson 5a62d659 2013-01-03T12:44:09 MERGE_HEAD contents iterator
Martin Woodward 9651fdc2 2013-01-03T22:28:59 Give proper license notice to code from Android The usage of the Android derrived code contains a full notice which must be provided with the source code as per the terms given at: https://android.googlesource.com/platform/bionic/+/android-4.0.3_r1.1/libc/bionic/dirname_r.c
Martin Woodward 43464497 2013-01-03T22:24:10 Add full license notice to bsearch code The original BSD glibc code contains the notice as given at http://opensource.apple.com/source/gcc/gcc-5666.3/libiberty/bsearch.c and should be given in full along with the code.
Congyi Wu d73d52df 2013-01-03T13:26:11 Fix bug in gen_pktline() for deletes of missing remote refs * gen_pktline() in smart_protocol.c was skipping refspecs that deleted refs that were not advertised by the server. The new behavior is to send a delete command with an old-id of zero, which matches the behavior of the official git client. * Update test_network_push__delete() in reaction to above fix. * Obviate messy logic that handles missing push_spec rrefs by canonicalizing push_spec. After calculate_work(), loid, roid, and rref, are filled in with exactly what is sent to the server
Martin Woodward 931b8b70 2013-01-03T22:16:37 Add Apache license header back to libpqueue files The original libpqueue file were licensed under Apache 2.0 so therefore should retain their copyrights and header as per the license terms at http://www.apache.org/licenses/LICENSE-2.0
Edward Thomson 35560d6d 2013-01-03T15:53:50 expose merge metadata cleanup
Nikolai Vladimirov b60b4562 2013-01-03T16:31:36 add option to allow git note overwrite
Philip Kelley 853488ee 2013-01-03T08:45:09 Fix git__strncasecmp