summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Bump version to 0.23.4v0.23.4maint/v0.23Carlos Martín Nieto2015-11-121-2/+2
|
* Fix warnings and a leakCarlos Martín Nieto2015-11-083-2/+3
|
* Merge pull request #3501 from libgit2/cmn/for-v23Edward Thomson2015-11-0557-286/+1035
|\ | | | | Backports for v0.23
| * Add test casecmn/for-v23Vicent Marti2015-11-048-0/+30
| |
| * merge-base: StyleVicent Marti2015-11-041-1/+6
| |
| * merge-base: Do not read parents from the rootVicent Marti2015-11-041-1/+1
| |
| * merge-base: Remove redundant merge basesVicent Marti2015-11-042-22/+166
| |
| * Fix build for custom transport usersLeo Yang2015-11-041-0/+1
| | | | | | | | | | We should explicitly include the declaration of git_strarray from "include/git2/sys/transport.h"
| * git: put NULL check at the topCarlos Martín Nieto2015-11-041-2/+5
| |
| * git: accept NULL as argument to its stream freeCarlos Martín Nieto2015-11-041-2/+2
| |
| * Prevent segfault when parsing a reflog with oid parse errorStjepan Rajko2015-11-042-1/+44
| | | | | | | | | | | | Using calloc instead of malloc because the parse error will lead to an immediate free of committer (and its properties, which can segfault on free if undefined - test_refs_reflog_reflog__reading_a_reflog_with_invalid_format_returns_error segfaulted before the fix). #3458
| * reuc: Be smarter when inserting new REUC entriesVicent Marti2015-11-041-19/+16
| | | | | | | | | | | | | | | | | | | | Inserting new REUC entries can quickly become pathological given that each insert unsorts the REUC vector, and both subsequent lookups *and* insertions will require sorting it again before being successful. To avoid this, we're switching to `git_vector_insert_sorted`: this keeps the REUC vector constantly sorted and lets us use the `on_dup` callback to skip an extra binary search on each insertion.
| * Fix docs typo geterr_clear -> giterr_clearStjepan Rajko2015-11-041-1/+1
| |
| * xdiff: reference util.h in parent directoryEdward Thomson2015-11-041-1/+1
| | | | | | | | | | | | Although CMake will correctly configure include directories for us, some people may use their own build system, and we should reference `util.h` based on where it actually lives.
| * diff: ignore nsecs when diffingEdward Thomson2015-11-041-1/+3
| | | | | | | | | | | | | | | | | | Although our index contains the literal time present in the index, we do not read nanoseconds from disk, and thus we should not use them in any comparisons, lest we always think our working directory is dirty. Guard this behind a `GIT_USE_NSECS` for future improvement.
| * index: test that we round-trip nsecsEdward Thomson2015-11-0413-0/+93
| | | | | | | | | | | | | | Test that nanoseconds are round-tripped correctly when we read an index file that contains them. We should, however, ignore them because we don't understand them, and any new entries in the index should contain a `0` nsecs field, while existing preserving entries.
| * inttypes.h is built-in header file since MSVC 2013Linquize2015-11-041-1/+1
| | | | | | | | | | | | | | The reason is that the types defined in libgit2's inttypes.h collide with system inttypes.h 3rd party library header files may directly reference MSVC's built-in inttypes.h Fixes #3476
| * win32: add c linkage guard around inttypes.h inclusionEdward Thomson2015-11-041-6/+8
| |
| * signature: Strip crud just like Git doesVicent Marti2015-11-043-3/+24
| |
| * odb: Prioritize alternate backendsVicent Marti2015-11-042-12/+16
| | | | | | | | | | | | | | | | | | | | | | | | For most real use cases, repositories with alternates use them as main object storage. Checking the alternate for objects before the main repository should result in measurable speedups. Because of this, we're changing the sorting algorithm to prioritize alternates *in cases where two backends have the same priority*. This means that the pack backend for the alternate will be checked before the pack backend for the main repository *but* both of them will be checked before any loose backends.
| * odb: Be smarter when refreshing backendsVicent Marti2015-11-042-154/+159
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In the current implementation of ODB backends, each backend is tasked with refreshing itself after a failed lookup. This is standard Git behavior: we want to e.g. reload the packfiles on disk in case they have changed and that's the reason we can't find the object we're looking for. This behavior, however, becomes pathological in repositories where multiple alternates have been loaded. Given that each alternate counts as a separate backend, a miss in the main repository (which can potentially be very frequent in cases where object storage comes from the alternate) will result in refreshing all its packfiles before we move on to the alternate backend where the object will most likely be found. To fix this, the code in `odb.c` has been refactored as to perform the refresh of all the backends externally, once we've verified that the object is nowhere to be found. If the refresh is successful, we then perform the lookup sequentially through all the backends, skipping the ones that we know for sure weren't refreshed (because they have no refresh API). The on-disk pack backend has been adjusted accordingly: it no longer performs refreshes internally.
| * revwalk: make commit list use 64 bits for timeCarlos Martín Nieto2015-11-043-4/+39
| | | | | | | | | | | | | | | | We moved the "main" parsing to use 64 bits for the timestamp, but the quick parsing for the revwalk did not. This means that for large timestamps we fail to parse the time and thus the walk. Move this parser to use 64 bits as well.
| * CMake: be more explicit with python errorsCarlos Martín Nieto2015-11-041-1/+6
| | | | | | | | | | There's been a few reports of users not understanding what the python error means, so spell out the options they have.
| * qsort_r/qsort_s: detect their supportEdward Thomson2015-11-042-18/+23
| |
| * p_futimes: support using futimens when availableEdward Thomson2015-11-042-1/+20
| |
| * openssl: don't try to teardown an unconnected SSL contextCarlos Martín Nieto2015-11-041-1/+6
| | | | | | | | | | | | SSL_shutdown() does not like it when we pass an unitialized ssl context to it. This means that when we fail to connect to a host, we hide the error message saying so with OpenSSL's indecipherable error message.
| * win32::longpath: don't print pathEdward Thomson2015-11-041-2/+0
| |
| * Fix binary diffsGuille -bisho-2015-11-042-8/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git expects an empty line after the binary data: literal X ...binary data... <empty_line> The last literal block of the generated patches were not containing the required empty line. Example: diff --git a/binary_file b/binary_file index 3f1b3f9098131cfecea4a50ff8afab349ea66d22..86e5c1008b5ce635d3e3fffa4434c5eccd8f00b6 100644 GIT binary patch literal 8 Pc${NM&PdElPvrst3ey5{ literal 6 Nc${NM%g@i}0ssZ|0lokL diff --git a/binary_file2 b/binary_file2 index 31be99be19470da4af5b28b21e27896a2f2f9ee2..86e5c1008b5ce635d3e3fffa4434c5eccd8f00b6 100644 GIT binary patch literal 8 Pc${NM&PdElPvrst3ey5{ literal 13 Sc${NMEKbZyOexL+Qd|HZV+4u- git apply of that diff results in: error: corrupt binary patch at line 9: diff --git a/binary_file2 b/binary_file2 fatal: patch with only garbage at line 10 The proper formating is: diff --git a/binary_file b/binary_file index 3f1b3f9098131cfecea4a50ff8afab349ea66d22..86e5c1008b5ce635d3e3fffa4434c5eccd8f00b6 100644 GIT binary patch literal 8 Pc${NM&PdElPvrst3ey5{ literal 6 Nc${NM%g@i}0ssZ|0lokL diff --git a/binary_file2 b/binary_file2 index 31be99be19470da4af5b28b21e27896a2f2f9ee2..86e5c1008b5ce635d3e3fffa4434c5eccd8f00b6 100644 GIT binary patch literal 8 Pc${NM&PdElPvrst3ey5{ literal 13 Sc${NMEKbZyOexL+Qd|HZV+4u-
| * win32: test checkout msg on long path errEdward Thomson2015-11-041-0/+62
| |
| * win32: propogate filename too long errorsEdward Thomson2015-11-041-8/+15
| |
| * repository: only reserve repo dirs in the workdirEdward Thomson2015-11-041-4/+20
| | | | | | | | | | | | | | | | | | | | Check that the repository directory is beneath the workdir before adding it to the list of reserved paths. If it is not, then there is no possibility of checking out files into it, and it should not be a reserved word. This is a particular problem with submodules where the repo directory may be in the super's .git directory.
| * pkg-config: fix directory references in libgit2.pcDominique Leuenberger2015-11-042-2/+20
| | | | | | | | | | | | | | | | | | | | | | | | Before: libdir=/usr//usr/lib64 includedir=/usr//usr/include After: libdir=/usr/lib64 includedir=/usr/include (note the duplication of /usr in the before case)
| * win32: return EACCES in `p_lstat`Edward Thomson2015-11-041-2/+9
| | | | | | | | | | | | Don't coalesce all errors into ENOENT. At least identify EACCES. All callers should be handling this case already, as the POSIX `lstat` will return this.
| * checkout: overwrite files with differing modesEdward Thomson2015-11-042-10/+8
| | | | | | | | | | | | | | | | | | | | | | When a file exists on disk and we're checking out a file that differs in executableness, remove the old file. This allows us to recreate the new file with p_open, which will take the new mode into account and handle setting the umask properly. Remove any notion of chmod'ing existing files, since it is now handled by the aforementioned removal and was incorrect, as it did not take umask into account.
| * checkout::tree tests: don't use hardcoded modeEdward Thomson2015-11-041-8/+8
| |
| * checkout::tree tests: don't use static bufferEdward Thomson2015-11-041-6/+9
| |
| * Check that checkout preserves filemode in working directory.Matti Virolainen2015-11-041-0/+63
| |
| * Check that an executable in index is not an executable after checkout.Matti Virolainen2015-11-041-0/+11
| |
| * Removing memory leak in mempack's freeBryan Woods2015-11-041-2/+6
| | | | | | | | It calls git_mempack_reset which reallocates the object array. git_oidmap_free is now called on it explicitly.
| * Fixing dangling pointers in git_mempack_resetBryan Woods2015-11-041-0/+3
| | | | | | | | git_mempack_reset was leaving free'd pointers in the oidmap.
| * added a single line of additional error reporting from libssh2 when failing ↵Max Leske2015-11-041-1/+3
| | | | | | | | to retrieve the list of authentication methods
| * filebuf: follow symlinks when creating a lock fileCarlos Martín Nieto2015-11-042-3/+134
|/ | | | | | | We create a lockfile to update files under GIT_DIR. Sometimes these files are actually located elsewhere and a symlink takes their place. In that case we should lock and update the file at its final location rather than overwrite the symlink.
* Merge pull request #3452 from ethomson/0.23_xdiffv0.23.3Edward Thomson2015-10-0517-157/+337
|\ | | | | 0.23 xdiff
| * Update version to 0.23.3Edward Thomson2015-10-051-2/+2
| |
| * blame: guard xdiff calls for large filesEdward Thomson2015-10-053-9/+29
| |
| * diff: don't feed large files to xdiffEdward Thomson2015-10-058-20/+23
| |
| * merge_file: treat large files as binaryEdward Thomson2015-10-055-82/+170
| | | | | | | | | | | | | | | | xdiff craps the bed on large files. Treat very large files as binary, so that it doesn't even have to try. Refactor our merge binary handling to better match git.git, which looks for a NUL in the first 8000 bytes.
| * xdiff: convert size variables to size_tEdward Thomson2015-10-013-50/+110
| |
| * GITERR_CHECK_ALLOC_ADDn: multi-arg addersEdward Thomson2015-10-011-0/+9
|/
* Bump version to 0.23.2v0.23.2Carlos Martín Nieto2015-09-051-2/+2
|