summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Always checkout with case sensitive iteratorbindings/libgit2sharp/020_2Edward Thomson2015-01-192-14/+3
| | | | | | | | | 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.
* Introduce test for checkout case-changing renameEdward Thomson2015-01-191-0/+76
|
* checkout tests: cleanup realpath impl on Win32Edward Thomson2015-01-191-36/+6
|
* checkout tests: emulate p_realpath poorly on Win32Edward Thomson2015-01-191-1/+64
|
* checkout: remove files before writing new onesEdward Thomson2015-01-196-27/+207
| | | | | | | 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.
* checkout: drop newline in error messageEdward Thomson2015-01-191-1/+1
|
* checkout tests: nasty symlinksEdward Thomson2015-01-1918-3/+50
| | | | Symbolic links that abuse case insensitivity to write into .git.
* checkout: don't recreate previous directoryEdward Thomson2015-01-192-14/+44
| | | | | Don't bother trying to recreate the previously created directory during checkout, for a modest reduction in the number of stats.
* git_path_join_unrooted: return base lenEdward Thomson2015-01-194-15/+81
| | | | | | | 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.
* checkout: introduce git_checkout_perfdataEdward Thomson2015-01-195-50/+135
| | | | | | | 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.
* Introduce core.protectHFS and core.protectNTFShf/libgit2sharp_020_patchEdward Thomson2014-12-176-44/+151
| | | | | | Validate HFS ignored char ".git" paths when `core.protectHFS` is specified. Validate NTFS invalid ".git" paths when `core.protectNTFS` is specified.
* path: Use UTF8 iteration for HFS charsVicent Marti2014-12-173-81/+132
|
* checkout: disallow bad paths on HFSEdward Thomson2014-12-1753-1/+207
| | | | | | | | 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.
* reference_create: validate loose namesEdward Thomson2014-12-172-4/+46
| | | | Validate loose reference names on Win32.
* checkout: disallow bad paths on win32Edward Thomson2014-12-1794-90/+898
| | | | | | | | | | | | | | | 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.
* index: Check for valid paths before creating an index entryVicent Marti2014-12-172-23/+188
|
* tree: Check for `.git` with case insensitivyVicent Marti2014-12-171-1/+1
|
* win32: use NT-prefixed "\\?\" pathsEdward Thomson2014-12-1710-103/+591
| | | | | | | | | | | | 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:\)
* clar: wide character comparisonsEdward Thomson2014-12-172-0/+42
|
* tests: use p_ instead of posix func directlyEdward Thomson2014-12-171-2/+2
|
* Merge pull request #2686 from ethomson/rename_notfoundCarlos Martín Nieto2014-11-032-1/+10
|\ | | | | Propogate GIT_ENOTFOUND from git_remote_rename
| * git_remote_rename: propogate GIT_ENOTFOUNDEdward Thomson2014-11-032-1/+10
|/
* Merge pull request #2679 from jfultz/missing-includeEdward Thomson2014-11-032-6/+28
|\ | | | | Make config reading continue after hitting a missing include file.
| * Clean up issues include.path issues found during code review.John Fultz2014-11-022-5/+13
| | | | | | | | | | | | | | | | * Error-handling is cleaned up to only let a file-not-found error through, not other sorts of errors. And when a file-not-found error happens, we clean up the error. * Test now checks that file-not-found introduces no error. And other minor cleanups.
| * Make config reading continue after hitting a missing include file.John Fultz2014-11-012-7/+21
| | | | | | | | | | | | | | | | | | | | | | For example, if you have [include] path = foo and foo didn't exist, git_config_open_ondisk() would just give up on the rest of the file. Now it ignores the unresolved include without error and continues reading the rest of the file.
* | Merge pull request #2661 from swisspol/2656Edward Thomson2014-11-033-3/+8
|\ \ | | | | | | Changed context_lines and interhunk_lines to uint32_t to match struct s_xdemitconf
| * | Changed context_lines and interhunk_lines to uint32_t to match struct ↵Pierre-Olivier Latour2014-10-273-3/+8
| | | | | | | | | | | | s_xdemitconf
* | | Merge pull request #2683 from libgit2/cmn/remote-unifyEdward Thomson2014-11-031-21/+2
|\ \ \ | | | | | | | | remote: unify the creation code
| * | | remote: unify the creation codecmn/remote-unifyCarlos Martín Nieto2014-11-021-21/+2
| | | | | | | | | | | | | | | | | | | | | | | | The create function with default refspec is the same as the one with a custom refspec, but it has the default refspec, so we can create the one on top of the other.
* | | | Merge pull request #2680 from libgit2/cmn/invalid-cert-returnEdward Thomson2014-11-031-1/+1
|\ \ \ \ | | | | | | | | | | netops: return GIT_ECERTIFICATE when it fails the basic tests
| * | | | netops: return GIT_ECERTIFICATE when it fails the basic testscmn/invalid-cert-returnCarlos Martín Nieto2014-11-021-1/+1
| | |_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | When we first ask OpenSSL to verify the certfiicate itself (rather than the HTTPS specifics), we should also return GIT_ECERTIFICATE. Otherwise, the caller would consider this as a failed operation rather than a failed validation and not call the user's own validation.
* | | | Merge pull request #2685 from libgit2/cmn/mmap-readableEdward Thomson2014-11-031-4/+2
|\ \ \ \ | | | | | | | | | | Fix segmentation fault observed on OpenBSD/sparc64
| * | | | Fix segmentation fault observed on OpenBSD/sparc64cmn/mmap-readableStefan Sperling2014-11-031-4/+2
| | |/ / | |/| | | | | | | | | | | | | | A non-readable mapping of a file causes an access violation in the pack tests. Always use PROT_READ to work around this.
* | | | Merge pull request #2684 from jacquesg/openssl-windowsEdward Thomson2014-11-031-7/+8
|\ \ \ \ | |/ / / |/| | | Make the Visual Studio compiler happy
| * | | Make the Visual Studio compiler happyJacques Germishuys2014-11-031-7/+8
|/ / /
* | | remote: fix tagopt testCarlos Martín Nieto2014-11-021-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | An anonymous remote wouldn't create remote-tracking branches, so testing we don't create them for TAGS_ALL is nonsensical. Furthermore, the name of the supposed remote-tracking branch was also not one which would have been created had it had a name. Give the remote a name and test that we only create the tags when we pass TAGS_ALL and that we do create the remote-branch branch when given TAGS_AUTO.
* | | merge: talk about the merging state after git_merge()Carlos Martín Nieto2014-11-021-0/+5
|/ / | | | | | | | | Since it's not necessarily obvious, mention the merging state and how to clear it.
* | Merge pull request #2669 from ethomson/revert_test_fixEdward Thomson2014-10-2713-12/+8
|\ \ | | | | | | revert tests: always use core.autocrlf=false in tests
| * | revert tests: always use core.autocrlf=false in testsEdward Thomson2014-10-2713-12/+8
|/ /
* | Merge pull request #2659 from swisspol/static_analysisEdward Thomson2014-10-275-8/+3
|\ \ | |/ |/| Fixed the most obvious Clang static analyzer warnings
| * Fixed potential crash with uninitialized variablesPierre-Olivier Latour2014-10-272-2/+2
| |
| * Removed some useless variable assignmentsPierre-Olivier Latour2014-10-274-6/+1
|/
* Merge pull request #2666 from libgit2/cmn/threadsafe-onEdward Thomson2014-10-273-2/+5
|\ | | | | Flip THREADSAFE's default to ON
| * Flip THREADSAFE's default to ONcmn/threadsafe-onCarlos Martín Nieto2014-10-273-2/+5
| | | | | | | | | | | | Threads are here to stay; and for a while now, users have had to call the initialization function which sets up threads and crypto regardless of whether the library was built threadsafe or not.
* | Merge commit 'refs/pull/2366/head' of github.com:libgit2/libgit2Carlos Martín Nieto2014-10-278-24/+29
|\ \ | |/ |/|
| * Fix compiler warning (git_off_t cast to size_t).Albert Meltzer2014-05-198-24/+29
| | | | | | | | | | | | Use size_t for page size, instead of long. Check result of sysconf. Use size_t for page offset so no cast to size_t (second arg to p_mmap). Use mod instead div/mult pair, so no cast to size_t is necessary.
* | Merge branch 'csware/cleanup'Edward Thomson2014-10-261-8/+6
|\ \
| * | Minor cleanup: Use defined no_check_cert_flags instead of C&P them againSven Strickroth2014-10-261-8/+6
|/ / | | | | | | Signed-off-by: Sven Strickroth <email@cs-ware.de>
* | Merge pull request #2482 from libgit2/ed/rebaseEdward Thomson2014-10-26169-566/+3381
|\ \ | | | | | | Rebase (merge)
| * | rebase: add information to the CHANGELOGed/rebaseEdward Thomson2014-10-261-0/+14
| | |