src


Log

Author Commit Date CI Message
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 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 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 2850252a 2013-01-03T09:11:52 Oh yeah, bugs from my rebase
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 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 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 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
Nikolai Vladimirov b421decc 2013-01-03T15:43:51 notes.c - whitespace fix
Vicent Martí 686a243a 2013-01-04T08:36:13 Merge pull request #1184 from ethomson/mergehead_iterator MERGE_HEAD contents iterator
Philip Kelley 37955f54 2013-01-04T07:33:31 Merge pull request #1183 from congyiwu/push_delete_fix Fix bug in gen_pktline() for deletes of missing remote refs
Edward Thomson 42e50b5e 2013-01-03T12:44:09 MERGE_HEAD contents iterator
Martin Woodward 1c5b3a41 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 0470f8fc 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 4128f5aa 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 9a919301 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 ad2bc32f 2013-01-03T15:53:50 expose merge metadata cleanup
Vicent Martí 07871d3a 2013-01-03T07:43:27 Merge pull request #1181 from nvloff/allow_note_overwrite Allow note overwrite
Nikolai Vladimirov 8716b499 2013-01-03T16:31:36 add option to allow git note overwrite
Philip Kelley 0db4cd04 2013-01-03T08:45:09 Fix git__strncasecmp
Nikolai Vladimirov 4a44087a 2013-01-03T15:43:51 notes.c - whitespace fix
Vicent Martí cd5ca5b9 2013-01-02T13:50:41 Merge pull request #1152 from ben/clone-api-structification Segregate in-memory and persisted remotes
Ben Straub 730df6d0 2013-01-02T13:43:54 Include checkout options inline
Ben Straub c07b52df 2013-01-02T12:48:17 Remove `inmem` flag, use NULL name instead
Ben Straub 0642c143 2013-01-02T12:44:47 Move `url` to last place in parameter list
Michael Schubert 2e40c616 2013-01-02T16:27:22 path: ifdef GIT_WIN32 looks_like_network_computer_name()
Russell Belfer 3865f7f6 2012-12-27T23:23:12 Invalid ref name normalization leaked memory When normalizing a reference name, if there is an error because the name is invalid, then the memory allocated for storing the name could be leaked if the caller was not careful and assumed that the error return code meant that no allocation had occurred. This fixes that by explicitly deallocating the reference name buffer if there is an error in normalizing the name.
Russell Belfer f616a36b 2012-12-27T22:25:52 Make spoolandsort a pushable iterator behavior An earlier change to `git_diff_from_iterators` introduced a memory leak where the allocated spoolandsort iterator was not returned to the caller and thus not freed. One proposal changes all iterator APIs to use git_iterator** so we can reallocate the iterator at will, but that seems unexpected. This commit makes it so that an iterator can be changed in place. The callbacks are isolated in a separate structure and a pointer to that structure can be reassigned by the spoolandsort extension. This means that spoolandsort doesn't create a new iterator; it just allocates a new block of callbacks (along with space for its own extra data) and swaps that into the iterator. Additionally, since spoolandsort is only needed to switch the case sensitivity of an iterator, this simplifies the API to only take the ignore_case boolean and to be a no-op if the iterator already matches the requested case sensitivity.
Ben Straub 592f466c 2012-12-27T11:11:53 Fix GCC static/non-static compile error
nulltoken 50a762a5 2012-12-26T12:03:07 path: Teach UNC paths to git_path_dirname_r() Fix libgit2/libgit2sharp#256
nulltoken f19304d2 2012-12-24T15:59:01 remote: Prevent create() from blindly overwriting
nulltoken 7d4b65f6 2012-12-17T12:27:32 Fix indentations
Michael Schubert 7382551f 2012-12-22T16:29:59 Fix -Wmaybe-uninitialized warning
Vicent Martí 2052e3c0 2012-12-21T10:32:23 Merge pull request #1163 from barrbrain/check-exists-before-write odb: check if object exists before writing
Ben Straub 79000951 2012-12-21T08:05:59 In-memory remotes don't have names
David Michael Barr 4d185dd9 2012-12-19T14:30:06 odb: check if object exists before writing Update the procondition of git_odb_backend::write. It may now be assumed that the object has already been hashed.
Ben Straub 87bc689f 2012-12-20T15:50:33 git_remote_create calls git_remote_save
Ben Straub 874dcb25 2012-12-20T11:49:05 Remote: deprecate dangling, prevent saving in-memory
Ben Straub 29f27599 2012-12-20T10:51:09 Rename remote creation APIs git_remote_add -> git_remote_create git_remote_new -> git_remote_create_inmemory
Ben Straub 00998a12 2012-12-19T16:51:58 Initialize variable
Ben Straub 621b50e4 2012-12-19T16:51:37 Clone: trust but verify
Ben Straub b412d563 2012-12-18T19:46:05 Add more clone options. Push test suite segfaults.
Edward Thomson 7fcec834 2012-12-11T22:31:21 fetchhead reading/iterating
Vicent Martí 5c3c86b0 2012-12-19T13:43:50 Merge pull request #1150 from schu/fix-netops-ssl netops: on SSL teardown only send shutdown alert
Vicent Marti 08a325a3 2012-12-19T12:52:14 reflog: Actual error handling
Vicent Marti 8a810441 2012-12-19T12:48:12 reflog: Rename error handling
Rick Bradley 9ec50c25 2012-12-18T18:15:21 Make goto cleanup more consistent There may be some question about whether this is likely to be needed at all, but that's above my head at the moment.
Rick Bradley 3a6420f3 2012-12-18T17:46:18 don't deref before we've asserted just sayin'.
Rick Bradley ed4e887d 2012-12-18T16:09:57 Also, whitespace. I was totally flaunting @ben's 3-space tab advice.
Rick Bradley 33f169e2 2012-12-18T16:07:18 Improve comment text This looked wrong to me. I *think* this is more appropriate commentary.
Vicent Martí e62171e2 2012-12-17T11:10:25 Merge pull request #1151 from arrbee/fix-diff-constructor-names Fix diff constructor names
Russell Belfer 56c72b75 2012-12-17T11:00:53 Fix diff constructor name order confusion The diff constructor functions had some confusing names, where the "old" side of the diff was coming after the "new" side. This reverses the order in the function name to make it less confusing. Specifically... * git_diff_index_to_tree becomes git_diff_tree_to_index * git_diff_workdir_to_index becomes git_diff_index_to_workdir * git_diff_workdir_to_tree becomes git_diff_tree_to_workdir
Michael Schubert f2b00cbd 2012-12-17T19:35:40 netops: on SSL teardown only send shutdown alert According to man 3 SSL_shutdown / TLS, "If a unidirectional shutdown is enough (the underlying connection shall be closed anyway), this first call to SSL_shutdown() is sufficient." Currently, an unidirectional shutdown is enough, since gitno_ssl_teardown is called by gitno_close only. Do so to avoid further errors (by misbehaving peers for example). Fixes #1129.
Michael Schubert 9c8dbc88 2012-12-17T19:18:34 netops: properly handle GITNO_CONNECT_SSL_NO_CHECK_CERT Don't return an error just because GITNO_CONNECT_SSL_NO_CHECK_CERT is set.
Vicent Martí 0d10e79d 2012-12-17T10:13:36 Merge pull request #1149 from nulltoken/topic/blob_isbinary Introduce git_blob_is_binary()
nulltoken a3337f10 2012-12-17T15:15:20 blob: introduce git_blob_is_binary()
nulltoken bdb94c21 2012-12-17T12:20:52 Fix MSVC compilation warnings
Michael Schubert 101659be 2012-12-17T15:50:12 Fix -Wmaybe-uninitialized warning
Ben Straub 2a2d1ab0 2012-12-15T14:30:20 Cloning empty repos: only allow missing target for HEAD
Ben Straub 28abb187 2012-12-14T14:16:10 Stop returning incorrect error message
Ben Straub b524fe1a 2012-12-14T08:35:59 Local Only ignore ENOTFOUNDs when adding corrupted refs
Ben Straub 850b1edf 2012-12-13T12:55:28 Allow clone to handle empty repos
Ben Straub b9e7e2b4 2012-12-14T13:46:45 Move non-options back out of options struct
Ben Straub 18b2d560 2012-12-14T13:03:59 Deploy git_clone_options; remove git_clone_bare
Vicent Marti b0b9fd32 2012-12-14T02:41:53 Merge remote-tracking branch 'origin/clone-auth' into development
Jameson Miller f0a2def5 2012-12-13T18:08:45 Fix comment so it doesn't go over 100 chars
Jameson Miller cb2ace69 2012-12-13T12:51:23 Transport resolution on Win32 should handle absolute local paths
Ben Straub 24393ea6 2012-12-13T09:14:56 Stop premature remote freeing when cloning
Ben Straub 7c353afd 2012-12-13T08:47:29 Define constant for default fetch spec
Ben Straub 44f36f6e 2012-12-12T19:48:44 Convert clone to use dangling remotes
Edward Thomson e759b072 2012-12-12T17:54:12 don't walk off the end of the index
Ben Straub b914e17d 2012-12-12T12:23:24 API to set a dangling remote's repository
Ben Straub a71c27cc 2012-12-12T12:15:25 Allow creation of dangling remotes
Nguyễn Thái Ngọc Duy 08f3d6ca 2012-12-12T19:23:05 tree cache: loosen negative entry count check While C Git has been writing entry count -1 (ie. never other negative numbers) as invalid since day 1, it accepts all negative entry counts as invalid. JGit follows the same rule. libgit2 should also follow, or the index that works with C Git or JGit may someday be rejected by libgit2. Other reimplementations like dulwich and grit have not bothered with parsing or writing tree cache.
Russell Belfer 91e7d263 2012-12-10T15:29:44 Fix iterator reset and add reset ranges The `git_iterator_reset` command has not been working in all cases particularly when there is a start and end range. This fixes it and adds tests for it, and also extends it with the ability to update the start/end range strings when an iterator is reset.
Russell Belfer 9950d27a 2012-12-06T13:26:58 Clean up iterator APIs This removes the need to explicitly pass the repo into iterators where the repo is implied by the other parameters. This moves the repo to be owned by the parent struct. Also, this has some iterator related updates to the internal diff API to lay the groundwork for checkout improvements.