src


Log

Author Commit Date CI Message
Mike McQuaid b67bc364 2015-04-17T18:27:28 attr_file: fix subdirectory attr case. Closes #2966.
Patrick Steinhardt 657ddf97 2015-03-24T16:33:50 ignore: fix negative ignores without wildcards.
Carlos Martín Nieto 702ac408 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.
Carlos Martín Nieto 98e484b9 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 7661fa12 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.
John Fultz 04162eb1 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. Conflicts: src/checkout.c
Pierre-Olivier Latour 7dc1b1c4 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.
Carlos Martín Nieto 928b4cad 2015-03-24T16:47:26 Merge pull request #3005 from libgit2/cmn/maint-update Backports for the maint branch
Edward Thomson 1f25fe95 2015-03-23T11:30:30 checkout: report correct invalid path
Edward Thomson 93be89c3 2015-02-03T12:16:11 win32: cleanup 8.3 disabled tests
Linquize 728a013b 2015-01-28T23:04:50 Fix test failures when 8.3 is disabled
Carlos Martín Nieto 1f726d05 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.
Edward Thomson 3e163b67 2015-01-23T00:18:42 checkout: free last created directory
Sebastian Bauer 3440c202 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 1dd5e28e 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 dd243fe1 2015-03-13T18:00:15 indexer: set an error message on duplicate objects in pack While this is not even close to a fix, we can at least set an error message so we know which error we are facing. Up to know we just returned an error without a message.
Pierre-Olivier Latour cf688ffd 2015-03-05T23:06:31 Fixed active refspecs not reset by git_remote_upload()
Carlos Martín Nieto 7a5682f5 2015-03-03T17:23:01 http: enforce the credential types The user may decide to return any type of credential, including ones we did not say we support. Add a check to make sure the user returned an object of the right type and error out if not.
Carlos Martín Nieto f008aeb8 2015-03-03T13:25:40 branch: do capture the error code We want to ignore GIT_ENOTFOUND, but for that we need to capture the error code from the reflog deletion.
Pierre-Olivier Latour 283f31ab 2015-03-02T10:24:54 git_branch_delete() should ignore errors from non-existing reflogs
Jason Haslam d884d1c4 2015-02-14T23:43:26 Fix race in git_packfile_unpack. Increment refcount of newly added cache entries just like existing entries looked up from the cache. Otherwise the new entry can be evicted from the cache and destroyed while it's still in use.
Jeff Hostetler aa926fb5 2015-02-02T16:50:10 Fix branch creation when branch name matches namespace of previously deleted branch
Yury G. Kudryashov 277d6477 2015-02-05T23:39:59 Reinit `reader` pointer after reading included config file Fixes #2869. If included file includes more files, it may reallocate cfg_file->readers, hence invalidate not only `r` pointer, but `result` pointer as well.
Jameson Miller 3bdcea88 2015-02-12T15:32:52 Check rebase options version on public entry points
Edward Thomson 7d8e4e30 2015-02-04T23:45:22 mkdir: respect the root path Don't try to strip trailing paths from the root directory on Windows (trying to create `C:` will fail).
Edward Thomson 69455bc8 2015-02-04T18:24:31 stat: don't remove trailing '/' from root on win32 `p_stat` calls `git_win32_path_from_utf8`, which canonicalizes the path. Do not further try to modify the path, else we trim the trailing slash from a root directory and try to access `C:` instead of `C:/`.
Jacques Germishuys 5c3e01d8 2015-01-25T14:40:23 Ensure the diff hunk callback is specified before trying to dereference it
Jacques Germishuys fe61bb68 2015-01-25T14:08:05 Ensure git_index_entry is not NULL before trying to free it
Raphael Kubo da Costa ae0cfacc 2015-01-24T16:19:43 openssl: Add all required includes for AF_INET6 and in6_addr. This fixes the build at least on FreeBSD, where those types were not defined indirectly: src/openssl_stream.c:100:18: error: variable has incomplete type 'struct in6_addr' struct in6_addr addr6; ^ src/openssl_stream.c:100:9: note: forward declaration of 'struct in6_addr' struct in6_addr addr6; ^ src/openssl_stream.c:111:18: error: use of undeclared identifier 'AF_INET' if (p_inet_pton(AF_INET, host, &addr4)) { ^ src/unix/posix.h:31:40: note: expanded from macro 'p_inet_pton' ^ src/openssl_stream.c:115:18: error: use of undeclared identifier 'AF_INET6' if(p_inet_pton(AF_INET6, host, &addr6)) { ^ src/unix/posix.h:31:40: note: expanded from macro 'p_inet_pton' ^
Pierre-Olivier Latour 4738a337 2015-01-23T20:57:13 Fixed git_repository_set_bare() not setting "core.bare" correctly
Sven Strickroth 8693335b 2014-11-13T19:30:47 Make binary detection work similar to vanilla git Main change: Don't treat chars > 128 as non-printable (common in UTF-8 files) Signed-off-by: Sven Strickroth <email@cs-ware.de>
Aki Koskinen d95c949a 2015-02-27T10:53:39 Include ws2tcpip.h in order to get in6_addr It's currently required in src/openssl_stream.c only.
Aki Koskinen e1314dd6 2015-02-27T10:49:02 Include openssl headers last Windows headers #define some names that openssl uses too. Openssl headers #undef the offending names before reusing them. But if those offending Windows headers get included after the openssl headers the namespace is polluted and nothing good happens. Fixes issue #2850.
Boris Egorov bd0a5516 2015-01-25T00:07:23 pathspec: do not try to dereference NULL pathspec_match_free() should not dereference a NULL passed to it. I found this issue when I tried to run example log program with nonexistent branch: ./example/log help Such call leads to segmentation fault.
Edward Thomson 8d655239 2015-01-16T18:37:06 checkout: remove files before writing new ones On case insensitive filesystems, we may have files in the working directory that case fold to a name we want to write. Remove those files (by default) so that we will not end up with a filename that has the unexpected case.
Edward Thomson b295294f 2015-01-14T13:20:21 checkout: drop newline in error message
Edward Thomson 9f1c873e 2015-01-16T18:35:13 checkout: don't recreate previous directory Don't bother trying to recreate the previously created directory during checkout, for a modest reduction in the number of stats.
Edward Thomson 1ca7fa94 2015-01-16T18:33:23 git_path_join_unrooted: return base len The documentation for `git_path_join_unrooted` states that the base length will be returned, so that consumers like checkout know where to start creating directories instead of always creating directories at the directory root.
Edward Thomson bd0e8814 2015-01-16T18:32:48 checkout: introduce git_checkout_perfdata Checkout can now provide performance data about the number of (some) syscalls performed using an optional callback. This structure remains internal-only in maintenance branches.
Carlos Martín Nieto d4b24101 2015-01-09T16:47:48 Merge commit '4b1018d24f980273528743c27c47ceb96cb720bd' Fix crash in free() when git_buf_grow() fails.
Jeff Hostetler 4b1018d2 2015-01-08T17:24:12 Fix crash in free() when git_buf_grow() fails.
Edward Thomson a8846da7 2015-01-08T13:45:22 remote: plug leak
Edward Thomson 1646412d 2015-01-08T11:20:44 Merge pull request #2802 from calavera/remote_create_prune_config Load prune configuration when a remote is created.
David Calavera c868981f 2015-01-06T13:49:39 Add extern function to initialize submodule update options.
Edward Thomson 5018e2c6 2015-01-06T17:08:38 submodule: declare vars at top of func block
David Calavera 66b71ea5 2015-01-05T13:33:36 Fix intentation.
David Calavera 1ef3f0ce 2015-01-05T13:24:11 Load prune configuration when a remote is created.
Carlos Martín Nieto 0c601229 2015-01-05T20:10:43 Merge commit 'refs/pull/2632/head' of github.com:libgit2/libgit2
Pierre-Olivier Latour c070ac64 2015-01-01T04:14:58 Fixed internal push state not being cleared on download git_remote_download() must also clear the internal push state resulting from a possible earlier push operation. Otherwise calling git_remote_update_tips() will execute the push version instead of the fetch version and among other things, tags won't be updated.
Edward Thomson a3ef70bb 2014-12-30T11:53:55 Merge pull request #2761 from libgit2/cmn/fetch-prune Remote-tracking branch prunning
Edward Thomson c4c47fc2 2014-12-30T11:53:45 Merge pull request #2762 from libgit2/cmn/hide-push remote: remove git_push from the public API
Carlos Martín Nieto fe794b2e 2014-12-16T08:57:05 remote: remove git_push from the public API Instead we provide git_remote_upload() and git_remote_update_tips() in order to have a parallel API for fetching and pushing.
Carlos Martín Nieto 13da562a 2014-12-30T16:48:52 Merge pull request #2785 from jacquesg/coverity Coverity fixes
Jacques Germishuys dfda1cf5 2014-12-27T21:04:28 Check for OOM
Jacques Germishuys 0beb7fe4 2014-12-24T11:44:17 Added missing error handling path
Jacques Germishuys 3dbd9a0e 2014-12-24T11:43:38 Check the result of git_buf_joinpath
Edward Thomson 4ceb388b 2014-12-29T14:22:36 Merge pull request #2784 from jacquesg/undef-stat Undef stat for Mingw
Jacques Germishuys 6f73e026 2014-12-24T11:42:50 Plug some leaks
Jacques Germishuys a1daec3c 2014-12-29T18:11:33 Undef stat first
Edward Thomson ddf95324 2014-12-29T09:30:05 Merge pull request #2783 from libgit2/cmn/treebuilder-new treebuilder: rename _create() to _new()
Sebastian Bauer 7cf86f92 2014-12-28T10:35:26 Added AmigaOS-specific implementation of git__timer(). The clock_gettime() function is normally not available under AmigaOS, hence another solution is required. We are using now GetUpTime() that is present in current versions of this operating system.
Carlos Martín Nieto 208a2c8a 2014-12-27T12:09:11 treebuilder: rename _create() to _new() This function is a constructor, so let's name it like one and leave _create() for the reference functions, which do create/write the reference.
Carlos Martín Nieto 5692dcf1 2014-12-24T06:24:42 Merge pull request #2772 from ethomson/case_changing_rename Case changing rename
Carlos Martín Nieto 171c2ff1 2014-12-24T06:23:36 Merge pull request #2778 from ethomson/whitespace_85 don't treat 0x85 as whitespace
Edward Thomson 73f0278e 2014-12-23T16:40:01 global: include sys/openssl.h for GIT_EXPORT of fn The openssl setup function needs to be GIT_EXPORT'ed, be sure to include the `sys/openssl.h` header so that it is appropriately decorated as an export function.
Edward Thomson fe5f7722 2014-12-23T11:27:01 don't treat 0x85 as whitespace A byte value of 0x85 is not whitespace, we were conflating that with U+0085 (UTF8: 0xc2 0x85). This caused us to incorrectly treat valid multibyte characters like U+88C5 (UTF8: 0xe8 0xa3 0x85) as whitespace.
Edward Thomson 40d79154 2014-05-09T19:32:52 Always checkout with case sensitive iterator On a case-insensitive filesystem, we need to deal with case-changing renames (eg, foo -> FOO) by removing the old and adding the new, exactly as if we were on a case-sensitive filesystem. Update the `checkout::tree::can_cancel_checkout_from_notify` test, now that notifications are always sent case sensitively.
Edward Thomson 2fe8157e 2014-12-22T18:42:03 index: reuc and name entrycounts should be size_t For the REUC and NAME entries, we use size_t internally, and we take size_t for the get_byindex() functions, but the entrycount() functions strangely cast to an unsigned int instead.
Jameson Miller 9d1f97df 2014-10-29T17:49:04 Introduce a convenience function for submodule update This introduces the functionality of submodule update in 'git_submodule_do_update'. The existing 'git_submodule_update' function is renamed to 'git_submodule_update_strategy'. The 'git_submodule_update' function now refers to functionality similar to `git submodule update`, while `git_submodule_update_strategy` is used to get the configured value of submodule.<name>.update.
Jameson Miller b2ab887e 2014-10-20T18:07:32 submodule init should resolve relative url paths Submodule init should handle relative paths in .gitmodules files and resolve these urls when updating the git config file.
Edward Thomson d147900e 2014-12-20T21:24:45 Merge pull request #2759 from libgit2/cmn/openssl-sys Make OpenSSL locking warnings more severe
Edward Thomson c7d9839f 2014-12-20T21:22:30 Merge pull request #2763 from libgit2/cmn/local-proto-progress Show progress output on fetch for the local transport
Linquize 6fd00266 2014-12-19T23:54:01 COM0 is a valid path, although Windows Explorer does not allow to create this
Carlos Martín Nieto 629417bd 2014-12-19T08:08:47 Fix ming32 compilation We need to know what wchar_t and MAX_PATH are. Including common.h takes care of that for us.
Edward Thomson dce7b1a4 2014-12-16T19:24:04 treebuilder: take a repository for path validation Path validation may be influenced by `core.protectHFS` and `core.protectNTFS` configuration settings, thus treebuilders can take a repository to influence their configuration.
Edward Thomson ec74b40c 2014-12-16T18:53:55 Introduce core.protectHFS and core.protectNTFS Validate HFS ignored char ".git" paths when `core.protectHFS` is specified. Validate NTFS invalid ".git" paths when `core.protectNTFS` is specified.
Vicent Marti 8e35527d 2014-12-16T13:03:02 path: Use UTF8 iteration for HFS chars
Edward Thomson 11d67b75 2014-12-10T19:12:16 checkout: disallow bad paths on HFS HFS filesystems ignore some characters like U+200C. When these characters are included in a path, they will be ignored for the purposes of comparison with other paths. Thus, if you have a ".git" folder, a folder of ".git<U+200C>" will also match. Protect our ".git" folder by ensuring that ".git<U+200C>" and friends do not match it.
Edward Thomson ee5da720 2014-12-02T22:20:42 reference_create: validate loose names Validate loose reference names on Win32.
Edward Thomson a64119e3 2014-11-25T18:13:00 checkout: disallow bad paths on win32 Disallow: 1. paths with trailing dot 2. paths with trailing space 3. paths with trailing colon 4. paths that are 8.3 short names of .git folders ("GIT~1") 5. paths that are reserved path names (COM1, LPT1, etc). 6. paths with reserved DOS characters (colons, asterisks, etc) These paths would (without \\?\ syntax) be elided to other paths - for example, ".git." would be written as ".git". As a result, writing these paths literally (using \\?\ syntax) makes them hard to operate with from the shell, Windows Explorer or other tools. Disallow these.
Vicent Marti 0d388adc 2014-11-25T00:58:03 index: Check for valid paths before creating an index entry
Vicent Marti 62155257 2014-11-25T00:14:52 tree: Check for `.git` with case insensitivy
Edward Thomson cceae9a2 2014-12-01T13:09:58 win32: use NT-prefixed "\\?\" paths When turning UTF-8 paths into UCS-2 paths for Windows, always use the \\?\-prefixed paths. Because this bypasses the system's path canonicalization, handle the canonicalization functions ourselves. We must: 1. always use a backslash as a directory separator 2. only use a single backslash between directories 3. not rely on the system to translate "." and ".." in paths 4. remove trailing backslashes, except at the drive root (C:\)
Carlos Martín Nieto 4fd2bda9 2014-12-16T10:25:45 local: send 'counting objects' output Pretend we have a git process at the other end by creating a similar progress output when inserting objects into the packbuilder.
Carlos Martín Nieto 26186b15 2014-12-14T21:01:19 fetch: remove the prune setter This option does not get persisted to disk, which makes it different from the rest of the setters. Remove it until we go all the way. We still respect the configuration option, and it's still possible to perform a one-time prune by calling the function.
Carlos Martín Nieto 59ff8b67 2014-12-14T18:24:54 fetch: perform prune in separate steps For each remote-tracking branch we want to remove, we need to consider it against every other refspec in case we have overlapping refspecs, such as with refs/heads/*:refs/remotes/origin/* refs/pull/*/head:refs/remotes/origin/pr/* as we'd otherwise remove too many refspecs. Create a list of condidates, which are the references matching the rhs of any active refspec and then filter that list by removing those entries for which we find a remove reference with any active refspec. Those which are left after this are removed.
Carlos Martín Nieto 8c13eaed 2014-12-14T17:00:54 fetch: prune after updating tips This makes a fetch+prune more similar to a connect+prune and makes it more likely that we see errors in the decision to prune a reference.
David Calavera 439e19f6 2014-11-12T17:12:30 Test that prune overlapping works as expected.
Linquize 5f473947 2014-09-22T23:17:35 remote: prune refs when fetching
Carlos Martín Nieto 263b1d6e 2014-12-12T08:29:43 Make the OpenSSL locking function warnings more severe Our git_openssl_set_locking() would ideally not exist. Make it clearer that we provide it as a last resort and you should prefer anything else.
Carlos Martín Nieto d524b2d3 2014-12-10T17:23:33 push: fold unpack_ok() into finish() The push cannot be successful if we sent a bad packfile. We should return an error in that case instead of storing it elsewhere.
Edward Thomson cd305c2f 2014-12-10T11:30:28 Merge pull request #2678 from libgit2/cmn/io-stream Introduce stackable IO streams
Carlos Martín Nieto a2fd56ab 2014-12-10T16:22:50 Fix a couple of compiler warnings
Carlos Martín Nieto 49ae22ba 2014-12-10T01:38:52 stream: constify the write buffer
Carlos Martín Nieto 1b75c29e 2014-11-02T11:17:01 gitno: remove code which is no longer needed Most of the network-facing facilities have been copied to the socket and openssl streams. No code now uses these functions directly anymore, so we can now remove them.
Carlos Martín Nieto 4fd4341f 2014-11-02T10:52:03 ssh: use socket_stream to perform the connection Having an ssh stream would require extra work for stream capabilities we don't need anywhere else (oob auth and command execution) so for now let's move away from the gitno connection to use socket_stream. We can introduce an ssh stream interface if and as we need it.
Carlos Martín Nieto b6f5464e 2014-11-01T21:35:06 Port HTTP(S) to the new stream API
Carlos Martín Nieto 02b4c1e2 2014-11-01T16:58:20 Port the TCP transport to the new stream API
Carlos Martín Nieto 468d7b11 2014-11-01T15:19:54 Add an OpenSSL IO stream This unfortunately isn't as stackable as could be possible, as it hard-codes the socket stream. This is because the method of using a custom openssl BIO is not clear, and we do not need this for now. We can still bring this in if and as we need it.
Carlos Martín Nieto dd4ff2c9 2014-11-01T12:35:54 Introduce stackable IO streams We currently have gitno for talking over TCP, but this needs to know about both plaintext and OpenSSL connections and the code has gotten somewhat messy with ifdefs determining which version of the function should be called. In order to clean this up and abstract away the details of sending over the different types of streams, we can instead use an interface and stack stream implementations. We may not be able to use the stackability with all streams, but we are definitely be able to use the abstraction which is currently spread between different bits of gitno.