summaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
...
* | | | Add a SecureTransport TLS channelCarlos Martín Nieto2015-04-235-3/+236
|/ / / | | | | | | | | | | | | As an alternative to OpenSSL when we're on OS X. This one can actually take advantage of stacking the streams.
* | | Merge pull request #3064 from rcorre/config-write-fixCarlos Martín Nieto2015-04-231-1/+4
|\ \ \ | | | | | | | | config_write -- handle duplicate section headers when deleting entries
| * | | git_config_delete: search until last section.Ryan Roden-Corrent2015-04-211-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | | Merge branch 'attr-ignore'Carlos Martín Nieto2015-04-231-1/+8
|\ \ \ \
| * | | | attr_file: fix subdirectory attr case.Mike McQuaid2015-04-231-1/+8
| | | | | | | | | | | | | | | | | | | | Closes #2966.
* | | | | Merge pull request #3032 from jfultz/index-file-modesEdward Thomson2015-04-231-7/+11
|\ \ \ \ \ | | | | | | | | | | | | Fix git_checkout_tree() to do index filemodes correctly on Windows.
| * | | | | Fix index-adding functions to know when to trust filemodes.John Fultz2015-04-212-17/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | | | | Oops...need bitwise, not logical negation.John Fultz2015-04-161-2/+2
| | | | | |
| * | | | | Fix git_checkout_tree() to do index filemodes correctly on Windows.John Fultz2015-04-061-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | | | | Merge pull request #3051 from ↵Edward Thomson2015-04-213-11/+17
|\ \ \ \ \ \ | |_|_|/ / / |/| | | | | | | | | | | | | | | | | jeffhostetler/jeffhostetler/memleak_windows_tls_data Attempt to fix Windows TLS memory leak.
| * | | | | Rename routine to free TLS dataJeff Hostetler2015-04-183-4/+9
| | | | | |
| * | | | | Remove DllMain now that TLS data freed by threadsJeff Hostetler2015-04-171-8/+0
| | | | | |
| * | | | | Also fix leak of TLS data on main thread.Jeff Hostetler2015-04-171-4/+1
| | | | | |
| * | | | | Attempt to fix Windows TLS memory leak.Jeff Hostetler2015-04-173-5/+17
| | | | | |
* | | | | | Merge pull request #2992 from ethomson/rebase_fixesCarlos Martín Nieto2015-04-212-122/+142
|\ \ \ \ \ \ | | | | | | | | | | | | | | Rebase fixes
| * | | | | | rebase: include checkout opts within rebase optsEdward Thomson2015-04-201-14/+6
| | | | | | |
| * | | | | | rebase: init and open take a rebase_optionsEdward Thomson2015-04-201-114/+118
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `git_rebase_init` and `git_rebase_open` should take a `git_rebase_options` and use it for future rebase operations on that `rebase` object.
| * | | | | | rebase: take `checkout_options` where appropriateEdward Thomson2015-04-201-15/+29
| | | | | | |
| * | | | | | reset: `git_checkout_options` is `const`Edward Thomson2015-04-201-3/+3
| | | | | | |
| * | | | | | rebase: block rebase_commit with unstaged changesEdward Thomson2015-04-201-20/+30
| | | | | | |
| * | | | | | rebase: identify a rebase that has not startedEdward Thomson2015-04-201-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | | | | | Merge pull request #3060 from ethomson/2851Carlos Martín Nieto2015-04-211-56/+48
|\ \ \ \ \ \ \ | |/ / / / / / |/| | | | | | Handle invalid multiline configuration
| * | | | | | config_file: comment char can be invalid escapeEdward Thomson2015-04-201-2/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | | | | | config_file: parse multilines generouslyEdward Thomson2015-04-201-54/+38
| | |_|_|_|/ | |/| | | | | | | | | | | | | | | | | | | | | | Combine unquoting and multiline detection to avoid ambiguity when parsing.
* | | | | | Merge pull request #3024 from git-up/diff_merge_fixEdward Thomson2015-04-191-2/+8
|\ \ \ \ \ \ | |/ / / / / |/| | | | | Make sure to also update delta->nfiles when merging diffs
| * | | | | Make sure to also update delta->nfiles when merging diffsPierre-Olivier Latour2015-03-301-2/+8
| | |_|/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | | | Merge pull request #3016 from pks-t/ignore-exclude-fixEdward Thomson2015-04-171-5/+45
|\ \ \ \ \ | | | | | | | | | | | | ignore: fix negative ignores without wildcards.
| * | | | | ignore: fix negative ignores without wildcards.Patrick Steinhardt2015-04-171-5/+45
| | | | | |
* | | | | | Merge pull request #2999 from pks-t/submodule-set-urlEdward Thomson2015-04-171-2/+26
|\ \ \ \ \ \ | | | | | | | | | | | | | | Implement git_submodule_set_branch.
| * | | | | | Implement git_submodule_set_branch.Patrick Steinhardt2015-04-121-2/+26
| | |_|_|_|/ | |/| | | |
* | | | | | Merge pull request #3047 from git-up/diff_fixesEdward Thomson2015-04-171-10/+7
|\ \ \ \ \ \ | |_|_|_|/ / |/| | | | | Diff fixes
| * | | | | Fixed GIT_DIFF_UPDATE_INDEX not being aware of executable bit changesPierre-Olivier Latour2015-04-151-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | | | | Removed unnecessary conditionPierre-Olivier Latour2015-04-151-9/+6
| | | | | | | | | | | | | | | | | | | | | | | | The variable noid is guaranteed to be zero at this point of the code path.
| * | | | | Use git_oid_cpy() instead of memcpy()Pierre-Olivier Latour2015-04-151-1/+1
| | | | | |
* | | | | | Merge pull request #3042 from libgit2/cmn/odd-slowdownEdward Thomson2015-04-161-2/+22
|\ \ \ \ \ \ | | | | | | | | | | | | | | revwalk: detect when we're out of interesting commits
| * | | | | | revwalk: detect when we're out of interesting commitscmn/odd-slowdownCarlos Martín Nieto2015-04-141-2/+22
| |/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | | | | Merge pull request #3037 from libgit2/cmn/hide-then-pushEdward Thomson2015-04-161-0/+4
|\ \ \ \ \ \ | | | | | | | | | | | | | | Handle hide-then-push in the revwalk
| * | | | | | revwalk: don't insert uninteresting commits into the queueCarlos Martín Nieto2015-04-081-0/+4
| | |_|_|_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | | | | Merge pull request #3039 from jeffhostetler/jeffhostetler/msvc_crtdbgEdward Thomson2015-04-161-0/+117
|\ \ \ \ \ \ | |_|/ / / / |/| | | | | Add memory leak detection/reporting using MSVC CRTDBG facility.
| * | | | | Add MSVC CRTDBG memory leak reporting.Jeff Hostetler2015-04-151-0/+117
| |/ / / /
* | | | | Merge pull request #2974 from libgit2/cmn/clone-everythingEdward Thomson2015-04-103-3/+40
|\ \ \ \ \ | | | | | | | | | | | | Make sure to pack referenced objects for non-branches
| * | | | | local: recusrively insert non-branch objects into the packfilecmn/clone-everythingCarlos Martín Nieto2015-03-171-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | | | | tree: add more correct error messages for not foundCarlos Martín Nieto2015-03-171-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | | | | packbuilder: introduce git_packbuilder_insert_recur()Carlos Martín Nieto2015-03-171-0/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | | | | Merge pull request #3030 from linquize/symlink_supportedEdward Thomson2015-04-101-3/+5
|\ \ \ \ \ \ | | | | | | | | | | | | | | If work_dir is not specified, use repo_dir to test if symlink is supported
| * | | | | | For bare repository, use repo_dir to test if symlinks are supportedLinquize2015-04-041-3/+5
| | |_|/ / / | |/| | | |
* | | | | | Merge branch 'pr/3035'Edward Thomson2015-04-101-4/+4
|\ \ \ \ \ \
| * | | | | | ISO C90 forbids mixed declarations and codeJozef Matula2015-04-081-4/+4
| | |_|/ / / | |/| | | | | | | | | | | | | | | | | | | | | | GIT_UNUSED() macro generates code therefore it should be used after variable declarations.
* | | | | | Fix checking of return value for regcomp.Patrick Steinhardt2015-04-103-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | | | | describe: only abort without tags if fallback is not allowed.Patrick Steinhardt2015-04-071-1/+1
|/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | 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.