|
d2ce27dd
|
2013-06-24T23:16:06
|
|
Add public API for pathspec matching
This adds a new public API for compiling pathspecs and matching
them against the working directory, the index, or a tree from the
repository. This also reworks the pathspec internals to allow the
sharing of code between the existing internal usage of pathspec
matching and the new external API.
While this is working and the new API is ready for discussion, I
think there is still an incorrect behavior in which patterns are
always matched against the full path of an entry without taking
the subdirectories into account (so "s*" will match "subdir/file"
even though it wouldn't with core Git). Further enhancements are
coming, but this was a good place to take a functional snapshot.
|
|
d39fff36
|
2013-06-23T20:33:57
|
|
Basic framework for log command
|
|
bf3ee3cf
|
2013-07-10T10:58:58
|
|
Merge pull request #1705 from arrbee/avoid-index-double-free
Try harder not to double free index entries
|
|
bf730611
|
2013-07-10T10:58:26
|
|
Merge pull request #1717 from libgit2/arrbee/pr-1706-merged-and-cleaned
PR 1706 plus error reporting cleanups
|
|
33c8c6f0
|
2013-07-10T10:48:32
|
|
trivial whitespace fixup
|
|
c2de6b1a
|
2013-07-10T10:21:24
|
|
Bring SSH error reporting up to base standards
The SSH error checking and reporting could still be further
improved by using the libssh2 native methods to get error info,
but at least this ensures that all error codes are checked and
translated into libgit2 error messages.
|
|
68bc49a1
|
2013-07-10T09:20:46
|
|
Merge branch 'ssh-cred-fix' of tiennou/libgit2
Conflicts:
src/transports/ssh.c
|
|
08bf80fa
|
2013-07-10T10:29:32
|
|
Tab indent.
|
|
367c1903
|
2013-07-10T10:29:09
|
|
Add some missing error messages.
|
|
b8cd7aa9
|
2013-07-09T17:20:55
|
|
Merge pull request #1704 from arrbee/kill-status-index-then-workdir
Remove GIT_STATUS_SHOW_INDEX_THEN_WORKDIR option
|
|
77fa06f3
|
2013-07-09T17:20:36
|
|
Merge pull request #1695 from arrbee/fix-1695
API should not be ifdeffed
|
|
550cd2d7
|
2013-07-09T16:54:34
|
|
Merge pull request #1716 from arrbee/fix-config-get-multivar
Fix git_config_get_multivar with interleaved missing entries
|
|
e4fda954
|
2013-07-09T16:46:18
|
|
A little git_config_get_multivar code cleanup
|
|
7b5c0d18
|
2013-07-09T16:45:23
|
|
Add more tests for git_config_get_multivar
The old tests didn't try failing lookups or lookups across
multiple config files with some having the pattern and some
not having it.
|
|
07fba63e
|
2013-07-06T23:51:40
|
|
Fix return value in git_config_get_multivar
If there is not an error, the return value was always the return value
of the last call to file->get_multivar
With this commit GIT_ENOTFOUND is only returned if all the calls to
filge-get_multivar return GIT_ENOTFOUND.
|
|
290e1479
|
2013-07-09T16:17:41
|
|
Add GIT_CAP_SSH if library was built with SSH
This also adds a test that actually calls git_libgit2_capabilities
and git_libgit2_version.
|
|
a4456929
|
2013-07-09T16:16:24
|
|
Make credential clearing consistent
This makes all of the credential objects use the same pattern to
clear the contents and call git__memzero when done. Much of this
information is probably not sensitive, but it also seems better
to just clear consistently.
|
|
03d9b930
|
2013-07-09T14:45:58
|
|
Indent with tabs
|
|
3eae9467
|
2013-07-09T14:24:57
|
|
Merge pull request #1710 from arrbee/fix-1710
Null byte in hunk header
|
|
5813bc21
|
2013-07-09T12:01:16
|
|
Lots of SSH credential stuff can be left on
Much of the SSH credential creation API can be left enabled even
on platforms with no SSH support. We really just have to give an
error when you attempt to open the SSH connection.
|
|
a3c062db
|
2013-07-09T09:58:33
|
|
Make SSH APIs present even without SSH support
The SSH APIs will just return an error code and state that the
library was built without SSH support if they are called in
that case.
|
|
42d1a1e5
|
2013-07-09T06:46:50
|
|
Merge pull request #1715 from tiennou/const-signature
Make the git_signature `const` in the stash API.
|
|
2274993b
|
2013-07-09T12:52:25
|
|
Make the git_signature const in the stash API.
|
|
a5f9b5f8
|
2013-07-05T16:59:38
|
|
Diff hunk context off by one on long lines
The diff hunk context string that is returned to xdiff need not
be NUL terminated because the xdiff code just copies the number of
bytes that you report directly into the output. There was an off
by one in the diff driver code when the header context was longer
than the output buffer size, the output buffer length included
the NUL byte which was copied into the hunk header.
Fixes #1710
|
|
82cb8e23
|
2013-07-05T10:52:24
|
|
Merge pull request #1692 from arrbee/fix-1692
Segmentation fault on git_clone
|
|
f6bd0863
|
2013-07-03T22:02:44
|
|
Fix a probable leak.
|
|
219f318c
|
2013-07-03T22:02:29
|
|
Fix a crash if git_remote_set_cred_acquire_cb wasn't called before connecting.
Fixes #1700.
|
|
2a16914c
|
2013-07-03T12:20:34
|
|
Remove GIT_STATUS_SHOW_INDEX_THEN_WORKDIR option
This option serves no benefit now that the git_status_list API
is available. It was of questionable value before and now it
would just be a bad idea to use it rather than the indexed API.
|
|
4ae29053
|
2013-07-03T11:45:10
|
|
Merge pull request #1701 from yorah/fix/gh-1698
Fix segfault in git_status_foreach_ext()
|
|
178aa39c
|
2013-07-03T11:42:43
|
|
Be more thread aware with some index updates
The index isn't really thread safe for the most part, but we can
easily be more careful and avoid double frees and the like, which
are serious problems (as opposed to a lookup which might return
the incorrect value but if the index in being updated, that is
much harder to avoid).
|
|
9b6075b2
|
2013-07-03T17:07:20
|
|
Fix segfault in git_status_foreach_ext()
Add tests for the `GIT_STATUS_SHOW_XXX` flags.
|
|
6bb7bff2
|
2013-07-02T14:43:44
|
|
Merge pull request #1696 from AndrejMitrovic/FixTypo
[trivial] Fix small typo in docs for git_repository_message.
|
|
f8ccd6c9
|
2013-07-02T20:23:54
|
|
Fix small typo in docs for git_repository_message.
|
|
7c559c25
|
2013-07-01T12:42:08
|
|
Merge pull request #1694 from AndrejMitrovic/FixupDocEnums
[trivial] Fix docs to use proper enum names
|
|
55ededfd
|
2013-07-01T10:21:14
|
|
Make refspec_transform paranoid about arguments
|
|
278ce746
|
2013-07-01T10:20:38
|
|
Add helpful buffer shorten function
|
|
0b170f4d
|
2013-07-01T00:56:54
|
|
Fix docs to use proper enum names that exist.
|
|
c61300ed
|
2013-06-29T07:34:03
|
|
Merge pull request #1690 from nulltoken/fix/warnings
Fix Win32/64 compilation warnings & memory leak
|
|
d90390c1
|
2013-06-29T13:38:27
|
|
test: Fix memory leak
|
|
c4ac556e
|
2013-06-29T12:48:58
|
|
Fix compilation warnings
|
|
f2c41884
|
2013-06-27T22:48:46
|
|
Merge pull request #1688 from arrbee/submodule-load-ignore-orphaned-head
Test submodules with empty index or orphaned head
|
|
1e9dd60f
|
2013-06-27T22:29:05
|
|
Test submodules with empty index or orphaned head
In both of these cases, the submodule data should still be loaded
just (obviously) without the data that comes from either the index
or the HEAD.
This fixes a bug in the orphaned head case.
|
|
c8a39f9e
|
2013-06-27T11:11:12
|
|
Merge pull request #1684 from libgit2/fix-dirty-submodule-diff
Dirty submodules do not correctly appear in diffs
|
|
c67ff958
|
2013-06-27T07:38:27
|
|
Fix bug marking submodule diffs as unmodified
There was a bug where submodules whose HEAD had not been moved
were being marked as having an UNMODIFIED delta record instead
of being left MODIFIED. This fixes that and fixes the tests to
notice if a submodule has been incorrectly marked as UNMODIFIED.
|
|
c7974b49
|
2013-06-26T12:03:33
|
|
Fail on unmodified deltas when they're unexpected
|
|
b0401c68
|
2013-06-25T16:36:50
|
|
Merge pull request #1681 from arthurschreiber/patch-1
Prefer younger merge bases over older ones.
|
|
24ba6d3f
|
2013-06-25T22:55:13
|
|
Add a test case.
|
|
d0c36a0b
|
2013-06-25T10:42:38
|
|
Merge pull request #1678 from arthurschreiber/unbreak-local-ls-after-disconnect
Unbreak git_remote_ls on a local transport after disconnecting.
|
|
22ef0c28
|
2013-06-25T09:40:10
|
|
Merge pull request #1680 from csware/win32-junction
Correctly handle win32 junctions
|
|
3736b64f
|
2013-06-25T18:36:37
|
|
Prefer younger merge bases over older ones.
git-core prefers younger merge bases over older ones in case that multiple valid merge bases exists.
|
|
47537112
|
2013-06-25T16:46:06
|
|
Correctly handle junctions
A junction has S_IFDIR | S_IFLNK set, however, only one makes sense.
Signed-off-by: Sven Strickroth <email@cs-ware.de>
|
|
022a45e0
|
2013-06-25T16:43:15
|
|
Revert "Work around reparse point stat issues"
This reverts commit 32c12ea6a9cafd76a746af2e2be9366c95752f5b.
|
|
9728cfde
|
2013-06-25T11:17:55
|
|
Make sure we don't leak memory again.
|
|
edbaa63a
|
2013-06-25T09:04:04
|
|
Unbreak git_remote_ls on a local transport after disconnecting.
|
|
eddc1f1e
|
2013-06-25T00:14:45
|
|
libgit2 v0.19.0 "gut merge"
Minor point release! We got a lot of rather large features that we
wanted to get settled in:
- New (threadsafe) cache for objects
- Iterator for Status
- New Merge APIs
- SSH support on *NIX
- Function context on diff
- Namespaces support
- Index add/update/remove with wildcard support
- Iterator for References
- Fetch and push refspecs for Remotes
- Rename support in Status
- New 'sys/` namespace for external headers with low-level APIs
As always, this comes with hundreds of bug fixes and performance
improvements. We're faster and better than ever. And we haven't broken
many APIs this time!
Build stuff.
|
|
c0e58e43
|
2013-06-25T00:12:19
|
|
test-rename: This is not a decimal, silly
|
|
5b4a7083
|
2013-06-24T14:43:33
|
|
Merge pull request #1675 from arthurschreiber/fix-leak-in-local-transport
Fix a leak in the local transport code.
|
|
12212258
|
2013-06-24T12:02:43
|
|
Merge pull request #1674 from arrbee/fix-checkout-target-dir-win32
Fix checkout tests on Windows
|
|
8c510b83
|
2013-06-24T21:02:42
|
|
Fix a leak in the local transport code.
|
|
f3f4c6b5
|
2013-06-24T11:56:35
|
|
Fix checkout tests on Windows
|
|
353a90be
|
2013-06-24T11:21:54
|
|
Merge pull request #1672 from TheRealKerni/fix/header_docs
Fixed most documentation header bugs
|
|
09ee60c6
|
2013-06-24T11:21:09
|
|
Merge pull request #1670 from arrbee/open-cloexec
Add O_CLOEXEC to open calls
|
|
6c4dadba
|
2013-06-24T11:20:57
|
|
Merge pull request #1669 from arrbee/fix-index-add-bypath
In loose objects backend, constrain mkdir calls to avoid extra mkdirs
|
|
32c12ea6
|
2013-06-24T09:19:24
|
|
Work around reparse point stat issues
In theory, p_stat should never return an S_ISLNK result, but due
to the current implementation on Windows with mount points it is
possible that it will. For now, work around that by allowing a
link in the path to a directory being created. If it is really a
problem, then the issue will be caught on the next iteration of
the loop, but typically this will be the right thing to do.
|
|
e1967164
|
2013-06-24T15:33:41
|
|
Fixed most documentation header bugs
Fixed a few header @param and @return typos with the help of -Wdocumentation in Xcode.
The following warnings have not been fixed:
common.h:213 - Not sure how the documentation format is for '...'
notes.h:102 - Correct @param name but empty text
notes.h:111 - Correct @param name but empty text
pack.h:140 - @return missing text
pack.h:148 - @return missing text
|
|
3d3ea4dc
|
2013-06-22T20:58:32
|
|
Add O_CLOEXEC to open calls
|
|
9f1b2c5c
|
2013-06-22T17:22:03
|
|
Merge pull request #1668 from csware/WC_ERR_INVALID_CHARS
Do not redefine WC_ERR_INVALID_CHARS
|
|
8294e8cf
|
2013-06-22T17:15:31
|
|
Constrain mkdir calls to avoid extra mkdirs
This updates the calls that make the subdirectories for objects
to use a base directory above which git_futils_mkdir won't walk
any higher. This prevents attempts to mkdir all the way up to
the root of the filesystem.
Also, this moves the objects_dir into the loose backend structure
and removes the separate allocation, plus does some preformatting
of the objects_dir value to guarantee a trailing slash, etc.
|
|
a7ea4095
|
2013-06-23T01:25:34
|
|
Do not redefine WC_ERR_INVALID_CHARS
WC_ERR_INVALID_CHARS might be already defined by the Windows SDK.
Signed-off-by: Sven Strickroth <email@cs-ware.de>
|
|
5d669f0a
|
2013-06-21T14:29:21
|
|
Merge pull request #1665 from arrbee/checkout-target-directory
Add target directory to checkout options
|
|
d4f98ba4
|
2013-06-21T12:29:03
|
|
Addition checkout target directory tests
This adds additonal tests of the checkout target directory option
including using it to dump data from bare repos.
|
|
6a15e8d2
|
2013-06-21T12:26:36
|
|
Loosen ensure_not_bare rules in checkout
With the new target directory option to checkout, the non-bareness
of the repository should be checked much later in the parameter
validation process - actually that check was already in place, but
I was doing it redundantly in the checkout APIs.
This removes the now unnecessary early check for bare repos. It
also adds some other parameter validation and makes it so that
implied parameters can actually be passed as NULL (i.e. if you
pass a git_index, you don't have to pass the git_repository - we
can get it from index).
|
|
9094ae5a
|
2013-06-21T11:51:16
|
|
Add target directory to checkout
This adds the ability for checkout to write to a target directory
instead of having to use the working directory of the repository.
This makes it easier to do exports of repository data and the like.
This is similar to, but not quite the same as, the --prefix option
to `git checkout-index` (this will always be treated as a directory
name, not just as a simple text prefix).
As part of this, the workdir iterator was extended to take the
path to the working directory as a parameter and fallback on the
git_repository_workdir result only if it's not specified.
Fixes #1332
|
|
00197c34
|
2013-06-21T11:41:40
|
|
Merge pull request #1664 from arrbee/checkout-deleted-with-fix
Checkout should not recreate deleted files - with fix
|
|
36fd9e30
|
2013-06-21T11:20:54
|
|
Fix checkout of modified file when missing from wd
This fixes the checkout case when a file is modified between the
baseline and the target and yet missing in the working directory.
The logic for that case appears to have been wrong.
This also adds a useful checkout notify callback to the checkout
test helpers that will count notifications and also has a debug
mode to visualize what checkout thinks that it's doing.
|
|
dacce80b
|
2013-06-20T19:05:38
|
|
test asserting checkout should not recreate deleted files
|
|
f2d110f1
|
2013-06-20T15:27:25
|
|
Merge pull request #1662 from arrbee/examples-like-git
Command line status example (with bug fixes)
|
|
94ef2a35
|
2013-06-20T15:15:10
|
|
Add test for fixed diff bug
Add test for bug fixed in 852ded96982ae70acb63c3940fae08ea29e40fee
Sorry, I wrote that bug fix and forgot to check in a test at the
same time. Here is one that fails on the old version of the code
and now works.
|
|
92808557
|
2013-06-20T15:10:42
|
|
Fix comment and copyright in example
|
|
f18f772a
|
2013-06-20T14:27:14
|
|
Add example implementation of long format status
|
|
22b6b82f
|
2013-06-20T12:16:06
|
|
Add status flags to force output sort order
Files in status will, be default, be sorted according to the case
insensitivity of the filesystem that we're running on. However,
in some cases, this is not desirable. Even on case insensitive
file systems, 'git status' at the command line will generally use
a case sensitive sort (like 'ls'). Some GUIs prefer to display a
list of file case insensitively even on case-sensitive platforms.
This adds two new flags: GIT_STATUS_OPT_SORT_CASE_SENSITIVELY
and GIT_STATUS_OPT_SORT_CASE_INSENSITIVELY that will override the
default sort order of the status output and give the user control.
This includes tests for exercising these new options and makes
the examples/status.c program emulate core Git and always use a
case sensitive sort.
|
|
cf300bb9
|
2013-06-20T11:39:31
|
|
Initial implementation of status example
|
|
852ded96
|
2013-06-20T11:37:58
|
|
Fix bug in diff untracked dir scan
When scanning untracked directories looking for non-ignored files
there was a bug where an empty directory would generate a false
error.
|
|
8b2fa181
|
2013-06-19T16:18:30
|
|
Merge pull request #1661 from arrbee/index-add-all
Index operations using globs
|
|
7863523a
|
2013-06-19T15:54:19
|
|
Add tests and fix use of freed memory
This adds some tests for updating the index and having it remove
items to make sure that the iteration over the index still works
even as earlier items are removed.
In testing with valgrind, this found a path that would use the
path string from the index entry after it had been freed. The
bug fix is simply to copy the path of the index entry before
doing any actual index manipulation.
|
|
f30fff45
|
2013-06-19T15:27:25
|
|
Add index pathspec-based operations
This adds three new public APIs for manipulating the index:
1. `git_index_add_all` is similar to `git add -A` and will add
files in the working directory that match a pathspec to the
index while honoring ignores, etc.
2. `git_index_remove_all` removes files from the index that match
a pathspec.
3. `git_index_update_all` updates entries in the index based on
the current contents of the working directory, either added
the new information or removing the entry from the index.
|
|
85b8b18b
|
2013-06-19T15:22:48
|
|
Add fn to check pathspec for ignored files
Command line Git sometimes generates an error message if given a
pathspec that contains an exact match to an ignored file (provided
--force isn't also given). This adds an internal function that
makes it easy to check it that has happened. Right now, I'm not
creating a public API for this because that would get a little
more complicated with a need for callbacks for all invalid paths.
|
|
e91f9a8f
|
2013-06-19T15:20:59
|
|
Add higher level pathspec API
Right now, setting up a pathspec to be parsed and processed
requires several data structures and a couple of API calls. This
adds a new high level data structure that contains all the items
that you'll need and high-level APIs that do all of the setup and
all of the teardown. This will make it easier to use pathspecs
in various places with less repeated code.
|
|
5144850c
|
2013-06-19T06:42:22
|
|
Merge pull request #1660 from trast/tr/fix-zlib-configuration
CMakeLists: fix zlib linker setup
|
|
c41281ad
|
2013-06-19T13:36:59
|
|
CMakeLists: fix zlib linker setup
b53671a (Search for zlib unconditional, 2012-12-18) changed things
around to always (even on windows, that's what the subject refers to)
call FIND_PACKAGE(ZLIB).
However, it did not correctly handle the case where ZLIB_LIBRARY is
cached, either by the user setting it manually or by an earlier
search. In that case, the IF(ZLIB_FOUND) would not trigger (that
variable is not cached) and we'd instead use the built-in version.
000e689 (CMake: don't try to use bundled zlib when the system's path
is in the cache, 2013-05-12) tried to fix that, but it actually made
the problem worse: now with ZLIB_LIBRARY cached, _neither_ of the
blocks would execute, resulting in a linker error for me when trying
to build such a doubly-configured setup.
To fix the issue, we just trust CMake to do the right thing. If
ZLIB_LIBRARY is set (either from user or cache) then the find_library
in FindZLIB.cmake will use that instead of searching again. So we can
unconditionally (for real this time) call FIND_PACKAGE(ZLIB), and just
check its result.
|
|
84ba4944
|
2013-06-18T16:42:35
|
|
Merge pull request #1659 from arrbee/rename-cycle-fixes
Diff rename detection cycle fixes
|
|
e4acc3ba
|
2013-06-18T16:14:35
|
|
Fix rename looped reference issues
This makes the diff rename tracking code more careful about the
order in which it processes renames and more thorough in updating
the mapping of correct renames when an earlier rename update
alters the index of a later matched pair.
|
|
3b334075
|
2013-06-17T17:39:59
|
|
test illustrating tri-cyclic rename failure
|
|
f0f2ff9c
|
2013-06-17T17:33:40
|
|
test failure when renames produce similar similarities
|
|
ffb762fe
|
2013-06-18T04:30:25
|
|
Merge pull request #1657 from arrbee/diff-blob-as-path
Add "as_path" parameters to blob and buffer diff APIs
|
|
74ded024
|
2013-06-17T17:03:34
|
|
Add "as_path" parameters to blob and buffer diffs
This adds parameters to the four functions that allow for blob-to-
blob and blob-to-buffer differencing (either via callbacks or by
making a git_diff_patch object). These parameters let you say
that filename we should pretend the blob has while doing the diff.
If you pass NULL, there should be no change from the existing
behavior, which is to skip using attributes for file type checks
and just look at content. With the parameters, you can plug into
the new diff driver functionality and get binary or non-binary
behavior, plus function context regular expressions, etc.
This commit also fixes things so that the git_diff_delta that is
generated by these functions will actually be populated with the
data that we know about the blobs (or buffers) so you can use it
appropriately. It also fixes a bug in generating patches from
the git_diff_patch objects created via these functions.
Lastly, there is one other behavior change that may matter. If
there is no difference between the two blobs, these functions no
longer generate any diff callbacks / patches unless you have
passed in GIT_DIFF_INCLUDE_UNMODIFIED. This is pretty natural,
but could potentially change the behavior of existing usage.
|
|
c09810ee
|
2013-06-17T10:46:15
|
|
Merge pull request #1651 from arrbee/status_indexed_updates
Status indexed updates
|
|
f4183347
|
2013-06-17T10:23:53
|
|
Update clar to latest version
|
|
de0555a3
|
2013-06-17T09:55:29
|
|
Fix memory leaks in diff rename tests
This fixes a couple objects I forgot to free, and also updates
the valgrind suppressions file on the Mac to cover a few more
cases that had crept in.
|
|
f3b5bc83
|
2013-06-16T21:51:43
|
|
Add test of rename with no changes
A tree to index rename with no changes was getting erased by
the iteration routine (if the routine actually loaded the data
for the unmodified file). This invokes the code path that was
previously messing up the diff and iterates twice to make sure
that the iteration process itself doesn't modify the data.
|