Commit Graph

5565 Commits

Author SHA1 Message Date
Russell Belfer
2a7d224f99 Extend public filter api with filter lists
This moves the git_filter_list into the public API so that users
can create, apply, and dispose of filter lists.  This allows more
granular application of filters to user data outside of libgit2
internals.

This also converts all the internal usage of filters to the public
APIs along with a few small tweaks to make it easier to use the
public git_buffer stuff alongside the internal git_buf.
2013-09-17 09:31:44 -07:00
Russell Belfer
974774c7b0 Add attributes to filters and fix registry
The filter registry as implemented was too primitive to actually
work once multiple filters were coming into play.  This expands
the implementation of the registry to handle multiple prioritized
filters correctly.

Additionally, this adds an "attributes" field to a filter that
makes it really really easy to implement filters that are based
on one or more attribute values.  The lookup and even simple value
checking can all happen automatically without custom filter code.

Lastly, with the registry improvements, this fills out the filter
lifecycle callbacks, with initialize and shutdown callbacks that
will be called before the filter is first used and after it is
last invoked.  This allows for system-wide initialization and
cleanup by the filter.
2013-09-17 09:31:44 -07:00
Russell Belfer
570ba25cb0 Make git_filter_source opaque 2013-09-17 09:30:06 -07:00
Russell Belfer
85d5481206 Create public filter object and use it
This creates include/sys/filter.h with a basic definition of a
git_filter and then converts the internal code to use it.  There
are related internal objects (git_filter_list) that we will want
to publish at some point, but this is a first step.
2013-09-17 09:30:06 -07:00
Russell Belfer
0cf77103b2 Start of filter API + git_blob_filtered_content
This begins the process of exposing git_filter objects to the
public API.  This includes:

* new public type and API for `git_buffer` through which an
  allocated buffer can be passed to the user
* new API `git_blob_filtered_content`
* make the git_filter type and GIT_FILTER_TO_... constants public
2013-09-17 09:30:06 -07:00
Linquize
a025907e0d Can load default template directory 2013-09-18 00:09:09 +08:00
Linquize
b99b10f285 Can git_libgit2_opts() with GIT_OPT_GET_TEMPLATE_PATH and GIT_OPT_SET_TEMPLATE_PATH 2013-09-18 00:00:41 +08:00
Linquize
7e8934bba2 Can guess win32 git template dir 2013-09-17 23:29:02 +08:00
Linquize
f84bc38853 Refactor git_win32__find_system_dirs() to extract "etc\\" as subpath parameter 2013-09-17 23:28:16 +08:00
Vicent Martí
4581f9d8ab Merge pull request #1833 from libgit2/cmn/config-include
Support config includes
2013-09-17 08:09:57 -07:00
Vicent Martí
92457cad41 Merge pull request #1857 from linquize/find-git-path-win32
Fix failure in win32 git path guessing
2013-09-17 08:00:44 -07:00
Linquize
89095fbddc Fix failure in win32_find_git_in_registry() when UAC is turned on
Demand read only access to registry key instead of full access.
This might happen in Windows Vista and later.
2013-09-17 22:57:30 +08:00
Linquize
ffbd337aef Fix failure in win32_find_git_in_registry()
The buffer size 0 was definitely not enough so it failed
2013-09-17 22:57:06 +08:00
Vicent Martí
efc9e6700f Merge pull request #1856 from libgit2/cmn/no-orphans
No such thing as an orphan branch
2013-09-17 03:45:35 -07:00
Vicent Martí
38fba8371e Merge pull request #1851 from tiennou/libssh2-errors
Provide libssh2 error message
2013-09-17 03:40:50 -07:00
Carlos Martín Nieto
605da51a2c No such thing as an orphan branch
Unfortunately git-core uses the term "unborn branch" and "orphan
branch" interchangeably. However, "orphan" is only really there for
the checkout command, which has the `--orphan` option so it doesn't
actually create the branch.

