|
4a0313bc
|
2015-06-29T15:22:47
|
|
Merge pull request #3269 from libgit2/cmn/release-fixups
Submodule and http fixes
|
|
8b380060
|
2015-06-29T21:12:44
|
|
http: don't give up on auth on the first try
When the server rejects an authentication request, ask the caller for
the credentials again, instead of giving up on the first try.
|
|
c28a5c97
|
2015-06-29T21:10:47
|
|
submodule: remove trailing slashes from submodule paths
We allow looking up a submodule by path, but we lost the path
normalisation during the recent changes. Bring it back.
|
|
cf4030b0
|
2015-06-29T20:54:17
|
|
submodule: remove some obsolete logic
Remove some of the logic that was left-over from the time we had a cache
of submodules, plugging a leak of the submodule object in certain cases.
|
|
ca2466ff
|
2015-06-29T15:02:19
|
|
CHANGELOG: add submodule changes
|
|
b977d017
|
2015-06-29T12:27:09
|
|
Merge pull request #3268 from libgit2/vmg/pkg-config-sort
pkg-config: Sort the different sections
|
|
6a5fb1f4
|
2015-06-29T12:20:01
|
|
pkg-config: Sort the different sections
Because of the fact that pkg-config is pants-on-head retarded and that
the Linux linker *requires* a static library to come before all its
dynamic dependencies in the link path, calling `pkg-config --libs
--static` was generating the wrong flags for linking.
Before this patch:
-Wl,-Bsymbolic-functions -Wl,-z,relro -L/usr/local/lib -lcurl -lssh2
-lrt -lgit2 -lssl -lcrypto -ldl -lz
After this patch:
-Wl,-Bsymbolic-functions -Wl,-z,relro -L/usr/local/lib -lgit2 -lcurl
-lssh2 -lrt -lssl -lcrypto -ldl -lz
By setting the "Libs" line before all other rules, we make sure that
`-lgit2` is the first library in the link path and that it gets its
symbols resolved with the libraries coming after it.
This fix (ab)uses an implementation detail in `pkg-config` (namely, that
flags are output as they are found on the file), but this detail seems
to be stable between releases and always gives a stable output.
|
|
84d5a98f
|
2015-06-28T14:53:30
|
|
Bump version to 0.23.0 and SOVERSION to 23
|
|
fb84cde8
|
2015-06-28T14:34:30
|
|
Merge pull request #3267 from libgit2/cmn/libs-list
CMake: treat the ld flags as a list
|
|
fd2d11a1
|
2015-06-28T13:57:06
|
|
CMake: treat the ld flags as a list
These are treated as a list by CMake itself, which means that treating
them as a simple string can put semicolons in our ld command-line if we
have libraries which are not installed on the standard locations.
Treat the variable as a CMake list and replace it with the space-delimited
list just before writing it out to our pc file.
|
|
fa399750
|
2015-06-27T21:26:27
|
|
Merge pull request #3265 from libgit2/leaks
Plug a bunch of leaks
|
|
92ec9ed3
|
2015-06-27T21:15:00
|
|
Merge pull request #3260 from ethomson/apply_with_reflog_indices
stash: test we apply using reflog-like indices
|
|
b4d2c7cb
|
2015-06-27T20:34:04
|
|
Merge pull request #3264 from arthurschreiber/fast-builds
Fast builds?
|
|
32f538ae
|
2015-06-27T15:02:53
|
|
Remove dependency installation file for travis builds.
We're installing dependencies via the APT addon now.
|
|
b48dfe0b
|
2015-06-27T14:54:19
|
|
Always install valgrind via the apt addon.
|
|
24fa21f3
|
2015-06-26T18:59:53
|
|
index, iterator, fetchhead: plug leaks
|
|
afd8a94e
|
2015-06-26T18:49:39
|
|
checkout: plug a few leaks
|
|
9568660f
|
2015-06-26T18:31:39
|
|
diff: fix leaks in diff printing
|
|
cfafeb84
|
2015-06-26T18:11:05
|
|
Merge pull request #3263 from git-up/fixes
Fixes
|
|
51f87999
|
2015-06-26T18:05:17
|
|
Don't try to start ssh.
|
|
76d7c359
|
2015-06-26T17:58:45
|
|
Fast builds?
|
|
ee6eed51
|
2015-06-25T19:04:04
|
|
stash: test we apply using reflog-like indices
|
|
354268ca
|
2015-06-26T17:46:35
|
|
Merge pull request #3259 from ethomson/stash_apply_argh
Stash apply: stage new files even when not updating the index
|
|
3c7a4697
|
2015-06-26T17:45:33
|
|
Merge pull request #3262 from libgit2/vmg/prefix-len
Desenfuckenate prefix lookups
|
|
492851c9
|
2015-06-26T08:18:06
|
|
Removed unused variables
|
|
cae2a555
|
2015-06-26T08:17:56
|
|
Fixed build failure if GIT_CURL is not defined
|
|
13e5e344
|
2015-06-26T16:52:26
|
|
test-diff-blob: Pass proper nibble sizes
|
|
a2f8d1ae
|
2015-06-26T16:48:58
|
|
revparse: Add test to make sure this doesn't regress
|
|
3d9ef2dc
|
2015-06-26T16:45:42
|
|
Revert "object: correct the expected ID size in prefix lookup"
This reverts commit 969d4b703c910a8fd045baafbcd243b4c9825316.
This was a fluke from Coverity. The length to all the APIs in the
library is supposed to be passed in as nibbles, not bytes. Passing it as
bytes would prevent us from parsing uneven-sized SHA1 strings.
Also, the rest of the library was still using nibbles (including
revparse and the odb_prefix APIs), so this change was seriously breaking
things in unexpected ways. ^^
|
|
14888070
|
2015-06-26T16:05:05
|
|
Merge pull request #3261 from libgit2/cmn/link-one-level
pc: Put libcurl and libssh2 in Libs.private
|
|
790cabf0
|
2015-06-26T13:51:41
|
|
pc: Put libcurl and libssh2 in Libs.private
Pass on to whoever wants to link to libgit2 statically the flags that we
would have used for these libraries.
Putting them in Requires.private as we do now makes pkg-config put their
dependencies in the linker arguments as well, which is not what we want.
|
|
34181825
|
2015-06-26T11:41:14
|
|
Merge pull request #3234 from ethomson/dont_update_index_unnecessarily
Dont update index unnecessarily
|
|
c2e1b058
|
2015-06-05T18:26:49
|
|
Only write index if updated when passing GIT_DIFF_UPDATE_INDEX
When diffing the index with the workdir and GIT_DIFF_UPDATE_INDEX has been passed,
the previous implementation was always writing the index to disk even if it wasn't
modified.
|
|
619423f2
|
2015-06-19T11:11:12
|
|
diff: test we don't update index unnecessarily
Test that workdir diffs, when presented with UPDATE_INDEX, only
write the index when they actually make a change.
|
|
c0280bdd
|
2015-06-25T18:55:48
|
|
Merge pull request #3255 from libgit2/cmn/rename-unspecified
Rename FALLBACK to UNSPECIFIED
|
|
552249f9
|
2015-06-26T00:49:28
|
|
Merge pull request #3258 from arthurschreiber/patch-6
List `libcurl` in the generated `libgit2.pc`
|
|
b7f5cb8d
|
2015-06-20T19:33:15
|
|
stash: stage new files when unstashing them
Files that were new (staged additions) in the stash tree should
be staged when unstashing, even when not applying the index.
|
|
8960dc1e
|
2015-06-24T18:10:30
|
|
iterator: provide git_iterator_walk
Provide `git_iterator_walk` to walk each iterator in lockstep,
returning each iterator's idea of the contents of the next path.
|
|
82b1c93d
|
2015-06-20T13:44:22
|
|
stash: don't allow apply with staged changes
|
|
1db6a0ab
|
2015-06-19T17:29:59
|
|
stash apply: add a newly staged file to tests
|
|
65f2d155
|
2015-06-25T21:49:48
|
|
List `libcurl` in the generated `libgit2.pc`
|
|
3b66c6a3
|
2015-06-25T15:36:53
|
|
Merge pull request #3256 from libgit2/cmn/fetch-spec-fetchhead
remote: insert refspecs with no rhs in FETCH_HEAD
|
|
87987fd1
|
2015-06-25T15:26:43
|
|
Merge pull request #3246 from libgit2/cmn/dont-grow-borrowed
Don't allow growing borrowed buffers
|
|
23aa7c90
|
2015-06-25T13:40:38
|
|
remote: insert refspecs with no rhs in FETCH_HEAD
When a refspec contains no rhs and thus won't cause an explicit update,
we skip all the logic, but that means that we don't update FETCH_HEAD
with it, which is what the implicit rhs is.
Add another bit of logic which puts those remote heads in the list of
updates so we put them into FETCH_HEAD.
|
|
c2418f46
|
2015-06-25T12:48:44
|
|
Rename FALLBACK to UNSPECIFIED
Fallback describes the mechanism, while unspecified explains what the
user is thinking.
|
|
3cf91d98
|
2015-06-24T20:21:54
|
|
Add CHANGELOG entries
|
|
a6599235
|
2015-06-24T19:32:56
|
|
buffer: make use of EINVALID for growing a borrowed buffer
This explains more closely what happens. While here, set an error
message.
|
|
189aad45
|
2015-06-24T19:32:07
|
|
errors: introduce EINVALID
We've been using EINVALIDSPEC for a while to mean this, but that name
is too specific. Introduce this to be more explicit.
|
|
bd470d00
|
2015-06-23T15:21:12
|
|
blob: don't recomment using git_buf_grow
We currently recommend using `git_buf_grow` in order to make a buffer
make an owned copy of the memory it points to. This is not behaviour we
should encourage, so remove this recommendation.
The function itself is not changed, as we need to remain compatible, but
it will be changed not to allow usage on borrowed buffers.
|
|
caab22c0
|
2015-06-23T15:41:58
|
|
buffer: don't allow growing borrowed buffers
When we don't own a buffer (asize=0) we currently allow the usage of
grow to copy the memory into a buffer we do own. This muddles the
meaning of grow, and lets us be a bit cavalier with ownership semantics.
Don't allow this any more. Usage of grow should be restricted to buffers
which we know own their own memory. If unsure, we must not attempt to
modify it.
|
|
daacf96d
|
2015-06-24T23:34:40
|
|
Merge pull request #3097 from libgit2/cmn/submodule-config-state
Remove run-time configuration settings from submodules
|
|
e1f434f8
|
2015-06-24T23:33:46
|
|
Merge pull request #3183 from libgit2/cmn/curl-stream
Implement a cURL stream
|
|
9d5efab8
|
2015-06-24T21:13:23
|
|
Merge pull request #3254 from ethomson/diff-binary-patch
Handle binary DIFFABLEness properly
|
|
c2f274c6
|
2015-06-24T19:47:34
|
|
Merge pull request #3250 from ethomson/stash
Stash workdir correctly when added in the index, modified in the workdir
|
|
54077091
|
2015-06-24T12:06:41
|
|
diff: determine DIFFABLE-ness for binaries
Always set `GIT_DIFF_PATCH_DIFFABLE` for all files, regardless of
binary-ness, so that the binary callback is invoked to either
show the binary contents, or just print the standard "Binary files
differ" message. We may need to do deeper inspection for binary
files where we have avoided loading the contents into a file map.
|
|
ba8fb7c4
|
2015-06-24T11:39:59
|
|
diff::binary tests: empty diff when forced binary
Ensure that even when we're forcing a binary diff that we do not
assume that there *is* a diff. There should be an empty diff for
no change.
|
|
58ca8c7e
|
2015-06-24T17:27:16
|
|
SecureTransport: use the curl stream if available
If the libcurl stream is available, use that as the underlying stream
instead of the socket stream. This allows us to set a proxy for HTTPS
connections.
|
|
ede517bc
|
2015-06-06T09:40:50
|
|
curl: add CHANGELOG and THREADING entries
|
|
8443f492
|
2015-06-11T16:57:04
|
|
curl: remove the encrypted param to the constructor
We do not want libcurl to perform the TLS negotiation for us, so we
don't need to pass this option.
|
|
f97d5d09
|
2015-06-11T16:54:48
|
|
http: ask for the curl stream for non-encrypted connections
The TLS streams talk over the curl stream themselves, so we don't need
to ask for it explicitly. Do so in the case of the non-encrypted one so
we can still make use proxies in that case.
|
|
e247649d
|
2015-06-11T16:50:44
|
|
openssl: use the curl stream if available
When linking against libcurl, use it as the underlying transport instead
of straight sockets. We can't quite just give over the file descriptor,
as curl puts it into non-blocking mode, so we build a custom BIO so
OpenSSL sends the data through our stream, be it the socket or curl
streams.
|
|
cdee630f
|
2015-06-09T19:07:58
|
|
curl: extract certificate information
The information is exposed by curl for some crypto libraries in the form
of name:content strings. We can't do much more than return this
information.
|
|
8762d721
|
2015-06-07T14:51:10
|
|
http: set the proxy if the stream supports it
Of the built-in ones, only cURL support it, but there's no reason a
user-provided stream wouldn't support it.
|
|
1376e784
|
2015-06-07T14:42:13
|
|
stream: add support for setting a proxy
If the stream claims to support this feature, we can let the transport
set the proxy.
We also set HTTPPROXYTUNNEL option so curl can create a tunnel through
the proxy which lets us create our own TLS session (if needed).
|
|
8dea1c21
|
2015-06-05T11:02:11
|
|
Implement a curl stream
cURL has a mode in which it acts a lot like our streams, providing send
and recv functions and taking care of the TLS and proxy setup for us.
Implement a new stream which uses libcurl instead of raw sockets or the
TLS libraries directly. This version does not support reporting
certificates or proxies yet.
|
|
cf9d5f76
|
2015-06-03T04:57:00
|
|
curl: find and link with the library if it's available by default
|
|
76633215
|
2015-06-24T14:25:36
|
|
binary diff: test that the diff and patch otputs are the same
We test the generation of the textual patch via the patch function,
which are just one of two possibilities to get the output.
Add a second patch generation via the diff function to make sure both
outputs are in sync.
|
|
aacfd03d
|
2015-06-24T00:30:19
|
|
Merge pull request #3251 from git-up/fixes
Fixes
|
|
6a8f3fa8
|
2015-06-23T20:59:03
|
|
Fixed invalid error handling in git_repository_open_ext()
|
|
8113056c
|
2015-06-23T20:57:09
|
|
Fixed Xcode 6.1 build warnings
|
|
cc605e73
|
2015-06-23T23:52:03
|
|
Merge pull request #3222 from git-up/conflicted
Fixed GIT_DELTA_CONFLICTED not returned in some cases
|
|
09f3364d
|
2015-06-23T23:40:02
|
|
Merge pull request #3131 from urkud/const-char
Add `const` qualifier
|
|
bd670abd
|
2015-06-23T23:30:58
|
|
Merge pull request #3226 from libgit2/cmn/racy-diff-again
racy-git, the missing link
|
|
8351abc7
|
2015-06-23T23:17:18
|
|
Merge pull request #3249 from libgit2/cmn/repo-version-check
Check the repository version
|
|
90177111
|
2015-06-23T16:27:33
|
|
stash: save the workdir file when deleted in index
When stashing the workdir tree, examine the index as well. Using
a mechanism similar to `git_diff_tree_to_workdir_with_index`
allows us to determine that a file was added in the index and
subsequently modified in the working directory. Without examining
the index, we would erroneously believe that this file was
untracked and fail to include it in the working directory tree.
Use a slightly modified `git_diff_tree_to_workdir_with_index` in
order to avoid some of the behavior custom to `git diff`. In
particular, be sure to include the working directory side of a
file when it was deleted in the index.
|
|
14304b0e
|
2015-06-23T16:27:17
|
|
stash tests: ensure we save the workdir file
Ensure that when a file is added in the index and subsequently
modified in the working directory, the stashed working directory
tree contains the actual working directory contents.
|
|
5ef43d41
|
2015-06-23T10:29:59
|
|
git_diff__merge: allow pluggable diff merges
|
|
83ba5e36
|
2015-06-22T18:43:13
|
|
diff_tform: remove reversed copy of delta merger
Drop `git_diff__merge_like_cgit_reversed`, since it's a copy and
paste mess of slightly incompatible changes.
|
|
16c73d38
|
2015-06-23T20:44:27
|
|
repository: check the format version
This is something we do on re-init but not when opening a
repository. This hasn't particularly mattered up to now as the version
has been 0 ever since the first release of git, but the times, they're
a-changing and we will soon see version 1 in the wild. We need to make
sure we don't open those.
|
|
99e11cdd
|
2015-06-23T20:43:49
|
|
repository: don't error out if there is no version
git will assume the repository format version is 0 if the value is not
there. Do the same.
|
|
8d8a2eef
|
2015-06-15T11:14:40
|
|
Fixed GIT_DELTA_CONFLICTED not returned in some cases
If an index entry for a file that is not in HEAD is in conflicted state,
when diffing HEAD with the index, the status field of the corresponding git_diff_delta was incorrectly reported as GIT_DELTA_ADDED instead of GIT_DELTA_CONFLICTED.
This was due to handle_unmatched_new_item() initially setting the status
to GIT_DELTA_CONFLICTED but then overriding it later with GIT_DELTA_ADDED.
|
|
0c34fa50
|
2015-06-23T14:08:20
|
|
Merge pull request #3228 from git-up/diff_merge
Explicitly handle GIT_DELTA_CONFLICTED in git_diff_merge()
|
|
cb63e7e8
|
2015-06-17T08:55:09
|
|
Explicitly handle GIT_DELTA_CONFLICTED in git_diff_merge()
This fixes a bug where if a file was in conflicted state in either diff,
it would not always remain in conflicted state in the merged diff.
|
|
91c1833a
|
2015-06-22T19:44:05
|
|
Merge pull request #3199 from ethomson/crlf
CRLF
|
|
146d0d08
|
2015-06-09T00:42:28
|
|
crlf: give Unix the glory of autocrlf=true
Perform LF->CRLF for core.autocrlf=true on non-Win32 because core
git does.
|
|
1e46d545
|
2015-06-09T03:50:00
|
|
crlf tests: ensure that Unix obeys autocrlf=true
All platforms do terrible, horrible, no good, very bad translation
when core.autocrlf=true. It's not just Windows!
|
|
8293c8f9
|
2015-06-08T13:51:28
|
|
git_buf_text_lf_to_crlf: allow mixed line endings
Allow files to have mixed line endings instead of skipping processing
on them.
|
|
47e9a6cb
|
2015-06-08T15:58:54
|
|
crlf: use statistics to control to workdir filter
Use statistics (like core git) to control the behavior of the
to workdir CRLF filter.
|
|
71686ddc
|
2015-06-08T11:55:04
|
|
clar: support hierarchical test resource data
Support hierarchical test resource data, such that you can have
`tests/resources/foo/bar` and move the `bar` directory in as
a fixture.
Calling `cl_fixture_sandbox` on a path that is not directly beneath
the test resources directory succeeds, placing that directory into
the test fixture. (For example, `cl_fixture_sandbox("foo/bar")`
will sandbox the `foo/bar` directory as `bar`).
Add support for cleaning up directories created this way, by only
cleaning up the basename (in this example, `bar`) from the fixture
directory.
|
|
e774fa6c
|
2015-06-09T14:47:29
|
|
crlf tests: posix known-good data
A corpus of files checked out with Git (Linux, 1.9.1) to ensure that
produce identical data when checking out using a CRLF filter.
|
|
4ebe320a
|
2015-06-09T10:37:14
|
|
crlf tests: windows known-good data
A corpus of files checked out with Git for Windows (2.4.1.windows.1)
to ensure that we produce identical data when checking out using a
CRLF filter.
|
|
3d92b9ab
|
2015-06-08T09:08:01
|
|
crlf tests: use known-good data produced by git
Given a variety of combinations of core.autocrlf settings and
attributes settings, test that we check out data into the working
directory the same as a known-good test resource created by git.git.
|
|
bf8c0a9b
|
2015-06-08T09:06:53
|
|
crlf: script to generate expected crlf data
Include a shell script that will generate the expected CRLF data,
calling git.git to capture its output as a test resource for the
current platform.
|
|
bd5e59ee
|
2015-06-08T09:04:39
|
|
crlf: include utf8 resources in master branch
Include the UTF8 and UTF8 BOM tests in the master crlf test
branch for completeness.
|
|
84f8f500
|
2015-06-05T10:11:50
|
|
crlf: include additional test resources
Include additional test data for CRLF tests: files with mixed
line endings and binary files.
|
|
0b6ed4f9
|
2015-06-22T11:24:20
|
|
Merge pull request #3240 from libgit2/cmn/commit-header-field
commit: allow retrieving an arbitrary header field
|
|
783672fa
|
2015-05-11T12:01:08
|
|
submodule: remove the RESET enum values
These are not useful anymore, as we don't affect the instance's
configuration.
|
|
04963300
|
2015-05-11T11:57:05
|
|
submodule: test unsetting config options
In addition to mapping enums to strings in the configuration, we need to
know to delete the configuration option when given the "none" or "no"
option.
|
|
c4e3a3db
|
2015-05-09T11:22:57
|
|
submodule: handle writing out all enum values for settings
We currently do not handle those enum values which require us to set
"true" or unset variables in all cases. Use a common function which does
understand this by looking at our mapping directly.
|
|
15c38103
|
2015-05-09T11:22:27
|
|
config: provide a function to reverse-lookup mapped cvars
|