src


Log

Author Commit Date CI Message
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.
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!!!
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).
Jiri Pospisil 00258cc0 2014-03-06T22:10:17 git_oid_fromstrn: Simplify the implementation and fix memory access issues
Ben Straub aa17c3c6 2014-01-03T17:42:09 git_revert_opts -> git_revert_options
Ben Straub 6affd71f 2014-01-03T17:38:34 git_checkout_opts -> git_checkout_options
Matthew Bowen b9f81997 2014-03-05T21:49:23 Added function-based initializers for every options struct. The basic structure of each function is courtesy of arrbee.
Vicent Marti a064dc2d 2014-03-06T00:47:05 Merge pull request #2159 from libgit2/rb/odb-exists-prefix Add ODB API to check for existence by prefix and object id shortener
Russell Belfer 26875825 2014-03-05T13:06:22 Check short OID len in odb, not in backends
Vicent Marti a62ad3c3 2014-03-05T21:07:20 Merge pull request #2164 from libgit2/cmn/refs-delete-iteration refdb: catch a directory disappearing
Vicent Marti 967d3f2e 2014-03-05T21:06:59 Merge pull request #2163 from ethomson/nobackend_odb_write ODB writing fails gracefully when unsupported
Carlos Martín Nieto a213a7bf 2014-03-05T20:32:53 refdb: catch a directory disappearing If a directory disappears between the time we look up the entries of its parent and the time when we go to look at it, we should ignore the error and move forward. This fixes #2046.
Edward Thomson 7bd2f401 2014-03-05T11:35:47 ODB writing fails gracefully when unsupported If no ODB backends support writing, we should fail gracefully.
Brian Lambert 06a8f5c3 2014-03-05T00:00:41 Fixed missing error check on call to git_remote_download in git_remote_fetch. Moved error check to statement following git_remote_disconnect so that the disconnect happens regardless of the result of the download call.
Russell Belfer 13f7ecd7 2014-03-04T16:23:28 Add git_object_short_id API to get short id string This finds a short id string that will unambiguously select the given object, starting with the core.abbrev length (usually 7) and growing until it is no longer ambiguous.
Russell Belfer f5753999 2014-03-04T15:34:23 Add exists_prefix to ODB backend and ODB API
Vicent Marti 66d9e046 2014-03-04T21:01:39 Merge pull request #2157 from libgit2/cmn/write-object-mem pack-objects: free memory safely
Carlos Martín Nieto a14aa1e7 2014-03-04T20:09:17 pack-objects: free memory safely A few fixes have accumulated in this area which have made the freeing of data a bit muddy. Make sure to free the data only when needed and once. When we are going to write a delta to the packfile, we need to free the data, otherwise leave it. The current version of the code mixes up the checks for po->data and po->delta_data.
Jacques Germishuys 4636ca93 2014-03-04T12:22:27 Remove ignored files from the working directory if they were stashed
Vicent Marti 0511b15c 2014-03-03T15:05:26 Merge pull request #2141 from ravselj/development BUGFIX - Fetching twice from the same remote causes a segfault
Vicent Marti ebb3c506 2014-03-03T12:40:25 features: Rename `_HAS_` to `_FEATURE_`
Vicent Marti c9f5298b 2014-03-03T12:09:17 caps: Rename to features to avoid confusion
Miha b5212858 2014-03-03T11:40:22 Merge remote-tracking branch 'remotes/upstream/development' into development
Ben Straub 494be429 2014-03-02T09:00:00 Merge pull request #2144 from linquize/branch-f-current Do not allow git_branch_create() to force update branch
Russell Belfer 6789b7a7 2014-02-27T14:13:22 Add buffer to buffer diff and patch APIs This adds `git_diff_buffers` and `git_patch_from_buffers`. This also includes a bunch of internal refactoring to increase the shared code between these functions and the blob-to-blob and blob-to-buffer APIs, as well as some higher level assert helpers in the tests to also remove redundancy.
Linquize 59b1dbcd 2014-02-27T23:56:25 Do not allow git_branch_create() to force update branch
Ben Straub 1574d388 2014-02-26T16:58:20 Merge pull request #2137 from jru/blame-first-parent Blame first-parent history
Juan Rubén 0276f0f5 2014-02-26T19:22:19 Reset num_parents to 1 only for merge commits Also, correct test case to account for the boundary flag
Miha 3536c168 2014-02-25T14:57:47 - need_pack was not set to 0 when local fetch was already present causing negotiate_fetch access violation
Miha 300f4412 2014-02-25T11:56:11 - BUGFIX #2133 (@fourplusone) in smart_protocol.c - added MSVC cmake definitions to disable warnings - general.c is rewritten so it is ansi-c compatible and compiles ok on microsoft windows - some MSVC reported warning fixes
Vicent Marti cb81c3a7 2014-02-25T10:46:41 Merge pull request #2138 from ethomson/sysdir Move system directory cache out of utils
Edward Thomson 4f46a98b 2014-02-24T23:32:25 Remove now-duplicated stdarg.h include
Edward Thomson ab0af298 2014-02-24T21:56:08 Include stdarg.h for the va_copy test
Edward Thomson 83634d38 2014-02-24T17:43:10 Move system directory cache out of utils
Ben Straub c8893d1f 2014-02-24T13:39:04 Use a portable cast
Ben Straub b1f2c2e2 2014-02-22T10:18:42 Prevent icc warning
Ben Straub 8ac7da79 2014-02-22T10:15:11 Avoid casting warning
Juan Rubén c7c83394 2014-02-21T00:22:07 Add option to limit blame to first parent
Russell Belfer 72556cc6 2014-02-20T14:27:10 Address PR comments * Make GIT_INLINE an internal definition so it cannot be used in public headers * Fix language in CONTRIBUTING * Make index caps API use signed instead of unsigned values
Russell Belfer 978a4ed5 2014-02-20T11:00:31 Make git_oid_equal a non-inline API
Ben Straub 864535cf 2014-02-18T14:07:42 Readability
Ben Straub 9bda5fb8 2014-02-18T14:05:30 Improve error propagation in shallow call
brian m. carlson 0197d410 2014-02-15T23:09:01 Check for EWOULDBLOCK as well as EAGAIN on write. On some systems, notably HP PA-RISC systems running Linux or HP-UX, EWOULDBLOCK and EAGAIN are not the same value. POSIX (and these OSes) allow EWOULDBLOCK to occur on write(2) (and send(2), etc.), so check explicitly for this case as well as EAGAIN by defining and using a macro GIT_ISBLOCKED that considers both. The macro is necessary because MSYS does not provide EWOULDBLOCK and compilation fails if an attempt is made to use it unconditionally. On most systems, where the two values are the same, the compiler will simply optimize this check out and it will have no effect.
Edward Thomson b033f3a3 2014-02-11T16:52:08 Never convert CRLF->LF Core git performs no conversion on systems that use LF, emulate that.
Russell Belfer 5d195cf7 2014-02-11T15:56:04 Merge pull request #2110 from libgit2/ed/crlf_input Handle `core.autocrlf=input` when checking out
Carlos Martín Nieto 15284a2c 2014-02-10T14:52:28 refs: move current_id before the reflog parameters Keep the reflog parameters as the last two, as they're the optional parameters.
Carlos Martín Nieto 77ad6754 2014-02-10T14:38:01 refs: conditional wording fixups This addresses arrbee's concerns about wording in the conditional reference udpate functions.
Edward Thomson 66b2626c 2014-02-09T13:43:56 core.autocrlf=input w/ text=auto attr to workdir
Russell Belfer 80c29fe9 2014-01-17T10:45:11 Add git_commit_amend API This adds an API to amend an existing commit, basically a shorthand for creating a new commit filling in missing parameters from the values of an existing commit. As part of this, I also added a new "sys" API to create a commit using a callback to get the parents. This allowed me to rewrite all the other commit creation APIs so that temporary allocations are no longer needed.
Russell Belfer 2d929194 2014-02-07T16:14:17 Merge pull request #2099 from libgit2/bs/more-reflog-stuff More reflogness
Russell Belfer 57c47af1 2014-02-07T16:05:19 Merge pull request #2042 from libgit2/cmn/conditional-ref refs: conditional ref updates
Russell Belfer 3158e2fe 2014-02-07T15:24:39 Fix some Windows warnings This fixes a number of warnings with the Windows 64-bit build including a test failure in test_repo_message__message where an invalid pointer to a git_buf was being used.
Vicent Marti c4ee3b54 2014-02-07T18:32:06 Merge pull request #2100 from libgit2/rb/update-pqueue Replace priority queue code with implementation from hashsig
Ben Straub db55bb73 2014-02-06T11:18:10 Correct default reflog message for git_remote_fetch
Edward Thomson 55d257e7 2014-02-05T15:03:00 Remove unused utf8 -> utf16 conversion code
Ben Straub 0de2c4e3 2014-02-05T13:15:57 Merge remote-tracking branch 'libgit2/development' into bs/more-reflog-stuff
Russell Belfer df70de07 2014-02-05T10:25:50 Merge pull request #2094 from libgit2/cmn/push-non-commit Add flexibility to the revwalk API
Carlos Martín Nieto 24f3024f 2014-02-05T14:31:01 Split p_strlen into its own header We need this from util.h and posix.h, but the latter includes common.h which includes util.h, which means p_strlen is not defined by the time we get to git__strndup(). Split the definition on p_strlen() off into its own header so we can use it in util.h.
Carlos Martín Nieto 1e6f0ac4 2014-02-05T13:49:51 utils: don't reimplement strnlen The standard library provides a very nice strnlen function, which knows to use SSE, let's not reimplement it ourselves.
Carlos Martín Nieto a6563619 2014-02-05T13:01:54 commit: faster parsing The current code issues a lot of strncmp() calls in order to check for the end of the header, simply in order to copy it and start going through it again. These are a lot of calls for something we can check as we go along. Knowing the amount of parents beforehand to reduce allocations in extreme cases does not make up for them. Instead start parsing immediately and check for the double-newline after each header field, leaving the raw_header allocation for the end, which lets us go through the header once and reduces the amount of strncmp() calls significantly. In unscientific testing, this has reduced a shortlog-like usage (walking though the whole history of a branch and extracting data from the commits) of git.git from ~830ms to ~700ms and makes the time we spend in strncmp() negligible.
Carlos Martín Nieto c74077d1 2014-02-02T12:08:18 revparse: do look at all refs when matching text Now that we no longer fail to push non-commits on a glob, let's search on all refs when we rev-parse syntax asks us to match text.
Carlos Martín Nieto af817202 2014-02-01T15:29:16 revwalk: remove usage of foreach
Carlos Martín Nieto d465e4e9 2014-02-01T15:19:13 revwalk: ignore wrong object type in glob pushes Pushing a whole namespace can cause us to attempt to push non-committish objects. Catch this situation and special-case it for ignoring this.
Carlos Martín Nieto f61272e0 2014-02-01T12:51:36 revwalk: accept committish objects Let the user push committish objects and peel them to figure out which commit to push to our queue. This is for convenience and for allowing uses of git_revwalk_push_glob(w, "tags") with annotated tags.
Carlos Martín Nieto 5367ec4b 2014-02-05T12:02:52 refs: add an unconditional delete Add it under the git_reference_remove() name, letting the user pass the repo and name, analogous to unconditional setting/creation.
Carlos Martín Nieto b7ae71ec 2014-02-05T11:47:33 refs: catch cases where the ref type has changed If the type of the on-disk reference has changed, the old value comparison should fail.
Carlos Martín Nieto f44fd59e 2014-02-05T11:21:14 refs: check the ref's old value when deleting Recognize when the reference has changed since we loaded it.
Carlos Martín Nieto 7ee8c7e6 2014-02-05T11:07:34 refs: placeholder conditional delete We don't actually pass the old value yet.
Carlos Martín Nieto f8621dde 2014-02-05T10:42:42 refs: factor out old value comparison We will reuse this later for deletion.
Carlos Martín Nieto 878fb66f 2014-02-05T10:19:17 refs: bring conditional symbolic updates to the frontend Bring the race detection goodness to symbolic references as well.
Carlos Martín Nieto 91123661 2014-02-04T22:04:00 refdb: add conditional symbolic updates Add a parameter to the backend to allow checking for the old symbolic target.
Carlos Martín Nieto 1202c7ea 2014-02-04T21:35:44 refs: fix leak on successful update Free the old ref even on success.
Carlos Martín Nieto fc4728e3 2014-01-29T14:07:18 refs: return GIT_EMODIFIED if the ref target moved In case we loose the race to update the reference, return GIT_EMODIFIED to let the user distinguish it from other types of errors.
Carlos Martín Nieto 5d96fe88 2014-01-14T15:33:29 refs: changes from feedback Change the name to _matching() intead of _if(), and force _set_target() to be a conditional update. If the user doesn't care about the old value, they should use git_reference_create().
Carlos Martín Nieto 9b148098 2013-12-18T19:58:16 refs: conditional ref updates Allow updating references if the old value matches the given one.
Ben Straub 010cec3a 2014-02-04T20:50:40 Add reflog params to git_repository_detach_head