|
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.
|
|
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.
|
|
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
|
|
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.
|
|
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
|
|
2c8c00c6
|
2015-04-21T12:52:29
|
|
config: validate config keys
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
94c988f6
|
2015-04-20T17:19:08
|
|
rebase: include checkout opts within rebase opts
|
|
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
|
|
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
|
|
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
|
|
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.
|
|
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
|
|
63af449e
|
2015-04-10T11:33:14
|
|
Merge pull request #3030 from linquize/symlink_supported
If work_dir is not specified, use repo_dir to test if symlink is supported
|
|
8932c32c
|
2015-04-10T10:50:01
|
|
Merge branch 'pr/3035'
|
|
129022ee
|
2015-04-10T09:36:38
|
|
Fix checking of return value for regcomp.
The regcomp function returns a non-zero value if compilation of
a regular expression fails. In most places we only check for
negative values, but positive values indicate an error, as well.
Fix this tree-wide, fixing a segmentation fault when calling
git_config_iterator_glob_new with an invalid regexp.
|
|
50fdfe2b
|
2015-04-08T23:51:49
|
|
revwalk: don't insert uninteresting commits into the queue
When a commit is first set as unintersting and then pushed, we must take
care that we do not put it into the commit list as that makes us return
at least that commit (but maybe more) as we've inserted it into the list
because we have the assumption that we want anything in the commit list.
|
|
2a069761
|
2015-04-08T16:30:44
|
|
ISO C90 forbids mixed declarations and code
GIT_UNUSED() macro generates code therefore it should be used after
variable declarations.
|
|
08e1fd65
|
2015-04-07T14:44:08
|
|
describe: only abort without tags if fallback is not allowed.
When no reference names could be found we did error out when trying to describe
a commit. This is wrong, though, when the option to fall back to a commit's
object ID is set.
|
|
67db2bde
|
2015-03-10T12:02:45
|
|
Fix git_checkout_tree() to do index filemodes correctly on Windows.
git_checkout_tree() has some fallback behaviors for file systems
which don't have full support of filemodes. Generally works fine,
but if a given file had a change of type from a 0644 to 0755 (i.e.,
you add executable permissions), the fallback behavior incorrectly
triggers when writing hte updated index.
This would cause a git_checkout_tree() command, even with the
GIT_CHECKOUT_FORCE option set, to leave a dirty index on Windows.
Also added checks to an existing test to catch this case.
|
|
466d2e7a
|
2015-04-03T19:01:20
|
|
For bare repository, use repo_dir to test if symlinks are supported
|
|
807566d5
|
2015-04-03T18:59:11
|
|
Entry argument passed to git_index_add_frombuffer() should be const
|
|
b9780823
|
2015-03-30T14:06:21
|
|
Make sure to also update delta->nfiles when merging diffs
When diffs are generated, the value for the 'nfiles' field of 'git_diff_delta'
will be consistent with the value in the 'status' field. Merging diffs can
modify the 'status' field of some deltas and the 'nfiles' field needs to be
updated accordingly.
|
|
de355f23
|
2015-03-25T13:14:28
|
|
Merge pull request #3011 from ethomson/filter_zero_tempbuf
Clear temporary buffer when filtering
|
|
669ae274
|
2015-03-23T13:12:55
|
|
filter: clear the temp_buf if we're using one
If we are using a temporary buffer for filtering, be sure to clear
it before using it, in case the file that we are filtering is empty.
|
|
78db0239
|
2015-03-24T20:58:00
|
|
squash some leaks
|
|
c5e07187
|
2015-03-24T14:03:51
|
|
Merge pull request #2990 from leoyanggit/custom_param
Add a custom param to git_smart_subtransport_definition
|
|
aa7a4a50
|
2015-03-24T09:06:20
|
|
Merge pull request #2986 from tkelman/mingw_winhttp
WinHTTP for MinGW
|
|
95d1624b
|
2015-03-24T08:34:12
|
|
Merge pull request #2947 from libgit2/cmn/notes-buf
note: use a git_buf to return the default namespace
|
|
7c3834d1
|
2015-03-24T10:18:44
|
|
Merge pull request #3010 from ethomson/checkout_invalid_path_err
checkout: report correct invalid path
|
|
3cda9cf2
|
2015-03-23T11:30:30
|
|
checkout: report correct invalid path
|
|
2a0f67f0
|
2015-03-21T21:48:03
|
|
git: make sure to close the network stream
In case of a bad url or other error during the connection setup, we
close the stream via free.
|
|
d88e6e9b
|
2015-03-19T18:38:13
|
|
mkdir-ext: Retry lstat on EEXIST race
|
|
b631e0d9
|
2015-03-19T07:25:25
|
|
Use swprintf_s everywhere except mingw.org
|
|
2c4e90f3
|
2015-03-19T01:03:41
|
|
Merge pull request #2996 from ethomson/dll_comments
win32 resource: allow custom comments field in DLL
|
|
523526e5
|
2015-03-18T18:25:14
|
|
win32 resource: allow custom comments field in DLL
|
|
89ba9f1a
|
2015-03-18T13:17:04
|
|
Merge pull request #2967 from jacquesg/merge-whitespace
Allow merges of files (and trees) with whitespace problems/fixes
|
|
142e5379
|
2015-03-17T12:49:33
|
|
Add a custom param to git_smart_subtransport_definition
The smart transport has already take the payload param. For the
sub transport a payload param is useful for the implementer.
|
|
03b51b5d
|
2015-03-18T05:04:12
|
|
Merge pull request #2955 from git-up/update_tips_fixes
Update tips fixes
|
|
83ad46f7
|
2015-03-18T04:59:16
|
|
Merge remote-tracking branch 'ethomson/submodule_8dot3'
|
|
fa8a38a4
|
2015-03-17T22:22:38
|
|
Merge pull request #2983 from jeffhostetler/jeffhostetler/perf_merge_lazy_binary_check
PERF: In MERGE, lazily compute is_binary
|
|
cdedef40
|
2015-03-17T21:38:58
|
|
Initialize refs vector in git_remote_update_tips().
Otherwise, bailing out early when ls_to_vector() fails accesses
uninitialized memory.
|
|
c84a9dd2
|
2015-03-12T01:52:15
|
|
local: recusrively insert non-branch objects into the packfile
When we insert e.g. a tag or tagged object into the packfile, we must
make sure to insert any referenced objects as well, or we will have
broken links.
Use the recursive version of packfile insertion to make sure we send
over not just the tagged object but also the objects it references.
|
|
84511143
|
2015-03-12T01:49:07
|
|
tree: add more correct error messages for not found
Don't use the full path, as that's not what we are asserting does not
exist, but just the subpath we were looking up.
|
|
a61fa4c0
|
2015-03-12T01:26:09
|
|
packbuilder: introduce git_packbuilder_insert_recur()
This function recursively inserts the given object and any referenced
ones. It can be thought of as a more general version of the functions to
insert a commit or tree.
|
|
385449b1
|
2015-03-04T01:23:20
|
|
note: use a git_buf to return the default namespace
The caller has otherwise no way to know how long the string will be
allocated or ability to free it.
This fixes #2944.
|
|
9bbc8f35
|
2015-03-17T10:21:28
|
|
Merge pull request #2962 from libgit2/cmn/reflog-annotated
Add annotated versions of ref-modying functions
|
|
7800048a
|
2015-03-17T10:06:50
|
|
Merge pull request #2972 from libgit2/cmn/pack-objects-walk
[WIP] Smarter pack-building
|
|
828e5959
|
2015-03-17T09:44:56
|
|
Merge pull request #2982 from libgit2/cmn/stream-check-ec
Don't ask for a stream's certificate unless it's encrypted
|
|
c07d0206
|
2015-03-17T09:44:25
|
|
Merge pull request #2977 from pks-t/submodule-sync-url-fix
Fix git_submodule_sync writing URL to wrong key.
|
|
3066026b
|
2014-08-26T11:18:33
|
|
Fix build on mingw-w64
|
|
8f426d7d
|
2014-06-09T11:43:25
|
|
Win32: Enable WinHTTP for MinGW
|
|
fea24c53
|
2015-03-16T15:54:53
|
|
PERF: In MERGE, lazily compute is_binary
|
|
84d83b8e
|
2015-03-16T19:41:50
|
|
http: do not try to use the cert callback on unencrypted streams
When the user has a certificate check callback set, we still have to
check whether the stream we're using is even capable of providing a
certificate.
In the case of an unencrypted certificate, do not ask for it from the
stream, and do not call the callback.
|
|
62dd4d71
|
2015-03-07T00:06:02
|
|
annotated_commit: provide a constructor from a revspec
This extra constructor will be useful for the annotated versions of
ref-modifying functions, as it allows us to create a commit with the
extended sha syntax which was used to retrieve it.
|
|
62d38a1d
|
2015-03-06T23:51:40
|
|
Add annotated commit versions of reflog-modifying functions
We do not always want to put the id directly into the reflog, but we
want to speicfy what a user typed. For this use-case we provide
annotated version of a few functions which let the caller specify what
user-friendly name was used when asking for the operation.
|