|
c1770aeb
|
2015-09-08T12:43:36
|
|
Merge pull request #3410 from libgit2/cmn/ssh-embed-again
Revert "Get rid of libssh2 embedding"
|
|
6d6020de
|
2015-09-08T18:34:51
|
|
Merge pull request #3353 from ethomson/wrongcase_add
index: canonicalize directory case when adding
|
|
2964cbea
|
2015-09-08T11:50:08
|
|
Merge pull request #3381 from leoyanggit/index_directory_iterator
New feature: add the ablility to iterate through a directory in index
|
|
a32bc85e
|
2015-08-07T12:43:49
|
|
git_index_add: allow case changing renames
On case insensitive platforms, allow `git_index_add` to provide a new
path for an existing index entry. Previously, we would maintain the
case in an index entry without the ability to change it (except by
removing an entry and re-adding it.)
Higher-level functions (like `git_index_add_bypath` and
`git_index_add_frombuffers`) continue to keep the old path for easier
usage.
|
|
280adb3f
|
2015-08-04T16:51:00
|
|
index: canonicalize directory case when adding
On case insensitive systems, when given a user-provided path in the
higher-level index addition functions (eg `git_index_add_bypath` /
`git_index_add_frombuffer`), examine the index to try to match the
given path to an existing directory.
Various mechanisms can cause the on-disk representation of a folder
to not match the representation in HEAD or the index - for example,
a case changing rename of some file `a/file.txt` to `A/file.txt`
will update the paths in the index, but not rename the folder on
disk.
If a user subsequently adds `a/other.txt`, then this should be stored
in the index as `A/other.txt`.
|
|
e1d27bca
|
2015-09-06T10:51:29
|
|
Merge pull request #3413 from libgit2/cmn/follow-symlink
filebuf: follow symlinks when creating a lock file
|
|
9fd4c9c8
|
2015-09-06T10:50:22
|
|
Merge pull request #3366 from libgit2/cmn/index-hashmap
Use a hashmap for path-based lookups in the index
|
|
d83b2e9f
|
2015-09-05T03:54:06
|
|
filebuf: follow symlinks when creating a lock file
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.
|
|
c097f717
|
2015-08-17T15:02:02
|
|
New API: git_index_find_prefix
Find the first index entry matching a prefix.
|
|
81b76367
|
2015-09-04T13:30:49
|
|
index: put the icase insert choice in macros
This should let us see more clearly what we're doing and avoid the ugly
'if' we need every time we want to interact with the map.
|
|
01fe8374
|
2015-09-03T13:35:15
|
|
Revert "Get rid of libssh2 embedding"
The embedding was removed as a libssh2 release with Windows crypto
support became available, but dependencies are still annoying so this
ahs been requested again.
This reverts commit 20dcb7315cd4c5760c68402998fd9e5a6bf5505d.
|
|
1cef6b9f
|
2015-09-03T11:38:21
|
|
config: correct documentation for non-existent config file
|
|
21e7015c
|
2015-09-01T02:26:11
|
|
Merge pull request #3402 from ethomson/faster_diff
Provide path matching in the iterators (for faster diffs)
|
|
53c2296b
|
2015-08-31T19:41:43
|
|
iterator: better document GIT_DIFF_DISABLE_PATHSPEC_MATCH
|
|
03210cfa
|
2015-08-31T12:12:21
|
|
iterator test: handle case (in)sensitivity
|
|
4d19bced
|
2015-08-30T19:33:18
|
|
iterator test: use new iter opts in fifo test
|
|
d53c8880
|
2015-08-30T19:25:47
|
|
iterator: saner pathlist matching for idx iterator
Some nicer refactoring for index iteration walks.
The index iterator doesn't binary search through the pathlist space,
since it lacks directory entries, and would have to binary search
each index entry and all its parents (eg, when presented with an index
entry of `foo/bar/file.c`, you would have to look in the pathlist for
`foo/bar/file.c`, `foo/bar` and `foo`). Since the index entries and the
pathlist are both nicely sorted, we walk the index entries in lockstep
with the pathlist like we do for other iteration/diff/merge walks.
|
|
56ed415a
|
2015-08-30T19:10:00
|
|
diff: drop `FILELIST_MATCH`
Now that non-pathspec matching diffs are implemented at the iterator
level, drop `FILELIST_MATCH`ing.
|
|
71ef639e
|
2015-08-30T18:57:06
|
|
status test: brackets are now literal
|
|
7b73739f
|
2015-08-30T18:56:39
|
|
checkout: use pathlist-based iterators
|
|
1af84271
|
2015-08-30T18:35:57
|
|
tree_iterator: use a pathlist
|
|
4a0dbeb0
|
2015-08-30T17:06:26
|
|
diff: use new iterator pathlist handling
When using literal pathspecs in diff with `GIT_DIFF_DISABLE_PATHSPEC_MATCH`
turn on the faster iterator pathlist handling.
Updates iterator pathspecs to include directory prefixes (eg, `foo/`)
for compatibility with `GIT_DIFF_DISABLE_PATHSPEC_MATCH`.
|
|
ed38e26d
|
2015-08-30T15:47:49
|
|
Merge pull request #3401 from phatblat/pb/doc-warning
Escape @ in doc comment
|
|
91c9484c
|
2015-08-29T17:46:34
|
|
Escape @ in doc comment
|
|
3273ab3f
|
2015-08-28T20:06:18
|
|
diff: better document GIT_DIFF_PATHSPEC_DISABLE
Document that `GIT_DIFF_PATHSPEC_DISABLE` is not necessarily about
explicit path matching, but also includes matching of directory
names. Enforce this in a test.
|
|
aa06ecaf
|
2015-08-28T19:30:08
|
|
Merge pull request #3352 from ethomson/hidden
win32: ensure hidden files can be staged
|
|
6c9352bf
|
2015-08-28T18:30:39
|
|
iterator: sort subdirs properly with pathlist
When given a pathlist, don't assume that directories sort before
files. Walk through any list of entries sorting before us to make
sure that we've exhausted all entries that *aren't* directories.
Eg, if we're searching for 'foo/bar', and we have a 'foo.c', keep
advancing the pathlist to keep looking for an entry prefixed with
'foo/'.
|
|
810cabb9
|
2015-07-28T20:04:11
|
|
racy-git: TODO to use improved diffing
|
|
ef206124
|
2015-07-28T19:55:37
|
|
Move filelist into the iterator handling itself.
|
|
ed1c6446
|
2015-07-28T11:41:27
|
|
iterator: use an options struct instead of args
|
|
126932eb
|
2015-08-26T17:08:35
|
|
Merge pull request #3399 from arthurschreiber/patch-8
Fix a typo [ci skip]
|
|
fec4a68c
|
2015-08-26T23:08:03
|
|
Fix a typo [ci skip]
|
|
c1322a9e
|
2015-08-25T19:09:38
|
|
Merge pull request #3396 from ethomson/copying
COPYING: include winhttp definition copyright
|
|
afe0ff1a
|
2015-08-25T11:20:37
|
|
COPYING: include winhttp definition copyright
Include the copyright notice from the deps/winhttp/ sources. Move the
LGPL to the bottom of the file (since multiple dependencies are LGPL
licensed) and include the actual copyright notices from the regex sources.
|
|
19475924
|
2015-08-25T00:39:58
|
|
Merge pull request #3355 from palmin/palmin/fix-2830
Include the 4 characters not recognised as hex-number in parse_len
|
|
6b36945d
|
2015-08-20T14:54:22
|
|
Merge pull request #3388 from libgit2/cmn/smart-callbacks
transport: provide a way to get the callbacks
|
|
88201608
|
2015-08-20T14:53:51
|
|
Merge pull request #3389 from libgit2/cmn/old-security
CMake: fall back to OpenSSL on older OS X
|
|
b445940e
|
2015-08-19T12:53:31
|
|
CMake: fall back to OpenSSL on older OS X
Starting at OS X 10.8, the Security framework offers some functions
which are unified across OS X and iOS. These are the functions that we
use.
Older versions of OS X do not have these functions and we fail to
compile. In these situations, fall back to using OpenSSL for our TLS
stream instead.
|
|
57af0b92
|
2015-08-19T00:46:28
|
|
cred: add a free function wrapper
|
|
47ed7e5a
|
2015-08-18T20:55:59
|
|
transport: provide a way to get the callbacks
libgit2 implementations of smart subtransports can simply reach through
the structure, but external implementors cannot.
Add these two functions as a way for the smart subtransports to get the
callbacks as set by the user.
|
|
a38afb95
|
2015-08-18T16:09:28
|
|
Merge pull request #3387 from leoyanggit/build_warning
Fix build warning: implicit declaration of function ‘git_transaction_config_new’
|
|
26ea28f3
|
2015-08-17T15:18:47
|
|
Fix build warning: implicit declaration of function ‘git_transaction_config_new’
|
|
2d1d2bb5
|
2015-08-05T18:50:25
|
|
Include the 4 characters not recognised as hex-number when setting error in parse_len
|
|
252f86e1
|
2015-08-15T13:46:32
|
|
Merge pull request #3377 from dleehr/fix-push-cb
Fix bug in git_smart__push: push_transfer_progress cb is only called at end
|
|
0ba62ba5
|
2015-08-15T13:43:46
|
|
Merge pull request #3384 from libgit2/cmn/regex-nofail
diff: don't error out on an invalid regex
|
|
f594b6ff
|
2015-08-15T13:42:51
|
|
Merge pull request #3383 from libgit2/cmn/http-error
http: propagate the credentials callback's error code
|
|
e451cd5c
|
2015-08-15T18:46:38
|
|
diff: don't error out on an invalid regex
When parsing user-provided regex patterns for functions, we must not
fail to provide a diff just because a pattern is not well
formed. Ignore it instead.
|
|
11bca2d2
|
2015-08-15T18:15:23
|
|
http: propagate the credentials callback's error code
When we ask for credentials, the user may choose to return EUSER to
indicate that an error has happened on its end and it wants to be given
back control.
We must therefore pass that back to the user instead of mentioning that
it was on_headers_complete() that returned an error code. Since we can,
we return the exact error code from the user (other than PASSTHROUGH)
since it doesn't cost anything, though using other error codes aren't
recommended.
|
|
755004ea
|
2015-08-14T22:12:59
|
|
Merge pull request #3362 from libgit2/cmn/curl-proxyauth-any
curl: use the most secure auth method for the proxy
|
|
af1d5239
|
2015-08-14T21:10:12
|
|
index: keep a hash table as well as a vector of entries
The hash table allows quick lookup of specific paths, while we use the
vector for enumeration.
|
|
c232d6c3
|
2015-08-14T21:06:51
|
|
index: add tests around case switching
We were missing tests for switching the case-sensitivity of an index
in-memory and then looking up entries in it.
|
|
ac02a694
|
2015-08-14T21:06:09
|
|
Add a hashmap for index entries
They are hashed case-insensitively and take the stage into account.
|
|
b0b2c722
|
2015-08-13T22:52:52
|
|
Fix bug in git_smart__push: push_transfer_progress cb is never called
The conditional checked cbs->transfer_progress then used the value in cbs->push_transfer_progress. In both cases it should be push_transfer_progress
|
|
9f1af7f2
|
2015-08-13T10:22:50
|
|
Merge pull request #3168 from libgit2/cmn/config-tx
Locking and transactional/atomic updates for config
|
|
1573acbb
|
2015-08-12T08:46:50
|
|
Merge pull request #3372 from libgit2/cmn/mirror-refspec
remote: don't confuse tag auto-follow rules with refspec matching
|
|
5340d63d
|
2015-07-12T12:50:23
|
|
config: perform unlocking via git_transaction
This makes the API for commiting or discarding changes the same as for
references.
|
|
36f784b5
|
2015-06-01T20:02:23
|
|
config: expose locking via the main API
This lock/unlock pair allows for the cller to lock a configuration file
to avoid concurrent operations.
It also allows for a transactional approach to updating a configuration
file. If multiple updates must be made atomically, they can be done
while the config is locked.
|
|
b1667039
|
2015-06-01T19:17:03
|
|
config: implement basic transactional support
When a configuration file is locked, any updates made to it will be done
to the in-memory copy of the file. This allows for multiple updates to
happen while we hold the lock, preventing races during complex
config-file manipulation.
|
|
3ce9e4d2
|
2015-06-01T08:45:15
|
|
config: write the modified file to memory
Instead of writing into the filebuf directly, make the functions to
write the modified config file write into a buffer which can then be
dumped into the lockfile for committing.
This allows us to re-use the same code for modifying a locked
configuration, as we can simply skip the last step of dumping the data
to disk.
|
|
bbbd0cbd
|
2015-08-12T04:04:39
|
|
Merge pull request #3363 from ripdev/master
Forcing libssh2 lib location in CMake
|
|
e3e017d4
|
2015-08-11T22:51:53
|
|
remote: don't confuse tag auto-follow rules with refspec matching
When we're looking to update a tag, we can't stop if the tag auto-follow
rules don't say to update it. The tag might still match the refspec we
were given.
|
|
a8792767
|
2015-08-11T20:44:19
|
|
remote: add failing test for a mirror refspec
While we download the remote's remote-tracking branches, we don't
download the tag. This points to the tag auto-follow rules interfering
with the refspec.
|
|
dc035189
|
2015-08-06T13:02:35
|
|
curl: use the most secure auth method for the proxy
When curl uses a proxy, it will only use Basic unless we prompt it to
try to use the most secure on it has available.
This is something which git did recently, and it seems like a good idea.
|
|
c27b4afc
|
2015-08-06T11:06:17
|
|
Forcing libssh2 lib location
OS X may have libssh2 in diff locations, so CHECK_LIBRARY_EXISTS may check the wrong lib; forcing it to use a found directory.
|
|
98f7bd28
|
2015-08-05T16:26:43
|
|
Merge pull request #3360 from nodegit/master-duplicate-basename-fix
Fix duplicate basenames to support older VS on master
|
|
eba784d2
|
2015-08-05T10:19:06
|
|
Fix duplicate basenames to support older VS
With Visual Studio versions 2008 and older they ignore the full path to files and only check
the basename of the file to find a collision. Additionally, having duplicate basenames can break
other build tools like GYP.
This fixes https://github.com/libgit2/libgit2/issues/3356
|
|
cf716bee
|
2015-08-04T11:18:21
|
|
Merge pull request #3351 from ethomson/error_buf
Error handling: use buffers, improved OOM handling
|
|
ef4857c2
|
2015-08-03T16:50:27
|
|
errors: tighten up git_error_state OOMs a bit more
When an error state is an OOM, make sure that we treat is specially
and do not try to free it.
|
|
bdec3363
|
2015-08-03T17:48:33
|
|
win32: ensure hidden files can be staged
|
|
854b701c
|
2015-08-03T15:02:02
|
|
Merge remote-tracking branches 'upstream/pr/3323' and 'upstream/pr/3329'
|
|
988ea594
|
2015-07-27T10:13:49
|
|
Test: check restored oom error points to static buffer
|
|
0fcfb60d
|
2015-07-27T10:10:18
|
|
Make giterr_restore aware of g_git_oom_error
Allow restoring a previously captured oom error, by
detecting when the captured message pointer points to the
static oom error message. This means there is no need
to strdup the message in giterr_detach.
|
|
25dbcf34
|
2015-07-27T09:59:07
|
|
Make giterr_detach no longer public
|
|
c2f17bda
|
2015-07-23T13:17:08
|
|
Ensure static oom error message not detached
Error messages that are detached are assumed to be dynamically
allocated. Passing a pointer to the static oom error message
can cause an attempt to free the static buffer later. This change
checks if the oom error message is about to be detached and detaches
a copy instead.
|
|
5ef4b860
|
2015-07-23T13:16:19
|
|
Add failing test for capture/restore oom error
|
|
69adb781
|
2015-08-03T08:33:53
|
|
Merge pull request #3325 from libgit2/cmn/filebuf-rename-error
filebuf: remove lockfile upon rename errors
|
|
0dd8daea
|
2015-08-03T08:17:47
|
|
Merge pull request #3344 from libgit2/cmn/add-unreg-submodule
index: stage an unregistered submodule as well
|
|
3cf4eb09
|
2015-08-03T10:29:17
|
|
Merge pull request #3348 from MrHacky/remote-path-with-tilde
Handle ssh:// and git:// urls containing a '~' character.
|
|
ac728c24
|
2015-08-03T07:38:07
|
|
Handle ssh:// and git:// urls containing a '~' character.
For such a path '/~/...' the leading '/' is stripped so the server will
get a path starting with '~' and correctly handle it.
|
|
ea961abf
|
2015-08-01T19:53:53
|
|
index: stage an unregistered submodule as well
We previously added logic to `_add_bypath()` to update a submodule. Go
further and stage the submodule even if it's not registered to behave
like git.
|
|
b426ac90
|
2015-08-01T19:52:25
|
|
index: test that an unregistered submodule gets staged
When we pass the path of a repository to `_bypath()`, we should behave
like git and stage it as a `_COMMIT` regardless of whether it is
registered a a submodule.
|
|
63e5b551
|
2015-07-29T00:08:37
|
|
index: add test for adding an old-style submodule to index
|
|
c400bac4
|
2015-08-01T15:38:04
|
|
Merge pull request #3332 from phatblat/ben/doc-warnings
Resolve documentation warnings
|
|
723babd7
|
2015-07-31T15:36:22
|
|
Merge pull request #3341 from stewid/pedantic-compiler-warning
Remove extra semicolon outside of a function
|
|
c369b379
|
2015-07-31T16:23:11
|
|
Remove extra semicolon outside of a function
Without this change, compiling with gcc and pedantic generates warning:
ISO C does not allow extra ‘;’ outside of a function.
|
|
9d4b7d25
|
2015-07-29T16:46:47
|
|
Merge pull request #3328 from libgit2/cmn/iterator-skip-diriter
iterator: skip over errors in diriter init
|
|
a8058ffd
|
2015-07-29T16:35:08
|
|
Merge pull request #3339 from palmin/palmin-issue-3338
case-insensitive check for WWW-Authenticate header
|
|
31a76374
|
2015-07-29T22:23:00
|
|
case-insensitive check for WWW-Authenticate header
Fixes issue #3338
|
|
6d8f3a51
|
2015-07-28T08:28:33
|
|
Better param docs
|
|
f85fc367
|
2015-07-26T21:12:00
|
|
error: store the error messages in a reusable buffer
Instead of allocating a brand new buffer for each error string we want
to store, we can use a per-thread buffer to store the error string and
re-use the underlying storage. We already use the buffer to format the
string, so this mostly makes that more direct.
|
|
08afd227
|
2015-07-27T18:32:55
|
|
Fix remaining documentation warnings
|
|
2da64edb
|
2015-07-27T18:28:29
|
|
Add -Wdocumentation flag if supported
|
|
f90fbb8d
|
2015-07-27T17:42:08
|
|
Use correct Doxygen trailing comment syntax
|
|
41808d04
|
2015-07-27T14:46:50
|
|
Fix @param names in doc comments
|
|
0e391d85
|
2015-07-27T13:31:06
|
|
iterator: adjust unreadable-dir test to new behaviour
We don't want the iterator to make us stop whenever we hit an unreadable
dir. We should instead move over to the next item.
|
|
12786e0f
|
2015-07-26T17:19:22
|
|
iterator: skip over errors in diriter init
An error here will typically mean that the directory was removed between
the time we iterated the parent and the time we wanted to visit it in
which case we should ignore it.
Other kinds of errors such as permissions (or transient errors) also
better dealt with by pretending we didn't see it.
|
|
19d9beb7
|
2015-07-24T19:22:41
|
|
filebuf: remove lockfile upon rename errors
When we have an error renaming the lockfile, we need to make sure
that we remove it upon cleanup. For this, we need to keep track of
whether we opened the file and whether the rename succeeded.
If we did create the lockfile but the rename did not succeed, we
remove the lockfile. This won't protect against all errors, but
the most common ones (target file is open) does get handled.
|
|
668053be
|
2015-07-24T18:44:29
|
|
filebuf: failing test for leaving the lockfile when failing to rename
When we fail to rename, we currently leave the lockfile laying
around. This shows that behaviour.
|
|
2dfd5eae
|
2015-07-24T15:05:16
|
|
Merge pull request #3307 from libgit2/cmn/submodule-backslash
Normalize submodule urls before looking at them
|
|
759b2230
|
2015-07-24T15:04:20
|
|
Merge pull request #3303 from libgit2/cmn/index-add-submodule
Allow adding a submodule through git_index_add_bypath
|