summaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
...
| * | git_path_diriter: next shouldn't take path ptrEdward Thomson2015-05-013-14/+64
| | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | git_path_dirload_with_stat: moved to fs_iteratorEdward Thomson2015-05-013-170/+116
| | |
| * | git_path_dirload_with_stat: use git_path_diriterEdward Thomson2015-05-011-123/+51
| | |
| * | git_win32_path_dirload_with_stat: removedEdward Thomson2015-05-013-209/+1
| | |
| * | git_path_dirload: use git_path_diriterEdward Thomson2015-05-012-82/+115
| | |
| * | git_path: introduce 'git_path_diriter'Edward Thomson2015-05-014-1/+163
| | | | | | | | | | | | | | | Introduce a new `git_path_diriter` that can iterate directories efficiently for each platform.
| * | win32: keep full path for realpath usageEdward Thomson2015-04-281-8/+34
| | |
| * | win32: mimic git_path_dirload_with_stat closelyEdward Thomson2015-04-281-40/+28
| | |
| * | dirload: loop conditional; less path manglingEdward Thomson2015-04-281-59/+102
| | |
| * | win32 dirload: don't heap allocate DIR structureEdward Thomson2015-04-281-22/+18
| | |
| * | win32: abstract file attributes -> struct stat fnEdward Thomson2015-04-284-80/+81
| | |
| * | Improvements to status performance on Windows.J Wyman2015-04-285-87/+281
| | | | | | | | | | | | 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).
| * | Improvements to ignore performance on Windows.J Wyman2015-04-286-15/+42
| |/ | | | | | | Minimizing the number directory and file opens, minimizes the amount of IO thus reducing the overall cost of performing ignore operations.
* | Merge pull request #3059 from libgit2/cmn/negotiation-notifyEdward Thomson2015-05-013-6/+53
|\ \ | | | | | | [WIP/RFC] push: report the update plan to the caller
| * | push: report the update plan to the callercmn/negotiation-notifyCarlos Martín Nieto2015-04-193-6/+53
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | Merge pull request #3081 from leoyanggit/build_warningsEdward Thomson2015-05-013-8/+8
|\ \ \ | | | | | | | | Fix some build warnings
| * | | Fix some build warningsLeo Yang2015-04-283-8/+8
| | |/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | Do not call regfree() on an empty regex that is not successfully created by ↵Yong Li2015-04-291-3/+2
|/ / | | | | | | | | | | regcomp (also removed an unused member "has_regex" from all_iter)
* | Merge pull request #3071 from linquize/git_reflog_dropEdward Thomson2015-04-241-1/+1
|\ \ | | | | | | Fix wrong format string in git_reflog_drop() error message
| * | Fix wrong format string in git_reflog_drop() error messageLinquize2015-04-241-1/+1
| | |
* | | Merge pull request #3063 from ethomson/config_validate_nameCarlos Martín Nieto2015-04-241-14/+42
|\ \ \ | | | | | | | | Validate configuration keys
| * | | config: peek returns '\n' on EOF; handle in writeEdward Thomson2015-04-231-1/+1
| | | |
| * | | config: validate config keysEdward Thomson2015-04-231-13/+41
| | | |
* | | | SecureTransport: handle graceful closescmn/secure-transportCarlos Martín Nieto2015-04-231-2/+3
| | | | | | | | | | | | | | | | | | | | On close, we might get a return code which looks like an error but just means that the other side closed gracefully. Handle that.
* | | | SecureTransport: require TLS v1.xCarlos Martín Nieto2015-04-231-0/+2
| | | | | | | | | | | | | | | | | | | | Anything SSL is deprecated. Let's make sure we don't try to use SSL v3 when talking to the server.
* | | | SecureTransport: allow overriding a bad certificateCarlos Martín Nieto2015-04-231-14/+41
| | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | | Rename GIT_SSL to GIT_OPENSSLCarlos Martín Nieto2015-04-238-14/+14
| | | | | | | | | | | | | | | | | | | | 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.
* | | | Silence unused warnings when not using OpenSSLCarlos Martín Nieto2015-04-231-0/+4
| | | |
* | | | Abstract away the TLS stream implementationCarlos Martín Nieto2015-04-233-2/+51
| | | | | | | | | | | | | | | | | | | | Instead, provide git_tls_stream_new() to ask for the most appropriate encrypted stream and use it in our HTTP transport.
* | | | 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.