Branches never have parents, so the distinction of a branch with no
parents is odd to begin with. Crucially, the error messages deal with
unborn branches, so let's use that.
2013-09-17 09:50:30 +02:00
Etienne Samson
eec4dcc34b Whitespace. 2013-09-16 23:07:22 +02:00
Etienne Samson
b622aabec0 Add a wrapper to provide the libssh2 error message 2013-09-16 23:07:19 +02:00
Vicent Marti
c62b5ca590 clone: Anal as fuck 2013-09-16 22:23:05 +02:00
Ben Straub
8821c9aa5b Merge pull request #1850 from linquize/git-clone-init-options
git_clone supports init_options
2013-09-15 17:50:03 -07:00
Linquize
f2df503bab git_clone supports optional init_options 2013-09-16 08:02:36 +08:00
Russell Belfer
e580afd863 Add tests for git_tree_walk
This tests the fixes for issues from #1849
2013-09-13 14:33:26 -07:00
Russell Belfer
236945a524 Merge pull request #1849 from whavinga/treewalker
Treewalker
2013-09-13 14:31:26 -07:00
wilke
d7fc2eb29b Fix memory leak in git_tree_walk on error or when stopping the walk from the supplied callback 2013-09-13 21:36:39 +02:00
wilke
4e01e3029b Prevent git_tree_walk 'skip entry' callback return code from leaking through as the return value of git_tree_walk 2013-09-13 21:21:33 +02:00
Vicent Martí
25803c632d Merge pull request #1848 from libgit2/ntk/fix/cl_assert_equal_sz
Fix cl_assert_equal_sz error message formating
2013-09-12 06:42:06 -07:00
nulltoken
6f2003612c clar: Move cl_assert_equal_sz() definition to clar.h 2013-09-12 13:54:33 +02:00
nulltoken
273ddc54f5 clar: Fix clar__assert_equal error message formating 2013-09-12 13:54:22 +02:00
Vicent Martí
a6ee166111 Merge pull request #1839 from isaac/ssh-repository-invalid
SSH: Clone fails with errors: ERROR: Repository invalid & Early EOF
2013-09-11 16:46:39 -07:00
Ben Straub
7301cd6007 Merge pull request #1846 from libgit2/ntk/fix/format
errors: Fix format of some error messages
2013-09-11 13:14:42 -07:00
nulltoken
8cf8052534 errors: Fix format of some error messages 2013-09-11 20:13:59 +02:00
Russell Belfer
6c38e60a00 Merge pull request #1838 from libgit2/cmn/first-parent
revwalk: allow simplifying by first-parent
2013-09-10 16:55:58 -07:00
Russell Belfer
68642bce4b Merge pull request #1841 from libgit2/ntk/fix/loose_ambiguous
Make odb_loose return EAMBIGUOUS when required
2013-09-10 16:54:37 -07:00
nulltoken
209f9b67c4 odb: Teach loose backend to return EAMBIGUOUS 2013-09-10 22:36:13 +02:00
nulltoken
d0cd6c427a path: Make direach() return EUSER on callback error 2013-09-10 22:36:10 +02:00
Carlos Martín Nieto
15f7b9b8d9 revwalk: allow simplifying by first-parent
When enabled, only the first parent of each commit will be queued,
enabling a simple way of using first-parent simplification.
2013-09-09 20:31:14 +02:00
Russell Belfer
38859f2937 Merge pull request #1843 from uh-sem-blee/development
fixing headers with bad values for objective-c
2013-09-09 11:11:39 -07:00
Russell Belfer
0c52b204c5 Make work if built with threading enabled 2013-09-09 11:07:17 -07:00
Krzysztof Adamski
b2395a8267 Only use callbacks when -n or -v in add example. 2013-09-09 11:01:31 -07:00
Krzysztof Adamski
04fd266584 Move statement after declarations in add example. 2013-09-09 11:01:31 -07:00
Krzysztof Adamski
9a0e42c673 Remove unnececery arguments priting in add example. 2013-09-09 11:01:30 -07:00
Krzysztof Adamski
813937ce4e Better usage info in add example. 2013-09-09 11:01:30 -07:00
Krzysztof Adamski
24d2322096 Add -u option to add example. 2013-09-09 11:01:30 -07:00
Krzysztof Adamski
e8fa14d3a3 Supported options information in add example. 2013-09-09 11:01:30 -07:00
Krzysztof Adamski
62020aa8f9 Adding add example. 2013-09-09 11:01:30 -07:00
John Josef
f313843c8a fixing headers with bad values for objective-c 2013-09-09 13:53:22 -04:00
Russell Belfer
e0b4a8ac33 Merge pull request #1842 from uh-sem-blee/development
fixes issues with objective-git
2013-09-09 10:30:31 -07:00
Russell Belfer
4dfe38205b Comment updates 2013-09-09 10:24:48 -07:00
Russell Belfer
5fb1f9f204 Merge pull request #1837 from libgit2/ntk/topic/control_stream_write_size
odb: Error when streaming in less|more bytes than declared
2013-09-09 10:17:54 -07:00
Isaac Kearse
b345026baa Test for repo before removing leading colon 2013-09-10 05:16:52 +12:00