|
0d64bef9
|
2012-10-05T15:56:57
|
|
Add complex checkout test and then fix checkout
This started as a complex new test for checkout going through the
"typechanges" test repository, but that revealed numerous issues
with checkout, including:
* complete failure with submodules
* failure to create blobs with exec bits
* problems when replacing a tree with a blob because the tree
"example/" sorts after the blob "example" so the delete was
being processed after the single file blob was created
This fixes most of those problems and includes a number of other
minor changes that made it easier to do that, including improving
the TYPECHANGE support in diff/status, etc.
|
|
bc16fd3e
|
2012-09-28T13:40:02
|
|
Introduce status/diff TYPECHANGE flags
When I wrote the diff code, I based it on core git's diff output
which tends to split a type change into an add and a delete. But
core git's status has the notion of a T (typechange) flag for a
file. This introduces that into our status APIs and modifies the
diff code so it can be forced to not split type changes.
|
|
95f5f1e6
|
2012-10-02T13:57:15
|
|
Cleanup TYPECHANGE support
This is just some cleanup code, rearranging some of the checkout
code where TYPECHANGE support was added and adding some comments
to the diff header regarding the constants.
|
|
21e0d297
|
2012-10-09T11:45:50
|
|
Merge pull request #967 from arrbee/diff-submodule-tests-and-fixes
Diff submodule tests and fixes
|
|
5d1308f2
|
2012-10-08T15:19:00
|
|
Add test for diffs with submodules and bug fixes
The adds a test for the submodule diff capabilities and then
fixes a few bugs with how the output is generated. It improves
the accuracy of OIDs in the diff delta object and makes the
submodule output more closely mirror the OIDs that will be used
by core git.
|
|
dfbff793
|
2012-10-08T15:14:12
|
|
Fix a few diff bugs with directory content
There are a few cases where diff should leave directories in
the diff list if we want to match core git, such as when the
directory contains a .git dir. That feature was lost when I
introduced some of the new submodule handling.
This restores that and then fixes a couple of related to diff
output that are triggered by having diffs with directories in
them.
Also, this adds a new flag that can be passed to diff if you
want diff output to actually include the file content of any
untracked files.
|
|
0c78f685
|
2012-10-06T10:41:53
|
|
branch: introduce git_branch_is_head()
|
|
eada0762
|
2012-10-02T10:45:40
|
|
Merge pull request #939 from pwkelley/ignorecase
Support for the core.ignorecase flag
|
|
3230a44f
|
2012-09-30T10:56:06
|
|
remote: support downloading all tags
Also honor remote.$name.tagopt = --tags.
|
|
f70e466f
|
2012-09-27T11:58:35
|
|
remote: add accessors for the autotag setting
|
|
24f2f94e
|
2012-09-15T08:07:24
|
|
fetch: use the include-tag capability
This tells the remote to send us any tags that point to objects that
we are downloading.
|
|
3665ba8e
|
2012-09-27T12:04:41
|
|
refspec: add git_refspec__free, remove git_refspec_parse
The latter shouldn't be exposed and isn't used, git_refspec__parse
supersedes it.
Fix a leak in the refspec tests while we're at it.
|
|
bae957b9
|
2012-09-25T16:31:46
|
|
Add const to all shared pointers in diff API
There are a lot of places where the diff API gives the user access
to internal data structures and many of these were being exposed
through non-const pointers. This replaces them all with const
pointers for any object that the user can access but is still
owned internally to the git_diff_list or git_diff_patch objects.
This will probably break some bindings... Sorry!
|
|
64286308
|
2012-09-25T10:48:50
|
|
Fix bugs in new diff patch code
This fixes all the bugs in the new diff patch code. The only
really interesting one is that when we merge two diffs, we now
have to actually exclude diff delta records that are not supposed
to be tracked, as opposed to before where they could be included
because they would be skipped silently by `git_diff_foreach()`.
Other than that, there are just minor errors.
|
|
5f69a31f
|
2012-09-24T20:52:34
|
|
Initial implementation of new diff patch API
Replacing the `git_iterator` object, this creates a simple API
for accessing the "patch" for any file pair in a diff list and
then gives indexed access to the hunks in the patch and the lines
in the hunk. This is the initial implementation of this revised
API - it is still broken, but at least builds cleanly.
|
|
9a12a625
|
2012-09-18T15:13:07
|
|
New take on iterating over diff content
Allow diff deltas to be accessed by index and make patch generation
explicit with hunk and line access by index as well.
|
|
5942bd18
|
2012-09-25T14:53:13
|
|
Merge pull request #947 from arrbee/public-error-set
Make giterr_set_str() and giterr_set_oom() public APIs
|
|
77e06d7e
|
2012-09-17T07:11:32
|
|
refs: introduce git_reference_is_valid_name()
|
|
c030ada7
|
2012-09-11T12:06:57
|
|
refs: make git_reference_normalize_name() accept refspec pattern
|
|
f55af775
|
2012-09-22T01:16:10
|
|
Make clear that git_odb_hashfile does not use filters
Signed-off-by: Sven Strickroth <email@cs-ware.de>
|
|
1a628100
|
2012-09-21T15:04:39
|
|
Make giterr_set_str public
There has been discussion for a while about making some set of
the `giterr_set` type functions part of the public API for code
that is implementing new backends to libgit2. This makes the
`giterr_set_str()` and `giterr_set_oom()` functions public.
|
|
9e592583
|
2012-09-19T12:23:47
|
|
checkout: add notification callback for skipped files
|
|
ec40b7f9
|
2012-09-17T15:42:41
|
|
Support for core.ignorecase
|
|
39783719
|
2012-09-17T20:27:28
|
|
checkout: Mimic git_diff_options storage of paths
|
|
44af67a8
|
2012-09-15T22:07:45
|
|
repository: introduce git_repository_set_head()
|
|
4ebe38bd
|
2012-09-15T22:07:09
|
|
repository: introduce git_repository_set_head_detached()
|
|
3f4c3072
|
2012-09-15T22:03:31
|
|
repository: introduce git_repository_detach_head()
|
|
cc548c7b
|
2012-09-15T12:55:37
|
|
repository: fix documentation typo
|
|
5af61863
|
2012-09-14T11:15:49
|
|
checkout: drop git_checkout_reference()
|
|
c214fa1c
|
2012-09-06T15:15:46
|
|
checkout: segregate checkout strategies
|
|
ee8bb8ba
|
2012-08-19T21:24:51
|
|
reset: add support for GIT_RESET_HARD mode
|
|
e93af304
|
2012-08-24T10:40:17
|
|
checkout: introduce git_checkout_index()
|
|
3aa443a9
|
2012-08-20T16:56:45
|
|
checkout: introduce git_checkout_tree()
|
|
9be2261e
|
2012-09-13T09:24:12
|
|
Merge pull request #927 from arrbee/hashfile-with-filters
Add git_repository_hashfile to hash with filters
|
|
a13fb55a
|
2012-09-11T17:26:21
|
|
Add tests and improve param checks
Fixed some minor `git_repository_hashfile` issues:
- Fixed incorrect doc (saying that repo could be NULL)
- Added checking of object type value to acceptable ones
- Added more tests for various parameter permutations
|
|
47bfa0be
|
2012-09-07T13:27:49
|
|
Add git_repository_hashfile to hash with filters
The existing `git_odb_hashfile` does not apply text filtering
rules because it doesn't have a repository context to evaluate
the correct rules to apply. This adds a new hashfile function
that will apply repository-specific filters (based on config,
attributes, and filename) before calculating the hash.
|
|
21d847d3
|
2012-09-11T14:56:13
|
|
Merge pull request #920 from scunz/mergebase_const
git_mergebase: Constness-Fix for consistency
|
|
412293dc
|
2012-09-11T23:38:16
|
|
Merge branch 'diff-crlf-filters' into development
|
|
1f35e89d
|
2012-09-11T12:03:33
|
|
Fix diff binary file detection
In the process of adding tests for the max file size threshold
(which treats files over a certain size as binary) there seem to
be a number of problems in the new code with detecting binaries.
This should fix those up, as well as add a test for the file
size threshold stuff.
Also, this un-deprecates `GIT_DIFF_LINE_ADD_EOFNL`, since I
finally found a legitimate situation where it would be returned.
|
|
eff14d38
|
2012-09-10T23:15:54
|
|
Merge pull request #906 from nulltoken/topic/git_reference_peel
git reference peel
|
|
e597b189
|
2012-09-10T11:49:12
|
|
Move diff max_size to public API
This commit adds a max_size value in the public `git_diff_options`
structure so that the user can automatically flag blobs over a
certain size as binary regardless of other properties.
Also, and perhaps more importantly, this moves binary detection
to be as early as possible in the diff traversal inner loop and
makes sure that we stop loading objects as soon as we decide that
they are binary.
|
|
b36effa2
|
2012-09-10T09:59:14
|
|
Replace git_diff_iterator_num_files with progress
The `git_diff_iterator_num_files` API was problematic, since we
don't actually know the exact number of files to be iterated over
until we load those files into memory. This replaces it with a
new `git_diff_iterator_progress` API that goes from 0 to 1, and
moves and renamed the old API for the internal places that can
tolerate a max value instead of an exact value.
|
|
857323d4
|
2012-09-09T15:53:57
|
|
git_mergebase: Constness-Fix for consistency
|
|
17b06f4d
|
2012-09-07T15:49:08
|
|
Add missing accessor for fetchRecurseSubmodules
When `git_submodule` became an opaque structure, I forgot to add
accessor functions for the fetchRecurseSubmodules config setting.
This fixes that.
|
|
8f9b6a13
|
2012-08-31T16:39:30
|
|
Better header comments
|
|
746642a6
|
2012-08-20T12:30:54
|
|
checkout: fix documentation code alignment
|
|
bb2d305c
|
2012-08-22T10:47:25
|
|
errors: introduce GIT_EBAREREPO
|
|
31665948
|
2012-08-24T21:30:45
|
|
refs: introduce git_reference_peel()
Fix #530
|
|
7a3fc9fb
|
2012-09-06T01:17:23
|
|
Merge pull request #900 from pwkelley/development
Expose a malloc function to 3rd party ODB backends
|
|
01ae1909
|
2012-09-06T10:13:38
|
|
diff: Cleanup documentation and printf compat
|
|
510f1bac
|
2012-08-30T16:39:05
|
|
Fix comments and a minor bug
This adds better header comments and also fixes a bug in one of
simple APIs that tells the number of lines in the current hunk.
|
|
f335ecd6
|
2012-08-30T14:24:16
|
|
Diff iterators
This refactors the diff output code so that an iterator object
can be used to traverse and generate the diffs, instead of just
the `foreach()` style with callbacks. The code has been rearranged
so that the two styles can still share most functions.
This also replaces `GIT_REVWALKOVER` with `GIT_ITEROVER` and uses
that as a common error code for marking the end of iteration when
using a iterator style of object.
|
|
4d383403
|
2012-09-04T14:19:24
|
|
Merge pull request #856 from libgit2/utf8-win
Windows: Perform UTF-8 path conversion on the Stack
|
|
c9d223f0
|
2012-09-04T22:57:31
|
|
branch: Add missing include
|
|
6813169a
|
2012-08-06T12:45:59
|
|
windows: Keep UTF-8 on the stack yo
|
|
62eafd06
|
2012-08-27T14:54:52
|
|
Merge branch 'branch-delete-ref' into development
Conflicts:
include/git2/refs.h
|
|
bd2887a5
|
2012-08-27T14:52:26
|
|
Merge pull request #904 from arrbee/better-object-peel
Make git_object_peel a bit smarter
|
|
b9d283d1
|
2012-08-27T13:39:17
|
|
Merge pull request #897 from nulltoken/topic/git_reference_check_format
refs: expose git_reference_normalize_name()
|
|
d8057a5b
|
2012-08-27T11:53:59
|
|
Make git_object_peel a bit smarter
This expands the types of peeling that `git_object_peel` knows
how to do to include TAG -> BLOB peeling, and makes the errors
slightly more consistent depending on the situation. It also
adds a new special behavior where peeling to ANY will peel until
the object type changes (e.g. chases TAGs to a non-TAG).
Using this expanded peeling, this replaces peeling code that was
embedded in `git_tag_peel` and `git_reset`.
|
|
c49d328c
|
2012-08-27T09:59:13
|
|
Expose a malloc function to 3rd party ODB backends
|
|
2e0c8816
|
2012-08-26T22:08:22
|
|
refs: expose git_reference_normalize_name()
|
|
1c947daa
|
2012-08-23T15:47:29
|
|
branch: Change `git_branch_delete` to take a ref
|
|
2b175ca9
|
2012-08-26T00:35:52
|
|
indexer: kill git_indexer_stats.data_received
It's not really needed with the current code as we have EOS and the
sideband's flush to tell us we're done.
Keep the distinction between processed and received objects.
|
|
b7e8827b
|
2012-08-24T16:29:01
|
|
Merge pull request #895 from carlosmn/sideband
Add sideband support
|
|
e03e71da
|
2012-05-14T17:54:25
|
|
network: add sideband support
This lets us notify the user of what the remote end is doing while we
wait for it to start sending us the packfile.
|
|
5f4a61ae
|
2012-08-09T19:43:25
|
|
Working implementation of git_submodule_status
This is a big redesign of the git_submodule_status API and the
implementation of the redesigned API. It also fixes a number of
bugs that I found in other parts of the submodule API while
writing the tests for the status part.
This also fixes a couple of bugs in the iterators that had not
been noticed before - one with iterating when there is a gitlink
(i.e. separate-work-dir) and one where I was treating anything
even vaguely submodule-like as a submodule, more aggressively
than core git does.
|
|
aa13bf05
|
2012-08-02T13:00:58
|
|
Major submodule rewrite
This replaces the old submodule API with a new extended API that
supports most of the things that can be done with `git submodule`.
|
|
bffa852f
|
2012-07-13T12:01:11
|
|
indexer: recognize and mark when all of the packfile has been downloaded
We can't always rely on the network telling us when the download is
finished. Recognize it from the indexer itself.
|
|
e9ca852e
|
2012-08-23T09:20:17
|
|
Fix warnings and merge issues on Win64
|
|
85bd1746
|
2012-08-22T16:03:35
|
|
Some cleanup suggested during review
This cleans up a number of items suggested during code review
with @vmg, including:
* renaming "outside repo" config API to `git_config_open_default`
* killing the `git_config_open_global` API
* removing the `git_` prefix from the static functions in fileops
* removing some unnecessary functionality from the "cp" command
|
|
ca1b6e54
|
2012-07-31T17:02:54
|
|
Add template dir and set gid to repo init
This extends git_repository_init_ext further with support for
initializing the repository from an external template directory
and with support for the "create shared" type flags that make a
set GID repository directory.
This also adds tests for much of the new functionality to the
existing `repo/init.c` test suite.
Also, this adds a bunch of new utility functions including a
very general purpose `git_futils_mkdir` (with the ability to
make paths and to chmod the paths post-creation) and a file
tree copying function `git_futils_cp_r`. Also, this includes
some new path functions that were useful to keep the code
simple.
|
|
662880ca
|
2012-07-26T16:07:01
|
|
Add git_repository_init_ext for power initters
The extended version of repository init adds support for many
of the things that you can do with `git init` and sets up
structures that will make it easier to extend further in the
future.
|
|
cfda29e3
|
2012-08-22T13:15:14
|
|
Merge pull request #891 from arrbee/internal-ignore-api
API for managing in-memory ignore rules
|
|
2fb4e9b3
|
2012-08-22T11:42:00
|
|
Wrap up ignore API and add tests
This fills out the ignore API and adds tests.
|
|
9d7ac675
|
2012-08-21T11:45:16
|
|
tree entry: rename git_tree_entry_attributes() into git_tree_entry_filemode()
|
|
a7dbac0b
|
2012-08-17T21:10:32
|
|
filemode: deploy enum usage
|
|
d854d59e
|
2012-08-17T21:15:32
|
|
filemode: introduce enum to ease use of attributes
|
|
66439b0b
|
2012-08-17T11:21:49
|
|
treebuilder: enhance attributes handling on insertion
|
|
f98c32f3
|
2012-08-19T01:26:06
|
|
Merge pull request #778 from ben/clone
Clone
|
|
e0db9f11
|
2012-08-15T17:54:05
|
|
refs: fix missing parameter documentation
|
|
5fd17fc2
|
2012-08-15T17:50:02
|
|
notes: slight documentation enhancements
|
|
85f28ba8
|
2012-08-14T11:43:20
|
|
Merge pull request #873 from carlosmn/tree-walk
git_tree_walk callback return value semantic does not match documentation
|
|
3a6bc301
|
2012-08-14T11:30:18
|
|
Merge pull request #875 from arrbee/fix-message-prettify-length-check
Fix message prettify length check
|
|
85a0e28b
|
2012-08-14T10:50:58
|
|
Make git_message_prettify return bytes written
If you want to be absolutely safe with git_message_prettify, you
can now pass a NULL pointer for the buffer and get back the number
of bytes that would be copied into the buffer.
This means that an error is a non-negative return code and a
success will be greater than zero from this function.
|
|
e08ca0d4
|
2012-08-13T21:04:27
|
|
Merge pull request #871 from joshtriplett/fix-note_foreach-docs
git_note_foreach: Fix documentation for notes_ref parameter
|
|
a6ee6201
|
2012-08-13T21:02:35
|
|
Merge pull request #870 from joshtriplett/fix-note_create-docs
git_note_oid: Fix the documentation to reference parameters using the correct names
|
|
0374e6ab
|
2012-08-13T21:02:12
|
|
Merge pull request #872 from joshtriplett/fix-note_remove-docs
git_note_create: Copyediting on documentation for the oid parameter
|
|
a6bf1687
|
2012-08-13T14:07:47
|
|
tree: allow the user to skip an entry or cancel the walk
Returning a negative cancels the walk, and returning a positive one
causes us to skip an entry, which was previously done by a negative
value.
This allows us to stay consistent with the rest of the functions that
take a callback and keeps the skipping functionality.
|
|
39a60efd
|
2012-08-12T07:06:11
|
|
git_note_remove: Copyediting on documentation for the oid parameter
|
|
d45ada03
|
2012-08-12T06:31:42
|
|
git_note_foreach: Fix documentation for notes_ref parameter
|
|
22408f4d
|
2012-08-12T05:53:30
|
|
git_note_oid: Fix the documentation to reference parameters using the correct names
|
|
b90202bb
|
2012-08-12T03:56:15
|
|
Fix incorrect array size in example for git_config_get_mapped
In the documentation for git_config_get_mapped, the sample mapping
array uses [3] but has 4 entries. Fix by dropping the size entirely and
letting the compiler figure it out.
|
|
5389005d
|
2012-08-11T18:14:07
|
|
Export git_attr_value
Commit 0c9eacf3d2c83256736a5bb2a240e73afd13d55f introduced the function
git_attr_value and switched the GIT_ATTR_* macros to use it, but
attempting to use that function leads to a linker error (undefined
reference to `git_attr_value'). Export git_attr_value so programs can
actually call it.
|
|
51e1d808
|
2012-08-06T12:41:08
|
|
Merge remote-tracking branch 'arrbee/tree-walk-fixes' into development
Conflicts:
src/notes.c
src/transports/git.c
src/transports/http.c
src/transports/local.c
tests-clar/odb/foreach.c
|
|
5dca2010
|
2012-08-03T17:08:01
|
|
Update iterators for consistency across library
This updates all the `foreach()` type functions across the library
that take callbacks from the user to have a consistent behavior.
The rules are:
* A callback terminates the loop by returning any non-zero value
* Once the callback returns non-zero, it will not be called again
(i.e. the loop stops all iteration regardless of state)
* If the callback returns non-zero, the parent fn returns GIT_EUSER
* Although the parent returns GIT_EUSER, no error will be set in
the library and `giterr_last()` will return NULL if called.
This commit makes those changes across the library and adds tests
for most of the iteration APIs to make sure that they follow the
above rules.
|
|
e25dda51
|
2012-08-02T01:38:30
|
|
Merge remote-tracking branch 'nulltoken/topic/amd64-compat' into development
Conflicts:
src/netops.c
src/netops.h
src/oid.c
|
|
95a1d876
|
2012-08-01T16:31:00
|
|
Merge pull request #850 from libgit2/attr-export
attr: Do not export variables externally
|
|
e5f49501
|
2012-08-01T16:21:41
|
|
Merge pull request #848 from carlosmn/pending-message
repository: add a getter and remove function for git's prepared message
|
|
0c9eacf3
|
2012-08-02T01:15:24
|
|
attr: Do not export variables externally
Fixes #824
Exporting variables in a dynamic library is a PITA. Let's keep
these values internally and wrap them through a helper method.
This doesn't break the external API. @arrbee, aren't you glad I turned
the `GIT_ATTR_` macros into function macros? :sparkles:
|
|
e564e496
|
2012-08-01T20:02:32
|
|
Add function to query for compile time settings.
|