|
2a950c94
|
2015-04-27T10:43:50
|
|
config: write existing lines as-is when rewriting
When updating a configuration file, we want to copy the old data
from the file to preserve comments and funny whitespace, instead
of writing it in some "canonical" format. Thus, we keep a
pointer to the start of the line and the line length to preserve
these things we don't care to rewrite.
|
|
bf99390e
|
2015-04-23T16:54:36
|
|
config: examine whole file when writing
Previously we would try to be clever when writing the configuration
file and try to stop parsing (and simply copy the rest of the old
file) when we either found the value we were trying to write,
or when we left the section that value was in, the assumption being
that there was no more work to do.
Regrettably, you can have another section with the same name later
in the file, and we must cope with that gracefully, thus we read the
whole file in order to write a new file.
Now, writing a file looks even more than reading. Pull the config
parsing out into its own function that can be used by both reading
and writing the configuration.
|
|
f79c7322
|
2015-04-23T12:00:05
|
|
config: test overwriting cvar in multiple regions
|
|
7ee61b8e
|
2015-04-21T17:18:21
|
|
config: ensure we can write to an empty file
|
|
cfc2e56d
|
2015-05-04T11:16:52
|
|
Merge pull request #3087 from ethomson/pr/3054
Performance Improvements to Status on Windows
|
|
72f8da91
|
2015-05-02T10:51:24
|
|
Merge pull request #3089 from volftomas/patch-2
Added call to git_libgit2_shutdown()
|
|
785990be
|
2015-05-02T12:16:22
|
|
Restructured to be nicer example
Code restructured to better represent best practice when
using libgit2.
|
|
ef23a82f
|
2015-05-01T17:30:51
|
|
Merge pull request #3092 from techee/iconv_macports_fix2
Don't search iconv in /opt/local
|
|
b7df2e8b
|
2015-05-01T22:48:33
|
|
Don't search iconv in /opt/local
Since OpenSSL isn't used any more on OS X, there is no dependency
on any MacPorts library under /opt/local and there is no danger of
conflicts between MacPorts and system iconv. For this reason the
system iconv can always be used now.
|
|
be3f1049
|
2015-05-01T11:27:44
|
|
diriter: actually use iconv on mac
|
|
cd39e4e2
|
2015-04-29T18:12:51
|
|
git_buf_put_w: introduce utf16->utf8 conversion
|
|
f63a1b72
|
2015-04-29T17:23:02
|
|
git_path_diriter: use FindFirstFile in win32
Using FindFirstFile and FindNextFile in win32 allows us to
use the directory information that is returned, instead of
us having to get the file attributes all over again, which
is a distinct cost savings on win32.
|
|
5c387b6c
|
2015-04-29T14:31:59
|
|
git_path_diriter: next shouldn't take path ptr
The _next method shouldn't take a path pointer (and a path_len
pointer) as 100% of current users use the full path and ignore
the filename.
Plus let's add some docs and a unit test.
|
|
7ef005f1
|
2015-04-29T14:04:01
|
|
git_path_dirload_with_stat: moved to fs_iterator
|
|
ba8ef18a
|
2015-04-29T13:28:29
|
|
git_path_dirload_with_stat: use git_path_diriter
|
|
35c1d207
|
2015-04-29T14:03:20
|
|
git_win32_path_dirload_with_stat: removed
|
|
07bbc045
|
2015-04-29T11:58:10
|
|
git_path_dirload: use git_path_diriter
|
|
edbfc52c
|
2015-04-29T11:05:27
|
|
git_path: introduce 'git_path_diriter'
Introduce a new `git_path_diriter` that can iterate directories
efficiently for each platform.
|
|
cbe8a61d
|
2015-05-01T11:28:54
|
|
Merge pull request #3059 from libgit2/cmn/negotiation-notify
[WIP/RFC] push: report the update plan to the caller
|
|
9f73e1f3
|
2015-05-01T09:01:34
|
|
Merge pull request #3081 from leoyanggit/build_warnings
Fix some build warnings
|
|
5e00e5c9
|
2015-04-30T21:55:10
|
|
Merge pull request #3090 from libgit2/jamill/doc_update
Update documentation for API changes
|
|
1275de53
|
2015-04-30T21:25:54
|
|
Merge pull request #3088 from volftomas/patch-1
Fixed unused warning in tests/rebase/merge.c
|
|
bf2ba529
|
2015-04-30T10:57:13
|
|
Update documentation for API changes
|
|
9bff15f4
|
2015-04-30T15:10:28
|
|
Added call to git_libgit2_shutdown()
Added forgotten call to git_libgit2_shutdown() to the /examples/network/git2.c.
|
|
cf2380a6
|
2015-04-30T14:17:05
|
|
Fixed unused warning in tests/rebase/merge.c
|
|
891cc504
|
2015-04-29T22:08:46
|
|
Merge pull request #3085 from yongthecoder/regfree
Do not call regfree() on an empty regex that is not successfully created...
|
|
e30438cc
|
2015-04-29T13:40:42
|
|
Do not call regfree() on an empty regex that is not successfully created by regcomp
(also removed an unused member "has_regex" from all_iter)
|
|
544139f5
|
2015-04-28T16:39:47
|
|
win32: keep full path for realpath usage
|
|
c074d7a4
|
2015-04-28T12:24:08
|
|
win32: mimic git_path_dirload_with_stat closely
|
|
b3f6cef0
|
2015-04-28T11:16:42
|
|
dirload: loop conditional; less path mangling
|
|
e05531dd
|
2015-04-27T18:02:06
|
|
win32 dirload: don't heap allocate DIR structure
|
|
f3c444b8
|
2015-04-27T17:47:51
|
|
win32: abstract file attributes -> struct stat fn
|
|
1920ee4e
|
2015-03-26T18:10:24
|
|
Improvements to status performance on Windows.
Changed win32/path_w32.c to utilize NTFS' FindFirst..FindNext data instead of doing an lstat per file. Avoiding unnecessary directory opens and file scans reduces IO, improving overall performance. Effect is magnified due to NTFS being a kernel mode file system (as opposed to user mode).
|
|
4c09e19a
|
2015-03-30T14:07:44
|
|
Improvements to ignore performance on Windows.
Minimizing the number directory and file opens, minimizes the amount of IO thus reducing the overall cost of performing ignore operations.
|
|
69f0032b
|
2015-04-28T12:40:20
|
|
Fix some build warnings
In checkout.c and filter.c we were casting a sub struct
to a parent struct which breaks the strict aliasing rules
in C. However we can use .parent or .base to access the
parent struct to avoid the build warnings.
In remote.c the local variable error was not initialized
or updated in some cases. For unintialized error a build
warning will be generated. So always keep error variable
up-to-date.
|
|
d969d415
|
2015-04-24T12:00:51
|
|
Merge pull request #3071 from linquize/git_reflog_drop
Fix wrong format string in git_reflog_drop() error message
|
|
31d5dce3
|
2015-04-24T23:56:59
|
|
Fix wrong format string in git_reflog_drop() error message
|
|
65808406
|
2015-04-24T02:46:49
|
|
Merge pull request #3063 from ethomson/config_validate_name
Validate configuration keys
|
|
dbb45950
|
2015-04-23T15:24:05
|
|
Merge pull request #2997 from libgit2/cmn/secure-transport
Use SecureTransport on OS X
|
|
44b769e4
|
2015-04-13T15:39:58
|
|
SecureTransport: handle graceful closes
On close, we might get a return code which looks like an error but just
means that the other side closed gracefully. Handle that.
|
|
65ac7ddc
|
2015-03-24T16:31:51
|
|
SecureTransport: require TLS v1.x
Anything SSL is deprecated. Let's make sure we don't try to use SSL v3
when talking to the server.
|
|
85247df0
|
2015-03-19T14:26:07
|
|
Update THREADING and CHANGELOG with SecureTransport details
|
|
b7e1c81d
|
2015-03-19T10:51:48
|
|
SecureTransport: allow overriding a bad certificate
Do not automatically fail on a bad certificate, but let the caller
decide. This means we don't need our switch on errors anymore but can
return a string representation from the security framework.
|
|
24e53d2f
|
2015-03-19T09:55:20
|
|
Rename GIT_SSL to GIT_OPENSSL
This is what it's meant all along, but now we actually have multiple
implementations, it's clearer to use the name of the library.
|
|
70b852ce
|
2015-03-19T00:45:43
|
|
Silence unused warnings when not using OpenSSL
|
|
6946a3be
|
2015-03-19T00:18:03
|
|
Abstract away the TLS stream implementation
Instead, provide git_tls_stream_new() to ask for the most appropriate
encrypted stream and use it in our HTTP transport.
|
|
6bb54cbf
|
2014-11-02T13:23:32
|
|
Add a SecureTransport TLS channel
As an alternative to OpenSSL when we're on OS X. This one can actually
take advantage of stacking the streams.
|
|
d369d71f
|
2015-04-21T17:18:35
|
|
config: peek returns '\n' on EOF; handle in write
|
|
6dc55872
|
2015-04-21T17:18:21
|
|
config: ensure we can write to an empty file
|
|
2c8c00c6
|
2015-04-21T12:52:29
|
|
config: validate config keys
|
|
23fb4004
|
2015-04-21T12:49:57
|
|
config: test that we validate the key
|
|
69c333f9
|
2015-04-23T17:23:04
|
|
Merge pull request #3064 from rcorre/config-write-fix
config_write -- handle duplicate section headers when deleting entries
|
|
63e8b08d
|
2015-04-23T17:08:10
|
|
Merge branch 'attr-ignore'
|
|
c02a0e46
|
2015-04-17T18:27:28
|
|
attr_file: fix subdirectory attr case.
Closes #2966.
|
|
c6bf03b4
|
2015-03-28T18:37:15
|
|
Add failing subdirectory gitignore attr test.
|
|
27fa7477
|
2015-04-23T10:54:08
|
|
Merge pull request #3032 from jfultz/index-file-modes
Fix git_checkout_tree() to do index filemodes correctly on Windows.
|
|
f564017d
|
2015-04-22T16:16:27
|
|
Merge pull request #3065 from cthomas/master
Fix for Issue #3023 tests fail with no network
|
|
fc6f044e
|
2015-04-21T20:02:24
|
|
Fix for Issue #3023 tests fail with no network
Moved offending tests from network to online so they will get skipped
when there is a lack of network connectivity:
-test_online_remotes__single_branch
-test_online_remotes__restricted_refspecs
|
|
aaf42c8d
|
2015-04-21T18:21:59
|
|
Merge pull request #3051 from jeffhostetler/jeffhostetler/memleak_windows_tls_data
Attempt to fix Windows TLS memory leak.
|
|
9a810c5e
|
2015-04-16T15:32:16
|
|
git_config_delete: search until last section.
If git_config_delete is to work properly in the presence of duplicate section
headers, it cannot stop searching at the end of the first matching section, as
there may be another matching section later.
When config_write is used for deletion (value = NULL), it may only terminate
when the desired key is found or there are no sections left to parse.
|
|
f56a417d
|
2015-04-16T15:20:33
|
|
Specify mock config file content in test.
Instead of using a config file in resources, include the config file content to
be tested directly in the test.
|
|
a060cccc
|
2015-04-16T10:53:22
|
|
Unittest to validate config entry deletion bug.
Add a unittest to validate bug #3043, where a duplicate empty config header
could cause deletion of a config entry to fail silently. The bug is currently
unresolved and this test will fail.
|
|
7636f740
|
2015-04-21T14:38:23
|
|
Merge pull request #2992 from ethomson/rebase_fixes
Rebase fixes
|
|
3a63e8c2
|
2015-04-21T14:04:45
|
|
Merge pull request #3060 from ethomson/2851
Handle invalid multiline configuration
|
|
d3282680
|
2015-04-20T23:41:04
|
|
Fix index-adding functions to know when to trust filemodes.
The idea...sometimes, a filemode is user-specified via an
explicit git_index_entry. In this case, believe the user, always.
Sometimes, it is instead built up by statting the file system. In
those cases, go with the existing logic we have to determine
whether the file system supports all filemodes and symlinks, and
make the best guess.
On file systems which have full filemode and symlink support, this
commit should make no difference. On others (most notably Windows),
this will fix problems things like:
* git_index_add and git_index_add_frombuffer() should be believed.
* As a consequence, git_checkout_tree should make the filemodes in
the index match the ones in the tree.
* And diffs with GIT_DIFF_UPDATE_INDEX don't write the wrong filemodes.
* And merges, and probably other downstream stuff now fixed, too.
This makes my previous changes to checkout.c unnecessary,
so they are now reverted.
Also, added a test for index_entry permissions from git_index_add
and git_index_add_frombuffer, both of which failed before these changes.
|
|
aa9bb425
|
2015-04-20T17:22:39
|
|
rebase: correct documentation, CHANGELOG
|
|
94c988f6
|
2015-04-20T17:19:08
|
|
rebase: include checkout opts within rebase opts
|
|
78382358
|
2015-03-17T17:21:11
|
|
rebase: test checkout options for rebase
|
|
f3a199dd
|
2015-03-17T15:53:04
|
|
rebase: init and open take a rebase_options
`git_rebase_init` and `git_rebase_open` should take a
`git_rebase_options` and use it for future rebase operations on
that `rebase` object.
|
|
5ae38538
|
2015-03-17T11:47:16
|
|
rebase: take `checkout_options` where appropriate
|
|
649834fd
|
2015-03-17T11:46:55
|
|
reset: `git_checkout_options` is `const`
|
|
eaf0d688
|
2015-03-17T17:53:07
|
|
rebase: block rebase_commit with unstaged changes
|
|
49b3ddf2
|
2015-03-17T17:45:31
|
|
rebase: commit should return GIT_EUNMERGED
git_rebase_commit should return `GIT_EUNMERGED` when unmerged items
exist in the index, per the documentation. Test that this is correct.
|
|
30640aa9
|
2015-03-17T10:04:08
|
|
rebase: identify a rebase that has not started
In `git_rebase_operation_current()`, indicate when a rebase has not
started (with `GIT_REBASE_NO_OPERATION`) rather than conflating that
with the first operation being in-progress.
|
|
e009a705
|
2015-04-20T00:22:20
|
|
config_file: comment char can be invalid escape
Don't assume that comment chars are comment chars, they may be (an
attempt to be escaped). If so, \; is not a valid escape sequence,
complain.
|
|
7f2e61f3
|
2015-04-19T23:55:02
|
|
config_file: parse multilines generously
Combine unquoting and multiline detection to avoid ambiguity when
parsing.
|
|
08c45213
|
2015-04-19T19:58:03
|
|
Merge pull request #3024 from git-up/diff_merge_fix
Make sure to also update delta->nfiles when merging diffs
|
|
efc2fec5
|
2015-04-19T00:55:00
|
|
push: report the update plan to the caller
It can be useful for the caller to know which update commands will be
sent to the server before the packfile is pushed up. git does this via
the pre-push hook.
We don't have hooks, but as it adds introspection into what is
happening, we can add a callback which performs the same function.
|
|
06c985d8
|
2015-04-18T09:07:48
|
|
Rename routine to free TLS data
|
|
4c02d393
|
2015-04-17T16:57:26
|
|
Merge pull request #3016 from pks-t/ignore-exclude-fix
ignore: fix negative ignores without wildcards.
|
|
a0e652d2
|
2015-04-17T12:35:41
|
|
Merge pull request #2999 from pks-t/submodule-set-url
Implement git_submodule_set_branch.
|
|
a5bf599c
|
2015-04-17T12:32:39
|
|
Merge pull request #3047 from git-up/diff_fixes
Diff fixes
|
|
c694f9fa
|
2015-04-17T10:53:46
|
|
Merge pull request #3052 from jeffhostetler/jeffhostetler/memleak_test_core_mkdir
Fix memleak in test/core/mkdir reported by CRTDBG
|
|
e3737a41
|
2015-04-17T10:30:33
|
|
Fix memleak in test/core/mkdir reported by CRTDBG
|
|
d3fb7d93
|
2015-04-17T10:04:01
|
|
Remove DllMain now that TLS data freed by threads
|
|
f5ffb40e
|
2015-04-17T09:58:09
|
|
Also fix leak of TLS data on main thread.
|
|
55c5f756
|
2015-04-17T09:30:22
|
|
Attempt to fix Windows TLS memory leak.
|
|
4f358603
|
2015-03-24T16:33:50
|
|
ignore: fix negative ignores without wildcards.
|
|
c332bb70
|
2015-04-16T19:26:40
|
|
Merge pull request #3042 from libgit2/cmn/odd-slowdown
revwalk: detect when we're out of interesting commits
|
|
6f80bf4a
|
2015-04-16T19:12:28
|
|
Merge pull request #3037 from libgit2/cmn/hide-then-push
Handle hide-then-push in the revwalk
|
|
fa7281db
|
2015-04-16T18:26:47
|
|
Merge pull request #3039 from jeffhostetler/jeffhostetler/msvc_crtdbg
Add memory leak detection/reporting using MSVC CRTDBG facility.
|
|
6598aa7e
|
2015-04-16T14:10:34
|
|
Oops...need bitwise, not logical negation.
|
|
db853748
|
2015-04-15T15:28:03
|
|
Fixed GIT_DIFF_UPDATE_INDEX not being aware of executable bit changes
In the prior implementation, enabling GIT_DIFF_UPDATE_INDEX would overwrite
entries in the index with the ones generated from scanning the working if the
OID was the same.
Because this OID comparison ignores file modes, this means an file in the
workdir with only an exec bit difference with the one in the index would end
up being overwritten, resulting in the exec bit being loss. There might be
other related bugs but the fix of comparing OIDs and file modes should
address them all.
|
|
cc93ad16
|
2015-04-15T15:27:59
|
|
Removed unnecessary condition
The variable noid is guaranteed to be zero at this point of the code path.
|
|
35df76bd
|
2015-04-15T15:27:56
|
|
Use git_oid_cpy() instead of memcpy()
|
|
d06c589f
|
2015-04-10T06:15:06
|
|
Add MSVC CRTDBG memory leak reporting.
|
|
a0541695
|
2015-04-14T03:26:45
|
|
revwalk: detect when we're out of interesting commits
When walking backwards and marking parents uninteresting, make sure we
detect when the list of commits we have left has run out of
uninteresting commits so we can stop marking commits as
uninteresting. Failing to do so can mean that we walk the whole history
marking everything uninteresting, which eats up time, CPU and IO for
with useless work.
While pre-marking does look for this, we still need to check during the
main traversal as there are setups for which pre-marking does not leave
enough information in the commits. This can happen if we push a commit
and hide its parent.
|
|
05d92026
|
2015-04-13T18:03:03
|
|
revwalk: reword the push text
As it seems it's not quite clear what it means to push a commit, try to
be more explicit about adding a new root and that we may not see this
commit if it is hidden.
|
|
129788a6
|
2015-03-18T11:45:18
|
|
Implement git_submodule_set_branch.
|
|
623fbd93
|
2015-04-10T11:38:07
|
|
Merge pull request #2974 from libgit2/cmn/clone-everything
Make sure to pack referenced objects for non-branches
|