|
acdc7cff
|
2014-03-27T15:29:17
|
|
Fix memory leak of submodule branch name
|
|
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.
|
|
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.
|
|
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.
|
|
9cb99e8b
|
2014-03-26T12:43:41
|
|
Free temporary merge index
|
|
dc7efa1a
|
2014-03-26T18:29:34
|
|
Merge pull request #2204 from libgit2/rb/submodule-reference-counting
Make submodules externally refcounted
|
|
77b699e0
|
2014-03-26T10:29:11
|
|
Merge pull request #2205 from libgit2/rb/submodule-untracked-vs-ignored
Update behavior for untracked contained repositories
|
|
1df8ad01
|
2014-03-06T16:00:52
|
|
clone: don't overwrite original error message
|
|
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.
|
|
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.
|
|
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
|
|
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.
|
|
7ca1584b
|
2014-03-11T11:49:19
|
|
Conforming to libgit2 coding style.
|
|
46e4d82d
|
2014-03-10T16:21:56
|
|
Remove unused push_cb_data
|
|
892aa808
|
2014-03-10T12:00:33
|
|
Callback to hide commits in revision walker.
|
|
85a41fc4
|
2014-03-24T18:09:13
|
|
Merge pull request #2183 from ethomson/merge_refactor
Refactor the `git_merge` API
|
|
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.
|
|
31a14982
|
2014-03-21T17:36:34
|
|
Fix wrong assertion
Fixes issue #2196
|
|
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
|
|
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.
|
|
1c351659
|
2014-03-20T09:55:47
|
|
reflog: remove some dead code
|
|
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.
|
|
58c2b1c4
|
2014-03-20T09:35:22
|
|
UNBORN implies FAST_FORWARD
|
|
ac584fcf
|
2014-03-18T16:04:51
|
|
Introduce GIT_MERGE_ANALYSIS_UNBORN
|
|
97f3462a
|
2014-03-18T13:14:09
|
|
git_merge_status -> git_merge_analysis
|
|
d9fdee6e
|
2014-03-12T09:43:53
|
|
Remove `git_merge_result` as it's now unnecessary
|
|
5aa2ac6d
|
2014-03-11T22:47:39
|
|
Update git_merge_tree_opts to git_merge_options
|
|
02105a27
|
2014-03-11T18:40:38
|
|
Change signature of `git_merge` to take merge and checkout opts
|
|
1c0b6a38
|
2014-03-11T17:58:10
|
|
Remove fastforward / uptodate from `git_merge`
|
|
ccb30827
|
2014-03-11T17:19:35
|
|
Add `git_merge_status` to provide info about an upcoming merge
|
|
05d47768
|
2014-03-10T22:30:41
|
|
Introduce git_merge_file for consumers
|
|
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.
|
|
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.
|
|
afc57eb4
|
2014-03-19T06:59:09
|
|
reflog: simplify the append logic
Remove some duplicated logic.
|
|
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.
|
|
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.
|
|
5dd7d243
|
2014-03-18T16:23:51
|
|
Merge pull request #2189 from Aimeast/octopus
Implement git_merge_base_octopus
|
|
0aee025b
|
2014-03-18T22:31:14
|
|
Implement git_merge_base_octopus
|
|
dd4c6962
|
2014-03-18T15:25:43
|
|
Merge pull request #2192 from phkelley/development
Seamless support for NTLM/Kerberos auth on Windows
|
|
1392418e
|
2014-03-18T09:04:33
|
|
Seamless support for NTLM/Kerberos auth on Windows
|
|
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.
|
|
853b1407
|
2014-03-17T16:10:33
|
|
branch: constness fixes
|
|
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!!!
|
|
9af14886
|
2014-03-10T18:20:47
|
|
MSVC is silly
|
|
fc78488b
|
2014-03-10T18:16:56
|
|
Merge pull request #2175 from Yogu/submodule-resolve-url
Add git_submodule_resolve_url()
|
|
52fba18f
|
2014-03-10T18:16:10
|
|
Add git_submodule_resolve_url()
|
|
0782c89e
|
2014-03-10T14:40:07
|
|
corrected typo in error message
|
|
041cd4a2
|
2014-03-07T19:02:58
|
|
Merge pull request #2028 from libgit2/options-names
Rename options structures
|
|
628edd6b
|
2014-03-07T16:26:58
|
|
Merge pull request #2167 from mekishizufu/memory_access_fixes
Fun with memory access
|
|
ae32c54e
|
2014-03-05T20:28:49
|
|
Plug a few leaks in the tests
|
|
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.
|
|
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.
|
|
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.
|
|
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).
|
|
00258cc0
|
2014-03-06T22:10:17
|
|
git_oid_fromstrn: Simplify the implementation and fix memory access issues
|
|
aa17c3c6
|
2014-01-03T17:42:09
|
|
git_revert_opts -> git_revert_options
|
|
6affd71f
|
2014-01-03T17:38:34
|
|
git_checkout_opts -> git_checkout_options
|
|
b9f81997
|
2014-03-05T21:49:23
|
|
Added function-based initializers for every options struct.
The basic structure of each function is courtesy of arrbee.
|
|
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
|
|
26875825
|
2014-03-05T13:06:22
|
|
Check short OID len in odb, not in backends
|
|
a62ad3c3
|
2014-03-05T21:07:20
|
|
Merge pull request #2164 from libgit2/cmn/refs-delete-iteration
refdb: catch a directory disappearing
|
|
967d3f2e
|
2014-03-05T21:06:59
|
|
Merge pull request #2163 from ethomson/nobackend_odb_write
ODB writing fails gracefully when unsupported
|
|
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.
|
|
7bd2f401
|
2014-03-05T11:35:47
|
|
ODB writing fails gracefully when unsupported
If no ODB backends support writing, we should fail gracefully.
|
|
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.
|
|
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.
|
|
f5753999
|
2014-03-04T15:34:23
|
|
Add exists_prefix to ODB backend and ODB API
|
|
66d9e046
|
2014-03-04T21:01:39
|
|
Merge pull request #2157 from libgit2/cmn/write-object-mem
pack-objects: free memory safely
|
|
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.
|
|
4636ca93
|
2014-03-04T12:22:27
|
|
Remove ignored files from the working directory if they were stashed
|
|
0511b15c
|
2014-03-03T15:05:26
|
|
Merge pull request #2141 from ravselj/development
BUGFIX - Fetching twice from the same remote causes a segfault
|
|
ebb3c506
|
2014-03-03T12:40:25
|
|
features: Rename `_HAS_` to `_FEATURE_`
|
|
c9f5298b
|
2014-03-03T12:09:17
|
|
caps: Rename to features to avoid confusion
|
|
b5212858
|
2014-03-03T11:40:22
|
|
Merge remote-tracking branch 'remotes/upstream/development' into development
|
|
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
|
|
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.
|
|
59b1dbcd
|
2014-02-27T23:56:25
|
|
Do not allow git_branch_create() to force update branch
|
|
1574d388
|
2014-02-26T16:58:20
|
|
Merge pull request #2137 from jru/blame-first-parent
Blame first-parent history
|
|
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
|
|
3536c168
|
2014-02-25T14:57:47
|
|
- need_pack was not set to 0 when local fetch was already present causing negotiate_fetch access violation
|
|
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
|
|
cb81c3a7
|
2014-02-25T10:46:41
|
|
Merge pull request #2138 from ethomson/sysdir
Move system directory cache out of utils
|
|
4f46a98b
|
2014-02-24T23:32:25
|
|
Remove now-duplicated stdarg.h include
|
|
ab0af298
|
2014-02-24T21:56:08
|
|
Include stdarg.h for the va_copy test
|
|
83634d38
|
2014-02-24T17:43:10
|
|
Move system directory cache out of utils
|
|
c8893d1f
|
2014-02-24T13:39:04
|
|
Use a portable cast
|
|
b1f2c2e2
|
2014-02-22T10:18:42
|
|
Prevent icc warning
|
|
8ac7da79
|
2014-02-22T10:15:11
|
|
Avoid casting warning
|
|
c7c83394
|
2014-02-21T00:22:07
|
|
Add option to limit blame to first parent
|
|
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
|
|
978a4ed5
|
2014-02-20T11:00:31
|
|
Make git_oid_equal a non-inline API
|
|
864535cf
|
2014-02-18T14:07:42
|
|
Readability
|
|
9bda5fb8
|
2014-02-18T14:05:30
|
|
Improve error propagation in shallow call
|
|
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.
|
|
b033f3a3
|
2014-02-11T16:52:08
|
|
Never convert CRLF->LF
Core git performs no conversion on systems that use LF, emulate that.
|
|
5d195cf7
|
2014-02-11T15:56:04
|
|
Merge pull request #2110 from libgit2/ed/crlf_input
Handle `core.autocrlf=input` when checking out
|
|
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.
|
|
77ad6754
|
2014-02-10T14:38:01
|
|
refs: conditional wording fixups
This addresses arrbee's concerns about wording in the conditional
reference udpate functions.
|
|
66b2626c
|
2014-02-09T13:43:56
|
|
core.autocrlf=input w/ text=auto attr to workdir
|
|
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.
|