src


Log

Author Commit Date CI Message
Russell Belfer 7bf87ab6 2012-11-28T09:58:48 Consolidate text buffer functions There are many scattered functions that look into the contents of buffers to do various text manipulations (such as escaping or unescaping data, calculating text stats, guessing if content is binary, etc). This groups all those functions together into a new file and converts the code to use that. This has two enhancements to existing functionality. The old text stats function is significantly rewritten and the BOM detection code was extended (although largely we can't deal with anything other than a UTF8 BOM).
Sascha Cunz 7cdad6c7 2012-11-28T12:43:12 Fix uninitialized variable clang-SVN HEAD kindly provided my the info, that sm_repo maybe uninitialized when we want to free it (If the expression in line 358 or 359/360 evaluate to true, we jump to "cleanup", where we'd use sm_repo uninitialized).
Vicent Marti ae201891 2012-11-28T11:47:38 object: Raise proper code on invalid object type
Vicent Marti 9507a434 2012-11-28T10:47:10 odb: Add `git_odb_add_disk_alternate` Loads a disk alternate by path to the ODB. Mimics the `GIT_ALTERNATE_OBJECT_DIRECTORIES` shell var.
Russell Belfer c3fb7d04 2012-11-27T15:00:49 Make git_odb_foreach_cb take const param This makes the first OID param of the ODB callback a const pointer and also propogates that change all the way to the backends.
Russell Belfer 2bd5998c 2012-11-27T14:47:39 Remove git_note_data structure
Ben Straub f4a62c30 2012-11-27T14:13:03 Typedef enums.
Ben Straub 1d8ec670 2012-11-27T14:06:56 API updates for stash.h
Ben Straub c9fc4a6f 2012-11-27T13:44:49 API updates for repository.h
Ben Straub df705148 2012-11-27T13:15:43 API updates for remote.h Includes typedef for git_direction, and renames for GIT_DIR_[FETCH|PUSH] to GIT_DIRECTION_(\1).
Ben Straub 2e76b5fc 2012-11-27T09:49:16 API updates for odb.h
Ben Straub de5596bf 2012-11-26T20:09:38 API updates for notes.h/c.
Russell Belfer 16248ee2 2012-11-21T11:03:07 Fix up some missing consts in tree & index This fixes some missed places where we can apply const-ness to various public APIs. There are still some index and tree APIs that cannot take const pointers because we sort our `git_vectors` lazily and so we can't reliably bsearch the index and tree content without applying a `git_vector_sort()` first. This also fixes some missed places where size_t can be used and where const can be applied to a couple internal functions.
Ben Straub 4ff192d3 2012-11-26T19:47:47 Move merge functions to merge.c In so doing, promote commit_list to git_commit_list, with its own internal API header.
Ben Straub 839c5f57 2012-11-26T12:04:07 API updates for indexer.h
Russell Belfer a8122b5d 2012-11-21T15:39:03 Fix warnings on Win64 build
Russell Belfer 4604a654 2012-11-21T11:57:06 update internal index API to avoid cast
Russell Belfer d574de0e 2012-11-21T11:53:54 API updates for status.h
Ben Straub f45d51ff 2012-11-20T19:57:46 API updates for index.h
Russell Belfer d9023dbe 2012-11-20T17:06:54 API updates for tag.h
Russell Belfer 9cd42358 2012-11-20T16:57:16 API updates for submodule.h
Russell Belfer 793c4385 2012-11-20T16:36:06 Update diff callback param order This makes the diff functions that take callbacks both take the payload parameter after the callback function pointers and pass the payload as the last argument to the callback function instead of the first. This should make them consistent with other callbacks across the API.
Ben Straub 54b2a37a 2012-11-20T16:02:25 Clean up config.h
Russell Belfer eecc8050 2012-11-20T14:03:05 Update callback fn ptr for git_reference_foreach As part of API review, use a typedef for the callback fn ptr.
Russell Belfer e120123e 2012-11-20T14:01:46 API review / update for tree.h
Russell Belfer 824cb2d5 2012-11-20T12:13:52 Updates to reset.h
Vicent Marti cfbe4be3 2012-11-17T19:54:47 More external API cleanup Conflicts: src/branch.c tests-clar/refs/branches/create.c
Ben Straub 2508cc66 2012-11-18T21:38:08 Rename ref and reflog apis for consistency
Fraser Tweedale 9e9aee67 2012-11-26T23:29:34 fix build on FreeBSD 3f9eb1e introduced support for SSL certificates issued for IP addresses, making use of in_addr and in_addr6 structs. On FreeBSD these are defined in (a file included in) <netinet/in.h>, so include that file on FreeBSD and get the build working again.
Vicent Martí 8404f2d6 2012-11-26T03:56:25 Merge pull request #1101 from csware/prevent_die pack.c: Set p->mwf.fd to -1 on error
delanne f2696fa4 2012-11-26T12:12:41 Fix invalid read reported by valgrind
Sven Strickroth fcb48e06 2012-11-24T15:48:17 Set p->mwf.fd to -1 on error If p->mwf.fd is e.g. -2 then it is closed in packfile_free and an exception might be thrown. Signed-off-by: Sven Strickroth <email@cs-ware.de>
Vicent Martí c4d8df27 2012-11-23T15:19:47 Merge pull request #1097 from nulltoken/topic/head_tree_error Make `git_repository_head_tree()` return error codes
Martin Woodward 826bc4a8 2012-11-23T13:31:22 Remove use of English expletives Remove words such as fuck, crap, shit etc. Remove other potentially offensive words from comments. Tidy up other geopolicital terms in comments.
nulltoken 5cec896a 2012-11-22T18:51:06 repo: Make git_repository_head_tree() return error codes
Russell Belfer 54be4d57 2012-11-20T15:02:06 Merge pull request #1092 from arrbee/legal-to-not-have-gitconfig It is okay to not have a .gitconfig file
Russell Belfer 38f7d026 2012-11-20T14:50:36 Need to clear ignored error from config load
Russell Belfer cc6b4162 2012-11-20T10:24:18 It is okay to not have a .gitconfig file Opening a repo is generating an error if you don't have a .gitconfig file in your home directory, but that should be legal.
Eduardo Bart cf0dadcf 2012-11-20T01:19:31 Minor optimization in win32 do_lstat
Eduardo Bart 2d96fce2 2012-11-19T23:12:20 update win32 lstat comment
Eduardo Bart 52ead787 2012-11-19T22:30:20 Fix win32 lstat
Scott J. Goldman 0d778b1a 2012-11-18T16:52:04 Catch invalid filenames in append_entry() This prevents the index api from calling write_tree() with a bogus tree.
Scott J. Goldman 19af78bb 2012-11-18T15:15:24 Prevent creating `..`, `.`, and `.git` with tree builder As per core git.
Sascha Cunz 4cc7342e 2012-11-18T09:07:35 Indexer: Avoid a possible double-deletion in error case
Michael Schubert 0066955d 2012-11-18T04:27:49 Fix a couple of warnings
nulltoken b15df1d9 2012-11-17T18:29:51 reflog: make entry_byindex() and drop() git compliant Passing 0 as the index now retrieves the most recent entry instead of the oldest one.
nulltoken 270160b9 2012-11-17T13:39:24 config: Opening a nonexistent file returns ENOTFOUND
nulltoken d36451c9 2012-11-17T12:34:15 config: Make git_config_file__ondisk() internal
nulltoken 6091457e 2012-11-17T07:19:14 repo: ensure is_empty() checks there are no refs
nulltoken aa8a76ef 2012-11-17T05:12:14 tag: rename git_tag_type to git_tag_target_type
nulltoken 86b9dbc1 2012-11-17T04:50:48 Fix MSVC compilation warnings
Vicent Martí e087973e 2012-11-16T10:27:46 Merge pull request #1075 from carlosmn/alternates-recurse odb: recursively load alternates
Carlos Martín Nieto 85e7efa1 2012-11-14T13:35:43 odb: recursively load alternates The maximum depth is 5, like in git
Scott J. Goldman 0cd063fd 2012-11-15T23:28:52 Merge pull request #1071 from arrbee/alternate-fix-strcmp Win32 fixes for diff/checkout/reset
Michael Schubert 0ec11828 2012-11-16T02:17:57 Fix -Wmaybe-uninitialized warning
Vicent Martí 4a0c7f56 2012-11-15T10:31:11 Merge pull request #1074 from edubart/ignore_diff_filemode Add option to ignore file mode in diffs
Eduardo Bart c0d5acf6 2012-11-15T14:43:21 Add option to ignore file mode in diffs
Russell Belfer bbe6dbec 2012-11-14T23:29:48 Add explicit git_index ptr to diff and checkout A number of diff APIs and the `git_checkout_index` API take a `git_repository` object an operate on the index. This updates them to take a `git_index` pointer explicitly and only fall back on the `git_repository` index if the index input is NULL. This makes it easier to operate on a temporary index.
Russell Belfer bad68c0a 2012-11-13T14:02:59 Add iterator for git_index object The index iterator could previously only be created from a repo object, but this allows creating an iterator from a `git_index` object instead (while keeping, though renaming, the old function).
Russell Belfer 5735bf5e 2012-11-13T13:58:29 Fix diff API to better parameter order The diff API is not in the parameter order one would expect from other libgit2 APIs. This fixes that.
Russell Belfer cccacac5 2012-11-14T22:41:51 Add POSIX compat lstat() variant for win32 The existing p_lstat implementation on win32 is not quite POSIX compliant when setting errno to ENOTDIR. This adds an option to make is be compliant so that code (such as checkout) that cares to have separate behavior for ENOTDIR can use it portably. This also contains a couple of other minor cleanups in the posix_w32.c implementations to avoid unnecessary work.
Russell Belfer a277345e 2012-11-14T22:37:13 Create internal strcmp variants for function ptrs Using the builtin strcmp and strcasecmp as function pointers is problematic on win32. This adds internal implementations and divorces us from the platform linkage.
Carlos Martín Nieto 7e9f5e65 2012-11-13T20:06:15 Slightly different valgrind fix Allocate with calloc rather than conditionally memsetting a specific part of the struct later on.
Carlos Martín Nieto 6132a54e 2012-11-13T16:13:10 Fix a few valgrind errors
Vicent Martí 513e794e 2012-11-13T14:59:18 Merge pull request #1068 from carlosmn/config-empty-value Deal with empty and nonexsitent values in config
Carlos Martín Nieto 0da81d2b 2012-11-13T14:43:23 config: return an emtpy string when there is no value Returning NULL for the string when we haven't signaled an error condition is counter-intuitive and causes unnecessary edge cases. Return an empty string when asking for a string value for a configuration variable such as '[section] var' to avoid these edge cases. If the distinction between no value and an empty value is needed, this can be retrieved from the entry directly. As a side-effect, this change stops the int parsing functions from segfaulting on such a variable.
Vicent Marti f6c18dda 2012-11-13T14:17:41 http: Unrustle
Vicent Martí aa1c3b58 2012-11-13T14:13:47 Merge pull request #1016 from arrbee/fix-checkout-dir-removal Update checkout with new strategies & behavior
Carlos Martín Nieto 47db054d 2012-11-13T13:41:01 config: distinguish between a lone variable name and one without rhs '[section] variable' and '[section] variable =' behave differently when parsed as booleans, so we need to store that distinction internally.
Carlos Martín Nieto 3ee078c0 2012-11-13T13:46:17 config: rename get_config_entry -> config_entry We're already in the git_config namespace, there is no need to repeat it.
Edward Thomson 2a612fe3 2012-11-13T14:57:35 filebuf now has a git_hash_ctx instead of a ctx*
Edward Thomson a8527429 2012-11-13T14:48:10 unload dll / destroy hash ctxs at shutdown
Edward Thomson 7ebefd22 2012-11-13T10:10:40 move hash library func ptrs to global global
Edward Thomson 603bee07 2012-11-12T19:22:49 Remove git_hash_ctx_new - callers now _ctx_init()
Edward Thomson d6fb0924 2012-11-05T12:37:15 Win32 CryptoAPI and CNG support for SHA1
Ben Straub e45423dd 2012-11-13T05:45:08 Merge pull request #1065 from nulltoken/fix/memory-leak Fix memory leaks
Michael Schubert d51e54f1 2012-11-13T14:28:44 Remove unused variables
nulltoken 3dee3655 2012-11-13T07:04:30 local: fix memory leak
Vicent Marti 19c044a1 2012-11-12T14:23:17 Merge remote-tracking branch 'ben/local-transport' into development
Ben Straub 14157652 2012-11-12T07:57:03 Remove unnecessary progress logic The indexer handles this better than the fetch logic does.
Ben Straub 0f5520f7 2012-11-12T07:55:09 Fix error check
nulltoken b1a3a70e 2012-11-12T00:14:51 repository: Refine repository_head() error report
Edward Thomson b0f6e45d 2012-11-01T15:47:18 create FETCH_HEAD specially instead of as a ref file
Vicent Martí d18713fb 2012-11-10T20:24:53 Merge pull request #1056 from nulltoken/duplicate-tree-entries Duplicate tree entries
nulltoken 95d73de1 2012-11-10T21:10:49 index: prefer INDEX_OWNER usage
nulltoken 33f95a9b 2012-11-10T21:01:05 index: refine add_from_workdir() error report
nulltoken 69c068c7 2012-11-10T20:42:45 index: make git_index_new() work with a NULL path
Russell Belfer 757b4065 2012-11-09T14:01:44 Fix warnings and valgrind issues This fixes some various warnings that showed up in Travis and a couple uses of uninitialized memory and one memory leak.
Russell Belfer 0f3def71 2012-11-09T11:19:46 Fix various cross-platform build issues This fixes a number of warnings and problems with cross-platform builds. Among other things, it's not safe to name a member of a structure "strcmp" because that may be #defined.
Russell Belfer a1bf70e4 2012-11-08T21:58:24 fix regression in diff with submodule oid
Russell Belfer ad9a921b 2012-11-08T17:05:07 Rework checkout with new strategy options This is a major reworking of checkout strategy options. The checkout code is now sensitive to the contents of the HEAD tree and the new options allow you to update the working tree so that it will match the index content only when it previously matched the contents of the HEAD. This allows you to, for example, to distinguish between removing files that are in the HEAD but not in the index, vs just removing all untracked files. Because of various corner cases that arise, etc., this required some additional capabilities in rmdir and other utility functions. This includes the beginnings of an implementation of code to read a partial tree into the index based on a pathspec, but that is not enabled because of the possibility of creating conflicting index entries.
Russell Belfer 55cbd05b 2012-11-08T16:56:34 Some diff refactorings to help code reuse There are some diff functions that are useful in a rewritten checkout and this lays some groundwork for that. This contains three main things: 1. Share the function diff uses to calculate the OID for a file in the working directory (now named `git_diff__oid_for_file` 2. Add a `git_diff__paired_foreach` function to iterator over two diff lists concurrently. Convert status to use it. 3. Move all the string/prefix/index entry comparisons into function pointers inside the `git_diff_list` object so they can be switched between case sensitive and insensitive versions. This makes them easier to reuse in various functions without replicating logic. As part of this, move a couple of index functions out of diff.c and into index.c.
Russell Belfer 2e3d4b96 2012-11-08T16:47:28 Move pathspec code in separate files Diff uses a `git_strarray` of path specs to represent a subset of all files to be processed. It is useful to be able to reuse this filtering in other places outside diff, so I've moved it into a standalone set of utilities.
Russell Belfer 220d5a6c 2012-11-08T16:45:25 Make iterator ignore eval lazy This makes it so that the check if a file is ignored will be deferred until requested on the workdir iterator, instead of aggressively evaluating the ignore rules for each entry. This should improve performance because there will be no need to check ignore rules for files that are already in the index.
Russell Belfer 32def5af 2012-10-24T17:37:07 Fix checkout behavior when its hands are tied So, @nulltoken created a failing test case for checkout that proved to be particularly daunting. If checkout is given only a very limited strategy mask (e.g. just GIT_CHECKOUT_CREATE_MISSING) then it is possible for typechange/rename modifications to leave it unable to complete the request. That's okay, but the existing code did not have enough information not to generate an error (at least for tree/blob conflicts). This led me to a significant reorganization of the code to handle the failing case, but it has three benefits: 1. The test case is handled correctly (I think) 2. The new code should actually be much faster than the old code since I decided to make checkout aware of diff list internals. 3. The progress value accuracy is hugely increased since I added a fourth pass which calculates exactly what work needs to be done before doing anything.
Russell Belfer 331e7de9 2012-10-24T17:32:50 Extensions to rmdir and mkdir utilities * Rework GIT_DIRREMOVAL values to GIT_RMDIR flags, allowing combinations of flags * Add GIT_RMDIR_EMPTY_PARENTS flag to remove parent dirs that are left empty after removal * Add GIT_MKDIR_VERIFY_DIR to give an error if item is a file, not a dir (previously an EEXISTS error was ignored, even for files) and enable this flag for git_futils_mkpath2file call * Improve accuracy of error messages from git_futils_mkdir
Vicent Martí 8a328cf4 2012-11-09T13:19:32 Merge pull request #1058 from pwkelley/development Fixes for two segfaults
Philip Kelley fcd03beb 2012-11-09T15:57:32 Fix a mutex/critical section leak
nulltoken 55f9837f 2012-11-09T21:49:50 config: make git_config_open_level() work with an empty config
Philip Kelley 2f683f00 2012-11-09T15:39:25 Fix uninitialized memory in winhttp subtransport on 64-bit