src


Log

Author Commit Date CI Message
Edward Thomson 855c66de 2014-03-27T16:34:20 Introduce core.safecrlf handling
Russell Belfer 7167fd7e 2014-04-07T11:51:12 vmg is always right
Russell Belfer c813b345 2014-04-07T11:45:32 Fix bug with multiple iconv conversions in one dir The internal buffer in the `git_path_iconv_t` structure was not being reset before the calls to `iconv` were made to convert data, so if there were multiple decomposed Unicode paths in a single directory, paths after the first one were being appended to the first instead of treated as independent data.
Vicent Marti 6720eef9 2014-04-07T11:22:23 Merge pull request #2249 from libgit2/rb/starstar-fnmatch Add support for ** matches in ignores
Russell Belfer c7d96060 2014-04-06T11:20:22 Fix fnmatch comment to be clearer
Vicent Marti 52056db9 2014-04-06T16:22:29 Merge pull request #2250 from jacquesg/vector-leak Don't lose our elements when calling git_vector_set()
Jacques Germishuys 4998009a 2014-04-06T15:06:46 Don't lose our elements when calling git_vector_set()
Russell Belfer 2b6b85f1 2014-04-04T17:02:12 Add support for ** matches in ignores This is an experimental addition to add ** support to fnmatch pattern matching in libgit2. It needs more testing.
Vicent Marti 923c8400 2014-04-04T14:24:08 Merge pull request #2215 from libgit2/rb/submodule-cache-fixes Improve submodule cache management
Vicent Marti f34408a7 2014-04-04T14:23:07 Merge pull request #2211 from Yogu/retry-renaming-config Retry committing locked files on error
Russell Belfer eedeeb9e 2014-04-03T11:58:51 Test (and fix) the git_submodule_sync changes I wrote this stuff a while ago and forgot to write tests. Wanted to do so now to wrap up the PR and immediately found problems.
Russell Belfer 18cc7d28 2014-04-03T11:29:08 Minor code cleanup
Jan Melcher f2fb4bac 2014-04-02T23:55:21 git_submodule_resolve_url supports relative urls The base for the relative urls is determined as follows, with descending priority: - remote url of HEAD's remote tracking branch - remote "origin" - workdir This follows git.git behaviour
Jacques Germishuys 3b4ba278 2014-04-03T15:50:21 Const correctness!
Carlos Martín Nieto 67d4997a 2014-04-02T18:44:01 remote: mark branch for-merge even if we're unborn When the current branch is unborn, git will still mark the current branch's upstream for-merge if there is an upstream configuration. The only non-constrived case is cloning from an empty repository which then gains history. origin's master should be marked for-merge. In order to do this, we cannot use the high-level wrappers that expect a reference, as we may not have one. Move over to the internal ones that expect a reference name, which we do have.
Vicent Marti 64a862c2 2014-04-02T18:48:38 Merge pull request #2237 from mekishizufu/fix_return_value Fix submodule_is_config_only's return value
Jiri Pospisil 49653665 2014-04-02T18:21:41 checkout: Fix submodule_is_config_only's return value
Vicent Marti fe23860a 2014-04-02T17:45:25 Merge pull request #2230 from anuraggup/revwalk-merge-base No need to find merge base.
Russell Belfer ea1ca3c9 2014-04-01T21:30:52 Fix skipping content of contained repos When doing a diff for use in status, we should never show the content of a git repository contained inside another one. The logic to do this was looking for a .git directory and so when a gitlink plain .git file was used, it was failing to exclude the directory content.
Russell Belfer 8f4e5275 2014-04-01T16:46:25 More tests and fix submodule index refresh There was a little bug where the submodule cache thought that the index date was out of date even when it wasn't that was resulting in some extra scans of index data even when not needed. Mostly this commit adds a bunch of new tests including adding and removing submodules in the index and in the HEAD and seeing if we can automatically pick them up when refreshing.
Russell Belfer 4ece3e22 2014-04-01T12:19:11 Fix submodule accounting for name and path changes Wrote tests that try adding, removing, and updating the name of submodules which showed a number of problems with how we account for changes when incrementally updating the submodule info. Most of these issues didn't exist before because reloading would always blow away the old submodule data.
Carlos Martín Nieto f28e4c97 2014-04-01T20:17:49 refspec: git_refspec_parse() does not exist
Russell Belfer aa78c9ba 2014-04-01T10:22:51 Minor submodule cache locking improvements This improvement the management of the lock around submodule cache updates slightly, using the lock to make sure that foreach can safely make a snapshot of all existing submodules and making sure that git_submodule_add_setup also grabs a lock before inserting the new submodule. Cache initialization / refresh should already have been holding the lock correctly as it adds submodules.
Russell Belfer eeeb9654 2014-03-30T15:35:56 Reinstate efficient submodule reloading This makes it so that git_submodule_reload_all will actually only reload changed items unless the `force` flag is used.
Russell Belfer a4ccd2b0 2014-03-29T15:23:01 Use enums instead of bools for submodule options When forcing cache flushes or reload, etc., it is easier to keep track of intent using enums instead of plain bools. Also, this fixes a bug where the cache was not being properly refreshes by a git_submodule_reload_all.
Russell Belfer db0e7878 2014-03-28T16:50:49 Make submodule refresh a bit smarter This makes submodule cache refresh actually look at the timestamps from the data sources for submodules and reload as needed if they have changed since the last refresh.
Russell Belfer 69b6ffc4 2014-03-28T14:02:21 Make a real submodule cache object This takes the old submodule cache which was just a git_strmap and makes a real git_submodule_cache object that can contain other things like a lock and timestamp-ish data to control refreshing of submodule info.
Russell Belfer e402d2f1 2014-03-24T11:25:59 Submodule sync refactoring Turns out there was already a helper to do what I wanted to do, so I just made it so that I could use it for sync and switched to that instead.
Russell Belfer 8286300a 2013-12-18T11:48:57 Fix git_submodule_sync and add new config helper This fixes `git_submodule_sync` to correctly update the remote URL of the default branch of the submodule along with the URL in the parent repository config (i.e. match core Git's behavior). Also move some useful helper logic from the submodule code into a shared config API `git_config__update_entry` that can either set or delete an entry with constraints like not overwriting or not creating a new entry. I used that helper to update a couple other places in the code.
Russell Belfer 18234b14 2014-02-21T09:14:16 Add efficient git_buf join3 API There are a few places where we need to join three strings to assemble a path. This adds a simple join3 function to avoid the comparatively expensive join_n (which calls strlen on each string twice).
Russell Belfer 2450d4c6 2014-04-01T09:33:18 Merge pull request #2208 from libgit2/vmg/mempack In-memory packing backend
Edward Thomson d67397dd 2014-04-01T09:32:17 Merge pull request #2226 from libgit2/rb/submodule-sorting-fix Fix submodule sort order during iteration
Vicent Marti 9325460a 2014-04-01T13:47:44 Merge pull request #2206 from libgit2/cmn/inmemory-swap-order Rename in-memory remote to anonymous and swap url and fetch order
Carlos Martín Nieto fd536d29 2014-03-26T11:15:57 remote: rename inmemory to anonymous and swap url and fetch order The order in this function is the opposite to what create_with_fetchspec() has, so change this one, as url-then-refspec is what git does. As we need to break compilation and the swap doesn't do that, let's take this opportunity to rename in-memory remotes to anonymous as that's really what sets them apart.
Edward Thomson 3ab57816 2014-03-31T23:23:32 Merge pull request #2178 from libgit2/rb/fix-short-id Fix git_odb_short_id and git_odb_exists_prefix bugs
Anurag Gupta 3bc3d797 2014-03-31T15:15:32 No need to find merge base.
Russell Belfer 7dcd42a5 2014-03-31T13:31:01 Cleanups
Russell Belfer c856f8c5 2014-03-31T12:27:05 Fix submodule sorting in workdir iterator With the changes to how git_path_dirload_with_stat handles things that look like submodules, submodules could end up sorted in the wrong order with the workdir iterator. This moves the submodule check earlier in the iterator processing of a new directory so that the submodule name updates will happen immediately and the sort order will be correct.
Russell Belfer 945c92a5 2014-03-31T12:26:46 Add faster git_submodule__is_submodule check
Edward Thomson 7f930ded 2014-03-31T09:38:06 Const up members of git_merge_file_result
Vicent Marti 336e8957 2014-03-31T19:17:01 Merge pull request #2222 from ethomson/merge_head_id Introduce git_merge_head_id
Edward Thomson 976634c4 2014-03-30T19:56:18 Introduce git_merge_head_id
Etienne Samson 31143b36 2014-03-30T18:08:32 Don't reset need_pack While looping over multiple heads, an up-to-date head will clobber the `remote->need_pack` setting, preventing the rest of the machinery from building and downloading a pack-file, breaking fetches.
Russell Belfer acdc7cff 2014-03-27T15:29:17 Fix memory leak of submodule branch name
Russell Belfer add8db06 2014-03-27T15:28:29 Fix use-after-free in submodule reload If the first call to release a no-longer-existent submodule freed the object, the check if a second is needed would dereference the data that was just freed.
Jan Melcher 2873a862 2014-03-27T12:42:44 Retry renaming files on Access Denied errors When a file is open for reading (without shared-delete permission), and then a different thread/process called p_rename, that would fail, even if the file was only open for reading for a few milliseconds. This change lets p_rename wait up to 50ms for the file to be closed by the reader. Applies only to win32. This is especially important for git_filebuf_commit, because writes should not fail if the file is read simultaneously. Fixes #2207
Russell Belfer 380f864a 2014-03-26T16:06:21 Fix error when submodule path and name differ When a submodule was inserted with a different path and name, the return value from khash greater than zero was allowed to propagate back out to the caller when it should really be zeroed. This led to a possible crash when reloading submodules if that was the first time that submodule data was loaded.
Russell Belfer 22df47cb 2014-03-26T14:38:26 Fix segfault if gitmodules is invalid The reload_all call could end up dereferencing a NULL pointer if there was an error while attempting to load the submodules config data (i.e. invalid content in the gitmodules file). This fixes it.
Edward Thomson 9cb99e8b 2014-03-26T12:43:41 Free temporary merge index
Vicent Marti dc7efa1a 2014-03-26T18:29:34 Merge pull request #2204 from libgit2/rb/submodule-reference-counting Make submodules externally refcounted
Vicent Marti 6105d597 2014-03-26T18:17:08 In-memory packing backend
Vicent Marti 77b699e0 2014-03-26T10:29:11 Merge pull request #2205 from libgit2/rb/submodule-untracked-vs-ignored Update behavior for untracked contained repositories
Edward Thomson 1df8ad01 2014-03-06T16:00:52 clone: don't overwrite original error message
Russell Belfer 591e8295 2014-03-25T16:52:01 Fix submodule leaks and invalid references This cleans up some places I missed that could hold onto submodule references and cleans up the way in which the repository cache is both reloaded and released so that existing submodule references aren't destroyed inappropriately.
Russell Belfer d3bc95fd 2014-03-25T12:37:05 Update behavior for untracked sub-repos When a directory containing a .git directory (or even just a plain gitlink) was found, libgit2 was going out of its way to treat it specially. This seemed like it was necessary because the diff code was not originally emulating Git's behavior for untracked directories correctly (i.e. scanning for ignored vs untracked items inside). Now that libgit2 diff mimics Git's untracked directory behavior, the special handling for contained Git repos is actually incorrect and this commit rips it out.
Edward Thomson 451aaf86 2014-03-25T10:33:18 Merge pull request #2181 from anuraggup/hide_cb Callback function to hide commit and its parents in revision walker
Russell Belfer a15c7802 2014-03-25T09:14:48 Make submodules externally refcounted `git_submodule` objects were already refcounted internally in case the submodule name was different from the path at which it was stored. This makes that refcounting externally used as well, so `git_submodule_lookup` and `git_submodule_add_setup` return an object that requires a `git_submodule_free` when done.
Anurag Gupta 7ca1584b 2014-03-11T11:49:19 Conforming to libgit2 coding style.
Anurag Gupta 46e4d82d 2014-03-10T16:21:56 Remove unused push_cb_data
Anurag Gupta 892aa808 2014-03-10T12:00:33 Callback to hide commits in revision walker.
Vicent Marti 85a41fc4 2014-03-24T18:09:13 Merge pull request #2183 from ethomson/merge_refactor Refactor the `git_merge` API
Carlos Martín Nieto 42dee8ec 2014-03-23T13:34:33 settings: use git_buf for returning strings This survived the last round of culling, as the signature is only in the comments.
Linquize 31a14982 2014-03-21T17:36:34 Fix wrong assertion Fixes issue #2196
Vicent Marti 36a80fda 2014-03-20T21:06:23 Merge pull request #2195 from libgit2/cmn/revwalk-no-hide revwalk: don't try to find merge bases when there can be none
Carlos Martín Nieto 704b55cc 2014-03-20T20:24:11 revwalk: don't try to find merge bases when there can be none As a way to speed up the cases where we need to hide some commits, we find out what the merge bases are so we know to stop marking commits as uninteresting and avoid walking down a potentially very large amount of commits which we will never see. There are however two oversights in current code. The merge-base finding algorithm fails to recognize that if it is only given one commit, there can be no merge base. It instead walks down the whole ancestor chain needlessly. Make it return an empty list immediately in this situation. The revwalk does not know whether the user has asked to hide any commits at all. In situation where the user pushes multiple commits but doesn't hide any, the above fix wouldn't do the trick. Keep track of whether the user wants to hide any commits and only run the merge-base finding algorithm when it's needed.
Carlos Martín Nieto 1c351659 2014-03-20T09:55:47 reflog: remove some dead code
Carlos Martín Nieto 83504371 2014-03-19T22:27:23 reflog: follow core.logallrefupdates On bare by default, or when core.logallrefupdates is false, we must not write the reflog.
Edward Thomson 58c2b1c4 2014-03-20T09:35:22 UNBORN implies FAST_FORWARD
Edward Thomson ac584fcf 2014-03-18T16:04:51 Introduce GIT_MERGE_ANALYSIS_UNBORN
Edward Thomson 97f3462a 2014-03-18T13:14:09 git_merge_status -> git_merge_analysis
Edward Thomson d9fdee6e 2014-03-12T09:43:53 Remove `git_merge_result` as it's now unnecessary
Edward Thomson 5aa2ac6d 2014-03-11T22:47:39 Update git_merge_tree_opts to git_merge_options
Edward Thomson 02105a27 2014-03-11T18:40:38 Change signature of `git_merge` to take merge and checkout opts
Edward Thomson 1c0b6a38 2014-03-11T17:58:10 Remove fastforward / uptodate from `git_merge`
Edward Thomson ccb30827 2014-03-11T17:19:35 Add `git_merge_status` to provide info about an upcoming merge
Edward Thomson 05d47768 2014-03-10T22:30:41 Introduce git_merge_file for consumers
Carlos Martín Nieto 99797c96 2014-03-19T18:14:35 reflog: handle symref chains Given HEAD -> master -> foo, when updating foo's reflog we should also update HEAD's, as it's considered the current branch.
Carlos Martín Nieto 6aaae94a 2014-03-19T16:30:37 reflog: handle the birth of a branch The reflog append function was overzealous in its checking. When passed an old and new ids, it should not do any checking, but just serialize the data to a reflog entry.
Carlos Martín Nieto afc57eb4 2014-03-19T06:59:09 reflog: simplify the append logic Remove some duplicated logic.
Carlos Martín Nieto 1afe1400 2014-03-18T22:16:58 refdb: don't update when there's no need If the caller wants to update a ref to point to the same target as it currently has, we should return early and avoid writing to the reflog.
Carlos Martín Nieto bac95e6e 2014-03-18T19:41:03 reflog: more comprehensive HEAD tests The existing ones lack checking zeroed ids when switching back from an unborn branch as well as what happens when detaching. The reflog appending function mistakenly wrote zeros when dealing with a detached HEAD. This explicitly checks for those situations and fixes them.
Vicent Marti 5dd7d243 2014-03-18T16:23:51 Merge pull request #2189 from Aimeast/octopus Implement git_merge_base_octopus
Aimeast 0aee025b 2014-03-18T22:31:14 Implement git_merge_base_octopus
Vicent Marti dd4c6962 2014-03-18T15:25:43 Merge pull request #2192 from phkelley/development Seamless support for NTLM/Kerberos auth on Windows
Philip Kelley 1392418e 2014-03-18T09:04:33 Seamless support for NTLM/Kerberos auth on Windows
Carlos Martín Nieto 4b7e1b9e 2014-01-15T13:19:48 refs: append to the HEAD reflog when updating the current branch When we update the current branch, we must also append to HEAD's reflog to keep them in sync. This is a bit of a hack, but as git.git says, it covers 100% of default cases.
Carlos Martín Nieto 853b1407 2014-03-17T16:10:33 branch: constness fixes
Russell Belfer 5302a885 2014-03-12T11:21:55 Fix pqueue sort boundary condition bug If the pqueue comparison fn returned just 0 or 1 (think "a<b") then the sort order of returned items could be wrong because there was a "< 0" that really needed to be "<= 0". Yikes!!!
Russell Belfer 89499078 2014-03-10T10:53:39 Fix a number of git_odb_exists_prefix bugs The git_odb_exists_prefix API was not dealing correctly when a later backend returned GIT_ENOTFOUND even if an earlier backend had found the object. Additionally, the unit tests were not properly exercising the API and had a couple mistakes in checking the results. Lastly, since the backends are not expected to behavior correctly unless all bytes of the short id are zero except for the prefix, this makes the ODB prefix APIs explicitly clear out the extra bytes so the user doesn't have to be as careful.
Carlos Martín Nieto 9af14886 2014-03-10T18:20:47 MSVC is silly
Vicent Marti fc78488b 2014-03-10T18:16:56 Merge pull request #2175 from Yogu/submodule-resolve-url Add git_submodule_resolve_url()
Jan Melcher 52fba18f 2014-03-10T18:16:10 Add git_submodule_resolve_url()
Brendan Forster 0782c89e 2014-03-10T14:40:07 corrected typo in error message
Vicent Marti 041cd4a2 2014-03-07T19:02:58 Merge pull request #2028 from libgit2/options-names Rename options structures
Vicent Marti 628edd6b 2014-03-07T16:26:58 Merge pull request #2167 from mekishizufu/memory_access_fixes Fun with memory access
Carlos Martín Nieto ae32c54e 2014-03-05T20:28:49 Plug a few leaks in the tests
Carlos Martín Nieto a07b1698 2014-03-07T15:40:53 branch: fix leak when checking against HEAD We look up a reference in order to figure out if it's the current branch, which we need to free once we're done with the check. As a bonus, only perform the check when we're passed the force flag, as it's a useless check otherwise.
Carlos Martín Nieto 7c1ee212 2014-03-07T15:17:08 commit: simplify and correct refcounting in nth_gen_ancestor We can make use of git_object_dup to use refcounting instead of pointer comparison to make sure we don't free the caller's object. This also lets us simplify the case for '~0' which is now just an assignment instead of looking up the object we have at hand.
Carlos Martín Nieto 5187b609 2014-03-07T14:58:43 local transport: catch double-opens Combinations of connect + fetch can call local_open multiple times. Detect this and skip the initialization stage.
Jiri Pospisil 79aa0302 2014-03-06T22:23:57 blame: Fix compare function's data types Previously the hunk_byfinalline_search_cmp function was called with different data types (size_t and uint32_t) for the key argument but expected only the former resulting in an invalid memory access when passed the latter on a 64 bit machine. The following patch makes sure that the function is called and works with the same type (size_t).