- 12 Aug, 2016 1 commit
-
-
The .gitignore file allows for patterns which unignore previous ignore patterns. When unignoring a previous pattern, there are basically three cases how this is matched when no globbing is used: 1. when a previous file has been ignored, it can be unignored by using its exact name, e.g. foo/bar !foo/bar 2. when a file in a subdirectory has been ignored, it can be unignored by using its basename, e.g. foo/bar !bar 3. when all files with a basename are ignored, a specific file can be unignored again by specifying its path in a subdirectory, e.g. bar !foo/bar The first problem in libgit2 is that we did not correctly treat the second case. While we verified that the negative pattern matches the tail of the positive one, we did not verify if it only matches the basename of the positive pattern. So e.g. we would have also negated a pattern like foo/fruz_bar !bar Furthermore, we did not check for the third case, where a basename is being unignored in a certain subdirectory again. Both issues are fixed with this commit.
Patrick Steinhardt committed
-
- 04 Aug, 2016 10 commits
-
-
odb: freshen existing objects when writing
Edward Thomson committed -
Since writing multiple objects may all already exist in a single packfile, avoid freshening that packfile repeatedly in a tight loop. Instead, only freshen pack files every 2 seconds.
Edward Thomson committed -
When writing an object, we calculate its OID and see if it exists in the object database. If it does, we need to freshen the file that contains it.
Edward Thomson committed -
sysdir: don't assume an empty dir is uninitialized
Carlos Martín Nieto committed -
Fix outdated comment
Edward Thomson committed -
Enable https transport for custom TLS streams
Edward Thomson committed -
Don't try to determine when sysdirs are uninitialized. Instead, simply initialize them all at `git_libgit2_init` time and never try to reinitialize, except when consumers explicitly call `git_sysdir_set`. Looking at the buffer length is especially problematic, since there may no appropriate path for that value. (For example, the Windows-specific programdata directory has no value on non-Windows machines.) Previously we would continually trying to re-lookup these values, which could get racy if two different threads are each calling `git_sysdir_get` and trying to lookup / clear the value simultaneously.
Edward Thomson committed -
mwindow: init mwindow files in git_libgit2_init
Edward Thomson committed -
Edward Thomson committed
-
git_diff_file: move `id_abbrev`
Edward Thomson committed
-
- 03 Aug, 2016 1 commit
-
-
Move `id_abbrev` to a more reasonable place where it packs more nicely (before anybody starts using it).
Edward Thomson committed
-
- 02 Aug, 2016 1 commit
-
-
Fix leaks, some warnings and an error
Edward Thomson committed
-
- 24 Jul, 2016 13 commits
-
-
Edward Thomson committed
-
Coverity user model
Edward Thomson committed -
remote: Handle missing config values when deleting a remote
Edward Thomson committed -
And give it a default so that some compilers don't (unnecessarily) complain.
Edward Thomson committed -
Edward Thomson committed
-
Edward Thomson committed
-
After 1cd65991, we were passing a pointer to an `unsigned long` to a function that now expected a pointer to a `size_t`. These types differ on 64-bit Windows, which means that we trash the stack. Use `size_t`s in the packbuilder to avoid this.
Edward Thomson committed -
Edward Thomson committed
-
Edward Thomson committed
-
Compare the preimage to the image; don't compare the preimage to itself.
Edward Thomson committed -
Edward Thomson committed
-
ci: point to the homebrew libssh2 install
Edward Thomson committed -
Edward Thomson committed
-
- 23 Jul, 2016 3 commits
-
-
Style guide says // style comments should be avoided.
Richard Ipsum committed -
SSH transport seems to be supported now.
Richard Ipsum committed -
Edward Thomson committed
-
- 15 Jul, 2016 1 commit
-
-
Somehow I ended up with the following in my ~/.gitconfig: [branch "master"] remote = origin merge = master rebase = true I assume something went crazy while I was running the git.git tests some time ago, and that I never noticed until now. This is not a good configuration, but it shouldn't cause problems. But it does. Specifically, if you have this in your config, and you perform the following set of actions: create a remote fetch from that remote create a branch off of the remote master branch called "master" delete the branch delete the remote The remote delete fails with the message "Could not find key 'branch.master.rebase' to delete". This is because it's iterating over the config entries (including the ones in the global config) and believes that there is a master branch which must therefore have these config keys. https://github.com/libgit2/libgit2/issues/3856
David Turner committed
-
- 06 Jul, 2016 1 commit
-
-
wildart committed
-
- 05 Jul, 2016 3 commits
-
-
Add get user agent functionality.
Edward Thomson committed -
Fixed bug while parsing INT64_MIN
Edward Thomson committed -
Andrius Bentkus committed
-
- 01 Jul, 2016 2 commits
-
-
find_repo: Clean up and simplify logic
Edward Thomson committed -
Add GIT_REPOSITORY_OPEN_FROM_ENV flag to respect $GIT_* environment vars
Edward Thomson committed
-
- 30 Jun, 2016 3 commits
-
-
Document GIT_REPOSITORY_OPEN_NO_DOTGIT and GIT_REPOSITORY_OPEN_FROM_ENV.
Josh Triplett committed -
Josh Triplett committed
-
Include conflicts in `git_index_read_index`
Edward Thomson committed
-
- 29 Jun, 2016 1 commit
-
-
Ensure that we include conflicts when calling `git_index_read_index`, which will remove conflicts in the index that do not exist in the new target, and will add conflicts from the new target.
Edward Thomson committed
-