summaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Introduce core.protectHFS and core.protectNTFShf/libgit2sharp_020_patchEdward Thomson2014-12-174-41/+100
| | | | | | 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-172-0/+98
| | | | | | | | 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-171-1/+1
| | | | Validate loose reference names on Win32.
* checkout: disallow bad paths on win32Edward Thomson2014-12-1711-90/+365
| | | | | | | | | | | | | | | 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-171-15/+95
|
* tree: Check for `.git` with case insensitivyVicent Marti2014-12-171-1/+1
|
* win32: use NT-prefixed "\\?\" pathsEdward Thomson2014-12-178-87/+398
| | | | | | | | | | | | 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:\)
* git_remote_rename: propogate GIT_ENOTFOUNDEdward Thomson2014-11-031-1/+1
|
* Merge pull request #2679 from jfultz/missing-includeEdward Thomson2014-11-031-6/+12
|\ | | | | Make config reading continue after hitting a missing include file.
| * Clean up issues include.path issues found during code review.John Fultz2014-11-021-2/+9
| | | | | | | | | | | | | | | | * 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-011-7/+6
| | | | | | | | | | | | | | | | | | | | | | 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-031-1/+1
|\ \ | | | | | | 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-271-1/+1
| | | | | | | | | | | | 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.
* | | Make the Visual Studio compiler happyJacques Germishuys2014-11-031-7/+8
|/ /
* | Fixed potential crash with uninitialized variablesPierre-Olivier Latour2014-10-272-2/+2
| |
* | Removed some useless variable assignmentsPierre-Olivier Latour2014-10-274-6/+1
|/
* 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.
* | 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>
* | rebase: updates based on PR commentsEdward Thomson2014-10-261-17/+31
| |
* | s/git_merge_head/git_annotated_commitEdward Thomson2014-10-265-178/+205
| | | | | | | | | | Rename git_merge_head to git_annotated_commit, as it becomes used in more operations than just merge.
* | rebase: clean up some warnings and memory leaksEdward Thomson2014-10-261-26/+14
| |
* | rebase: oid member of operation should be constEdward Thomson2014-10-261-2/+2
| |
* | git_rebase: iterators for operationsEdward Thomson2014-10-261-0/+21
| |
* | rebase: preload all operationsEdward Thomson2014-10-261-111/+151
| |
* | rebase: init/open a git_rebase objectEdward Thomson2014-10-261-234/+276
| |
* | git_rebase_next: provide info about the operationEdward Thomson2014-10-261-2/+9
| |
* | git_rebase_finish: rewrite notes when finishing rebaseEdward Thomson2014-10-261-16/+150
| |
* | Introduce `git_note_author`, `git_note_committer`Edward Thomson2014-10-262-4/+34
| |
* | git_rebase_commit: write HEAD's reflog appropriatelyEdward Thomson2014-10-264-34/+58
| |
* | Introduce git_rebase_finish to complete a rebaseEdward Thomson2014-10-261-1/+62
| |
* | git_rebase_commit: drop already-picked commitsEdward Thomson2014-10-261-4/+15
| | | | | | | | | | | | Already cherry-picked commits should not be re-included. If all changes included in a commit exist in the upstream, then we should error with GIT_EAPPLIED.
* | Introduce git_rebase_commitEdward Thomson2014-10-263-11/+122
| | | | | | | | Commit the current patch of a rebase process.
* | git_rebase_next: write conflicts nicely during rebaseEdward Thomson2014-10-261-18/+102
| |
* | Introduce git_rebase_nextEdward Thomson2014-10-261-0/+156
| | | | | | | | | | | | `git_rebase_next` will apply the next patch (or cherry-pick) operation, leaving the results checked out in the index / working directory so that consumers can resolve any conflicts, as appropriate.
* | Introduce git_rebase_abortEdward Thomson2014-10-261-0/+128
| | | | | | | | | | Abort an in-progress rebase and move the working directory and repository back to the ORIG_HEAD state.
* | git_reset: const the git_signature argEdward Thomson2014-10-261-1/+1
| |
* | Introduce git_rebase to set up a rebase sessionEdward Thomson2014-10-264-24/+357
| | | | | | | | | | | | Introduce `git_rebase` to set up a rebase session that can then be continued. Immediately, only merge-type rebase is supported.
* | Remove unused warning on non-win32Edward Thomson2014-10-261-1/+1
| |
* | iterator: free paths when skipping themEdward Thomson2014-10-261-1/+4
| |
* | mwindow: clean up pack map at shutdownEdward Thomson2014-10-261-0/+2
| |
* | global: clean up openssl_locks on shutdownEdward Thomson2014-10-261-1/+7
| |
* | Cleanup memory leak in ssh transportEdward Thomson2014-10-261-34/+28
| |