src


Log

Author Commit Date CI Message
Edward Thomson 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.
Edward Thomson 544139f5 2015-04-28T16:39:47 win32: keep full path for realpath usage
Edward Thomson c074d7a4 2015-04-28T12:24:08 win32: mimic git_path_dirload_with_stat closely
Edward Thomson b3f6cef0 2015-04-28T11:16:42 dirload: loop conditional; less path mangling
Edward Thomson e05531dd 2015-04-27T18:02:06 win32 dirload: don't heap allocate DIR structure
Edward Thomson f3c444b8 2015-04-27T17:47:51 win32: abstract file attributes -> struct stat fn
J Wyman 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).
J Wyman 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.
Edward Thomson 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
Linquize 31d5dce3 2015-04-24T23:56:59 Fix wrong format string in git_reflog_drop() error message
Carlos Martín Nieto 65808406 2015-04-24T02:46:49 Merge pull request #3063 from ethomson/config_validate_name Validate configuration keys
Carlos Martín Nieto 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.
Carlos Martín Nieto 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.
Carlos Martín Nieto 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.
Carlos Martín Nieto 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.
Carlos Martín Nieto 70b852ce 2015-03-19T00:45:43 Silence unused warnings when not using OpenSSL
Carlos Martín Nieto 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.
Carlos Martín Nieto 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.
Edward Thomson d369d71f 2015-04-21T17:18:35 config: peek returns '\n' on EOF; handle in write
Edward Thomson 2c8c00c6 2015-04-21T12:52:29 config: validate config keys
Carlos Martín Nieto 69c333f9 2015-04-23T17:23:04 Merge pull request #3064 from rcorre/config-write-fix config_write -- handle duplicate section headers when deleting entries
Carlos Martín Nieto 63e8b08d 2015-04-23T17:08:10 Merge branch 'attr-ignore'
Mike McQuaid c02a0e46 2015-04-17T18:27:28 attr_file: fix subdirectory attr case. Closes #2966.
Edward Thomson 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.
Edward Thomson aaf42c8d 2015-04-21T18:21:59 Merge pull request #3051 from jeffhostetler/jeffhostetler/memleak_windows_tls_data Attempt to fix Windows TLS memory leak.
Ryan Roden-Corrent 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.
Carlos Martín Nieto 7636f740 2015-04-21T14:38:23 Merge pull request #2992 from ethomson/rebase_fixes Rebase fixes
Carlos Martín Nieto 3a63e8c2 2015-04-21T14:04:45 Merge pull request #3060 from ethomson/2851 Handle invalid multiline configuration
John Fultz 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.
Edward Thomson 94c988f6 2015-04-20T17:19:08 rebase: include checkout opts within rebase opts
Edward Thomson 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.
Edward Thomson 5ae38538 2015-03-17T11:47:16 rebase: take `checkout_options` where appropriate
Edward Thomson 649834fd 2015-03-17T11:46:55 reset: `git_checkout_options` is `const`
Edward Thomson eaf0d688 2015-03-17T17:53:07 rebase: block rebase_commit with unstaged changes
Edward Thomson 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.
Edward Thomson 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.
Edward Thomson 7f2e61f3 2015-04-19T23:55:02 config_file: parse multilines generously Combine unquoting and multiline detection to avoid ambiguity when parsing.
Edward Thomson 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
Jeff Hostetler 06c985d8 2015-04-18T09:07:48 Rename routine to free TLS data
Edward Thomson 4c02d393 2015-04-17T16:57:26 Merge pull request #3016 from pks-t/ignore-exclude-fix ignore: fix negative ignores without wildcards.
Edward Thomson a0e652d2 2015-04-17T12:35:41 Merge pull request #2999 from pks-t/submodule-set-url Implement git_submodule_set_branch.
Edward Thomson a5bf599c 2015-04-17T12:32:39 Merge pull request #3047 from git-up/diff_fixes Diff fixes
Jeff Hostetler d3fb7d93 2015-04-17T10:04:01 Remove DllMain now that TLS data freed by threads
Jeff Hostetler f5ffb40e 2015-04-17T09:58:09 Also fix leak of TLS data on main thread.
Jeff Hostetler 55c5f756 2015-04-17T09:30:22 Attempt to fix Windows TLS memory leak.
Patrick Steinhardt 4f358603 2015-03-24T16:33:50 ignore: fix negative ignores without wildcards.
Edward Thomson c332bb70 2015-04-16T19:26:40 Merge pull request #3042 from libgit2/cmn/odd-slowdown revwalk: detect when we're out of interesting commits
Edward Thomson 6f80bf4a 2015-04-16T19:12:28 Merge pull request #3037 from libgit2/cmn/hide-then-push Handle hide-then-push in the revwalk
Edward Thomson fa7281db 2015-04-16T18:26:47 Merge pull request #3039 from jeffhostetler/jeffhostetler/msvc_crtdbg Add memory leak detection/reporting using MSVC CRTDBG facility.
John Fultz 6598aa7e 2015-04-16T14:10:34 Oops...need bitwise, not logical negation.
Pierre-Olivier Latour 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.
Pierre-Olivier Latour cc93ad16 2015-04-15T15:27:59 Removed unnecessary condition The variable noid is guaranteed to be zero at this point of the code path.
Pierre-Olivier Latour 35df76bd 2015-04-15T15:27:56 Use git_oid_cpy() instead of memcpy()
Jeff Hostetler d06c589f 2015-04-10T06:15:06 Add MSVC CRTDBG memory leak reporting.
Carlos Martín Nieto 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.
Patrick Steinhardt 129788a6 2015-03-18T11:45:18 Implement git_submodule_set_branch.
Edward Thomson 623fbd93 2015-04-10T11:38:07 Merge pull request #2974 from libgit2/cmn/clone-everything Make sure to pack referenced objects for non-branches
Edward Thomson 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
Edward Thomson 8932c32c 2015-04-10T10:50:01 Merge branch 'pr/3035'
Patrick Steinhardt 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.
Carlos Martín Nieto 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.
Jozef Matula 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.
Patrick Steinhardt 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.
John Fultz 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.
Linquize 466d2e7a 2015-04-03T19:01:20 For bare repository, use repo_dir to test if symlinks are supported
Pierre-Olivier Latour 807566d5 2015-04-03T18:59:11 Entry argument passed to git_index_add_frombuffer() should be const
Pierre-Olivier Latour 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.
Edward Thomson de355f23 2015-03-25T13:14:28 Merge pull request #3011 from ethomson/filter_zero_tempbuf Clear temporary buffer when filtering
Edward Thomson 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.
Edward Thomson 78db0239 2015-03-24T20:58:00 squash some leaks
Edward Thomson c5e07187 2015-03-24T14:03:51 Merge pull request #2990 from leoyanggit/custom_param Add a custom param to git_smart_subtransport_definition
Edward Thomson aa7a4a50 2015-03-24T09:06:20 Merge pull request #2986 from tkelman/mingw_winhttp WinHTTP for MinGW
Edward Thomson 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
Carlos Martín Nieto 7c3834d1 2015-03-24T10:18:44 Merge pull request #3010 from ethomson/checkout_invalid_path_err checkout: report correct invalid path
Edward Thomson 3cda9cf2 2015-03-23T11:30:30 checkout: report correct invalid path
Carlos Martín Nieto 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.
Vicent Marti d88e6e9b 2015-03-19T18:38:13 mkdir-ext: Retry lstat on EEXIST race
Tony Kelman b631e0d9 2015-03-19T07:25:25 Use swprintf_s everywhere except mingw.org
Carlos Martín Nieto 2c4e90f3 2015-03-19T01:03:41 Merge pull request #2996 from ethomson/dll_comments win32 resource: allow custom comments field in DLL
Edward Thomson 523526e5 2015-03-18T18:25:14 win32 resource: allow custom comments field in DLL
Edward Thomson 89ba9f1a 2015-03-18T13:17:04 Merge pull request #2967 from jacquesg/merge-whitespace Allow merges of files (and trees) with whitespace problems/fixes
Leo Yang 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.
Carlos Martín Nieto 03b51b5d 2015-03-18T05:04:12 Merge pull request #2955 from git-up/update_tips_fixes Update tips fixes
Carlos Martín Nieto 83ad46f7 2015-03-18T04:59:16 Merge remote-tracking branch 'ethomson/submodule_8dot3'
Edward Thomson 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
Sebastian Bauer 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.
Carlos Martín Nieto 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.
Carlos Martín Nieto 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.
Carlos Martín Nieto 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.
Carlos Martín Nieto 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.
Edward Thomson 9bbc8f35 2015-03-17T10:21:28 Merge pull request #2962 from libgit2/cmn/reflog-annotated Add annotated versions of ref-modying functions
Edward Thomson 7800048a 2015-03-17T10:06:50 Merge pull request #2972 from libgit2/cmn/pack-objects-walk [WIP] Smarter pack-building
Edward Thomson 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
Edward Thomson 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.
Alex Crichton 3066026b 2014-08-26T11:18:33 Fix build on mingw-w64
Philip Kelley 8f426d7d 2014-06-09T11:43:25 Win32: Enable WinHTTP for MinGW
Jeff Hostetler fea24c53 2015-03-16T15:54:53 PERF: In MERGE, lazily compute is_binary
Carlos Martín Nieto 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.
Carlos Martín Nieto 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.
Carlos Martín Nieto 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.