summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* | | Merge pull request #3229 from git-up/build_warningsCarlos Martín Nieto2015-06-173-2/+2
|\ \ \ | | | | | | | | Fixed Xcode 6.1 build warnings
| * | | Fixed Xcode 6.1 build warningsPierre-Olivier Latour2015-06-173-2/+2
|/ / /
* | | Merge pull request #3227 from jeffhostetler/memory_leak__tests_network_refspecsCarlos Martín Nieto2015-06-171-0/+2
|\ \ \ | |/ / |/| | Fix memory leak in tests/network/refspecs.c
| * | Fix memory leak in tests/network/refspecs.cJeff Hostetler2015-06-171-0/+2
|/ /
* | Merge pull request #3219 from libgit2/cmn/racy-diffCarlos Martín Nieto2015-06-1714-7/+229
|\ \ | | | | | | Zero out racily-clean entries' file_size
| * | checkout: allow workdir to contain checkout targetethomson/racy-diffcmn/racy-diffEdward Thomson2015-06-161-3/+14
| | | | | | | | | | | | | | | | | | When checking out some file 'foo' that has been modified in the working directory, allow the checkout to proceed (do not conflict) if 'foo' is identical to the target of the checkout.
| * | merge::workdir::dirty: tick idx to defeat racy-gitEdward Thomson2015-06-161-0/+12
| | |
| * | Introduce p_utimes and p_futimesEdward Thomson2015-06-166-6/+110
| | | | | | | | | | | | | | | | | | Provide functionality to set the time on a filesystem entry, using utimes or futimes on POSIX type systems or SetFileTime on Win32.
| * | tests: tick the index when we count OID calculationsCarlos Martín Nieto2015-06-165-19/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | These tests want to test that we don't recalculate entries which match the index already. This is however something we force when truncating racily-clean entries. Tick the index forward as we know that we don't perform the modifications which the racily-clean code is trying to avoid.
| * | crlf: tick the index forward to work around racy-git behaviourCarlos Martín Nieto2015-06-162-4/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In order to avoid racy-git, we zero out the file size for entries with the same timestamp as the index (or during the initial checkout). This is the case in a couple of crlf tests, as the code is fast enough to do everything in the same second. As we know that we do not perform the modification just after writing out the index, which is what this is designed to work around, tick the mtime of the index file such that it doesn't agree with the files anymore, and we do not zero out these entries.
| * | index: zero the size of racily-clean entriesCarlos Martín Nieto2015-06-161-0/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If a file entry has the same timestamp as the index itself, it is considered racily-clean, as it may have been modified after the index was written, but during the same second. We take extra steps to check the contents, but this is just one part of avoiding races. For files which do have changes but have not been updated in the index, updating the on-disk index means updating its timestamp, which means we would no longer recognise these entries as racy and we would trust the timestamp to tell us whether they have changed. In order to work around this, git zeroes out the file-size field in entries with the same timestamp as the index in order to force the next diff to check the contents. Do so in libgit2 as well.
| * | diff: add failing test for racy-git in the indexCarlos Martín Nieto2015-06-161-0/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We update the index and then immediately change the contents of the file. This makes the diff think there are no changes, as the timestamp of the file agrees with the cached data. This is however a bug, as the file has obviously changed contents. The test is a bit fragile, as it assumes that the index writing and the following modification of the file happen in the same second, but it's enough to show the issue.
* | | Merge pull request #3209 from libgit2/cmn/double-authorEdward Thomson2015-06-162-0/+17
|\ \ \ | | | | | | | | commit: ignore multiple author fields
| * | | commit: ignore multiple author fieldscmn/double-authorCarlos Martín Nieto2015-06-112-0/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some tools create multiple author fields. git is rather lax when parsing them, although fsck does complain about them. This means that they exist in the wild. As it's not too taxing to check for them, and there shouldn't be a noticeable slowdown when dealing with correct commits, add logic to skip over these extra fields when parsing the commit.
* | | | Merge pull request #3225 from libgit2/cmn/url-emptyEdward Thomson2015-06-161-2/+6
|\ \ \ \ | | | | | | | | | | remote: return EINVALIDSPEC when given an empty URL
| * | | | remote: return EINVALIDSPEC when given an empty URLcmn/url-emptyCarlos Martín Nieto2015-06-161-2/+6
|/ / / / | | | | | | | | | | | | | | | | | | | | This is what we used to return in the settter and there's tests in bindings which ask for this. There's no particular reason to stop doing so.
* | | | Merge pull request #3221 from git-up/build_warningsCarlos Martín Nieto2015-06-167-17/+24
|\ \ \ \ | |_|/ / |/| | | Fixed Xcode 6.1 build warnings
| * | | Fixed Xcode 6.1 build warningsPierre-Olivier Latour2015-06-157-17/+24
| | | |
* | | | Merge pull request #3216 from dprofeta/fixTransactionVisibilityEdward Thomson2015-06-151-0/+1
|\ \ \ \ | |/ / / |/| | | Fix visibility of transaction symbol
| * | | Fix visibility of transaction symbolDamien PROFETA2015-06-121-0/+1
| | | | | | | | | | | | | | | | | | | | Transaction.c did not include the visibility definition of its symbol (that are in git2/transaction.h) and so was by default hidden.
* | | | Merge pull request #3220 from libgit2/cmn/readdirEdward Thomson2015-06-152-5/+4
|\ \ \ \ | | | | | | | | | | path: remove unnecessary readdir_r usage
| * | | | path: remove unnecessary readdir_r usagecmn/readdirCarlos Martín Nieto2015-06-152-5/+4
|/ / / / | | | | | | | | | | | | | | | | | | | | Arguably all uses of readdir_r are unnecessary, but in this case especially so, as the directory handle only exists within this function, so we don't race with anybody.
* | | | Merge pull request #3171 from libgit2/cmn/link-fallbackCarlos Martín Nieto2015-06-151-2/+15
|\ \ \ \ | | | | | | | | | | clone: fall back to copying when linking does not work
| * | | | clone: fall back to copying when linking does not workcmn/link-fallbackCarlos Martín Nieto2015-06-011-2/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We use heuristics to make a decent guess at when we can save time and space by linking object files during a clone. Unfortunately checking the device id isn't enough, as those would be the same during e.g. a bind-mount, but the OS still does not allow us to link between mounts of the same filesystem. If we fail to perform the links, fall back to copying the contents into a new file as a last attempt.
* | | | | Fix in stransport_stream.c for usage of SecCopyErrorMessageString(), which ↵Logan Collins2015-06-151-0/+5
| | | | | | | | | | | | | | | | | | | | is unavailable to iOS targets.
* | | | | Merge pull request #3177 from ethomson/binary_diffCarlos Martín Nieto2015-06-1520-376/+926
|\ \ \ \ \ | | | | | | | | | | | | Binary diffs: store deltas in the diff structure, include binary data in diff callbacks
| * | | | | binary diff: document changes in CHANGELOGEdward Thomson2015-06-121-0/+4
| | | | | |
| * | | | | patch: include diff options on blob->blob diffsEdward Thomson2015-06-121-1/+2
| | | | | |
| * | | | | binary diff: test binary blob to blob testsEdward Thomson2015-06-121-0/+130
| | | | | |
| * | | | | diff: introduce binary diff callbacksEdward Thomson2015-06-1218-375/+691
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Introduce a new binary diff callback to provide the actual binary delta contents to callers. Create this data from the diff contents (instead of directly from the ODB) to support binary diffs including the workdir, not just things coming out of the ODB.
| * | | | | binary diff: test index->workdir binary diffsEdward Thomson2015-06-121-0/+99
| | |/ / / | |/| | |
* | | | | Merge pull request #3217 from jeffhostetler/leak_checkout_icaseCarlos Martín Nieto2015-06-151-0/+2
|\ \ \ \ \ | | | | | | | | | | | | Fix leaks in tests/checkout/icase
| * | | | | Fix leaks in tests/checkout/icaseJeff Hostetler2015-06-121-0/+2
| | | | | |
* | | | | | Merge pull request #3215 from jeffhostetler/windows_leak_diriterCarlos Martín Nieto2015-06-121-0/+2
|\ \ \ \ \ \ | |_|/ / / / |/| | | | | Fix memory leak on windows in diriter.
| * | | | | Fix memory leak on windows in diriter.Jeff Hostetler2015-06-121-0/+2
| |/ / / /
* | | | | Merge pull request #3208 from git-up/secure_transportCarlos Martín Nieto2015-06-121-20/+36
|\ \ \ \ \ | | | | | | | | | | | | Fixed some Secure Transport issues on OS X
| * | | | | Fixed some Secure Transport issues on OS XPierre-Olivier Latour2015-06-111-20/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The read and write callbacks passed to SSLSetIOFuncs() have been rewritten to match the implementation used on opensource.apple.com and other open source projects like VLC. This change also fixes a bug where the read callback could get into an infinite loop when 0 bytes were read.
* | | | | | Merge pull request #3214 from libgit2/cmn/push-testsCarlos Martín Nieto2015-06-123-5/+10
|\ \ \ \ \ \ | |/ / / / / |/| | | | | travis: fail if we fail the push tests
| * | | | | clone: set the credentials callback during testingcmn/push-testsCarlos Martín Nieto2015-06-121-0/+1
| | | | | |
| * | | | | push: pass the callbacks during setup as wellCarlos Martín Nieto2015-06-121-3/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We need to pass these options in order to have the credentials callback set.
| * | | | | travis: fail if we fail the push testsCarlos Martín Nieto2015-06-121-2/+2
|/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | These tests were not being taken into consideration for the failure of the test. They've been failing for a while now, but we hadn't noticed as Travis was reporting the builds successful.
* | | | | Merge pull request #3155 from mgorny/userpass-constCarlos Martín Nieto2015-06-111-2/+2
|\ \ \ \ \ | |_|_|/ / |/| | | | cred_helpers: Add 'const' qualifiers to git_cred_userpass_payload
| * | | | cred_helpers: Add 'const' qualifiers to git_cred_userpass_payloadMichał Górny2015-05-241-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Make both username & password in git_cred_userpass_payload 'const'. The values are not altered anywhere, and the extra qualifier allows clients to assign 'const' values there.
* | | | | Merge pull request #3205 from ethomson/crlf_queryCarlos Martín Nieto2015-06-114-1/+133
|\ \ \ \ \ | | | | | | | | | | | | Introduce `git_filter_list_contains`
| * | | | | Introduce `git_filter_list_contains`Edward Thomson2015-06-104-1/+133
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `git_filter_list_contains` can be used to query a filter list to determine if a given filter will be run.
* | | | | | Merge pull request #3207 from ethomson/winhttp_eolCarlos Martín Nieto2015-06-111-29/+29
|\ \ \ \ \ \ | | | | | | | | | | | | | | Correct line endings on winhttp.def
| * | | | | | Correct line endings on winhttp.defEdward Thomson2015-06-101-29/+29
| | | | | | |
* | | | | | | Merge pull request #3174 from libgit2/cmn/idx-fill-holeEdward Thomson2015-06-101-3/+4
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | indexer: use lseek to extend the packfile
| * | | | | | | indexer: use lseek to extend the packfilecmn/idx-fill-holeCarlos Martín Nieto2015-06-021-3/+4
| | |_|_|_|/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We've been using `p_ftruncate()` to extend the packfile in order to mmap it and write the new data into it. This works well in the general case, but as truncation does not allocate space in the filesystem, it must do so when we write data to it. The only way the OS has to indicate a failure to allocate space is via SIGBUS which means we tried to write outside the file. This will cause everyone to crash as they don't expect to handle this signal. Switch to using `p_lseek()` and `p_write()` to extend the file in a way which tells the filesystem to allocate the space for the missing data. We can then be sure that we have space to write into.
* | | | | | | Merge pull request #3204 from git-up/git_diff_find_similarEdward Thomson2015-06-101-4/+4
|\ \ \ \ \ \ \ | |_|/ / / / / |/| | | | | | Fixed handling of GIT_DELTA_CONFLICTED in git_diff_find_similar()