|
c6ac28fd
|
2012-09-10T12:24:05
|
|
Reorg internal odb read header and object lookup
Often `git_odb_read_header` will "fail" and have to read the
entire object into memory instead of just the header. When this
happens, the object is loaded and then disposed of immediately,
which makes it difficult to efficiently use the header information
to decide if the object should be loaded (since attempting to do
so will often result in loading the object twice).
This commit takes the existing code and reorganizes it to have
two new functions:
- `git_odb__read_header_or_object` which acts just like the old
read header function except that it returns the object, too, if
it was forced to load the whole thing. It then becomes the
callers responsibility to free the `git_odb_object`.
- `git_object__from_odb_object` which was extracted from the old
`git_object_lookup` and creates a subclass of `git_object` from
an existing `git_odb_object` (separating the ODB lookup from the
`git_object` creation). This allows you to use the first header
reading function efficiently without instantiating the
`git_odb_object` twice.
There is no net change to the behavior of any of the existing
functions, but this allows internal code to tap into the ODB
lookup and object creation to be more efficient.
|
|
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.
|
|
3a3deea8
|
2012-09-06T15:45:50
|
|
Clean up blob diff path
Previously when diffing blobs, the diff code just ran with a NULL
repository object. Of course, that's not necessary and the test
for a NULL repo was confusing. This makes the blob diff run with
the repo that contains the blobs and clarifies the test that it
is possible to be diffing data where the path is unknown.
|
|
60b9d3fc
|
2012-09-05T15:00:40
|
|
Implement filters for status/diff blobs
This adds support to diff and status for running filters (a la crlf)
on blobs in the workdir before computing SHAs and before generating
text diffs. This ended up being a bit more code change than I had
thought since I had to reorganize some of the diff logic to minimize
peak memory use when filtering blobs in a diff.
This also adds a cap on the maximum size of data that will be loaded
to diff. I set it at 512Mb which should match core git. Right now
it is a #define in src/diff.h but it could be moved into the public
API if desired.
|
|
8f9b6a13
|
2012-08-31T16:39:30
|
|
Better header comments
|
|
52462e1c
|
2012-05-13T10:11:13
|
|
Test case to reproduce issue #690.
Staged file status does not handle CRLF correctly. Ensures that the test repo has core.autocrlf=true for the test to fail.
|
|
f8e2cc9a
|
2012-08-31T15:53:47
|
|
Alternate test for autocrlf with status
I couldn't get the last failing test to actually fail. This
is a different test suggested by @nulltoken which should fail.
|
|
0e9f2fce
|
2012-09-06T11:35:09
|
|
odb: mark unused variable
|
|
7a3fc9fb
|
2012-09-06T01:17:23
|
|
Merge pull request #900 from pwkelley/development
Expose a malloc function to 3rd party ODB backends
|
|
4e2b8b4c
|
2012-09-06T01:15:14
|
|
Merge pull request #912 from schu/netops-ssl-error
netops: be more careful with SSL errors
|
|
01ae1909
|
2012-09-06T10:13:38
|
|
diff: Cleanup documentation and printf compat
|
|
2e4a9ea9
|
2012-09-06T10:08:14
|
|
Merge remote-tracking branch 'arrbee/diff-iterator' into development
|
|
27730eef
|
2012-09-05T16:31:44
|
|
Merge pull request #917 from arrbee/test-issue-835
Test for gitmodules only submodule def
|
|
fed886d9
|
2012-09-05T15:54:32
|
|
Test for gitmodules only submodule def
This should confirm that issue #835 is fixed where a submodule that
is only declared in the .gitmodules file was not accessible via the
submodule APIs.
|
|
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
|
|
f9988d4e
|
2012-09-04T21:42:00
|
|
odb: pass the user's data pointer correctly in foreach
|
|
064ee42d
|
2012-09-04T15:54:33
|
|
travis: use a valgrind suppressions file
We don't care about the supposed zlib errors, and the leak from
giterr_set isn't interesting, as it gets freed each time an error is
set.
Give valgrind a suppressions file so it doesn't tell us about them.
|
|
925be045
|
2012-09-04T15:40:05
|
|
clar: Clear errors on shutdown
|
|
af6bcd8b
|
2012-09-04T01:06:34
|
|
Merge pull request #913 from nulltoken/fix/warnings
Fix MSVC compilation warnings
|
|
b97c169e
|
2012-09-04T10:01:18
|
|
Fix MSVC compilation warnings
|
|
65ac67fb
|
2012-08-28T21:58:10
|
|
netops: be more careful with SSL errors
SSL_get_error() allows to receive a result code for various SSL
operations. Depending on the return value (see man (3) SSL_get_error)
there might be additional information in the OpenSSL error queue. Return
the queued message if available, otherwise set an error message
corresponding to the return code.
|
|
4deda91b
|
2012-09-04T00:13:59
|
|
netops: continue writing on SSL_ERROR_WANT_WRITE
|
|
22e1b4b8
|
2012-08-30T07:55:36
|
|
Ignore tags file
|
|
04d4fe5e
|
2012-08-29T11:01:46
|
|
Merge pull request #908 from nulltoken/bug/repo_reinit_init
repository: add failing repo initialization test
|
|
89cd5708
|
2012-08-29T14:20:53
|
|
repository: make initialization cope with missing core.worktree
|
|
0f4c6175
|
2012-08-28T22:19:08
|
|
Add bounds checking to UTF-8 conversion
|
|
6813169a
|
2012-08-06T12:45:59
|
|
windows: Keep UTF-8 on the stack yo
|
|
3b73a034
|
2012-04-25T16:26:12
|
|
UTF-8 changes yo
|
|
319ad0ba
|
2012-08-28T13:55:55
|
|
Merge pull request #905 from carlosmn/signature-now
signature: make the OS give us the offset for git_signature_now
|
|
0844ed06
|
2012-08-28T20:15:21
|
|
Fix parentheses warning
|
|
d03d309b
|
2012-08-28T18:02:12
|
|
signature: make the OS give us the offset for git_signature_now
There is a better and less fragile way to calculate time offsets. Let
the OS take care of dealing with DST and simply take the the offset
between the local time and UTC that it gives us.
|
|
0d5dce26
|
2012-08-28T14:15:32
|
|
ssl: make cert check ignore work for invalid certs, not just CNs
Passing SSL_VERIFY_PEER makes OpenSSL shut down the connection if the
certificate is invalid, without giving us a chance to ignore that
error. Pass SSL_VERIFY_NONE and call SSL_get_verify_result if the user
wanted us to check.
When no CNs match, we used to jump to on_error which gave a bogus
error as that's for OpenSSL errors. Jump to cert_fail so we tell the
user that the error came from checking the certificate.
|
|
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()
|
|
05752700
|
2012-08-27T13:35:58
|
|
Merge pull request #899 from schu/revwalk-push
revwalk: refuse push of non-commit objects
|
|
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`.
|
|
0b9174c6
|
2012-08-27T11:45:48
|
|
Merge pull request #903 from nulltoken/topic/peeling-duplication
branch: reduce code duplication
|
|
c49d328c
|
2012-08-27T09:59:13
|
|
Expose a malloc function to 3rd party ODB backends
|
|
d1445b75
|
2012-08-27T15:24:27
|
|
branch: reduce code duplication
|
|
4e323ef0
|
2012-08-27T10:51:01
|
|
revwalk: refuse push of non-commit objects
Check the type of the pushed object immediately instead of starting the
walk and failing in between.
|
|
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
|
|
17f7bde2
|
2012-08-23T15:47:08
|
|
posix: Always set a default mapping mode
|
|
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.
|
|
cc1d85d1
|
2012-08-25T23:32:19
|
|
http: increase buffer side to deal with side-band-64k
This poor transport was forgotten in the recent sideband support.
|
|
7a57ae54
|
2012-08-25T23:31:29
|
|
indexer: don't segfault when freeing an unused indexer
Make sure that idx->pack isn't NULL before trying to free resources
under it.
|
|
8238401c
|
2012-08-25T11:37:23
|
|
Merge pull request #896 from ben/revparse-ambiguous
Revparse: GIT_EAMBIGUOUS
|
|
c9de8611
|
2012-08-23T12:29:09
|
|
Revparse: GIT_EAMBIGUOUS
Revparse now returns EAMBIGUOUS if the the spec
doesn't match any refs/tags, and is <4 characters.
|
|
b7e8827b
|
2012-08-24T16:29:01
|
|
Merge pull request #895 from carlosmn/sideband
Add sideband support
|
|
09fad506
|
2012-08-24T15:45:13
|
|
Merge pull request #852 from arrbee/submodule-extensions
Submodule extensions
|
|
091c742a
|
2012-08-24T15:43:19
|
|
Merge pull request #876 from arrbee/new-config-locations
new config file locations and defaults
|
|
7fbca880
|
2012-08-24T14:32:45
|
|
Support new config locations
As of git v1.7.12, $HOME/.config/git/ is supported as a new
location for "config", "attributes", and "ignore" files.
|
|
07c06f7a
|
2012-08-24T14:24:33
|
|
Fix memory leak in cp_r
|
|
11684104
|
2012-08-24T13:41:45
|
|
Fix crash with adding internal ignores
Depending on what you had done before adding new items to the
internal ignores list, it was possible for the cache of ignore
data to be uninitialized.
|
|
97a17e4e
|
2012-08-24T12:19:22
|
|
Fix valgrind warnings and spurious error messages
Just clean up valgrind warnings about uninitialized memory
and also clear out errno in some cases where it results in
a false error message being generated at a later point.
|
|
0a1db746
|
2012-05-14T20:46:30
|
|
examples: add progress output to fetch
|
|
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.
|
|
0c8858de
|
2012-08-03T14:28:07
|
|
Fix valgrind issues and leaks
This fixes up a number of problems flagged by valgrind and also
cleans up the internal `git_submodule` allocation handling
overall with a simpler model.
|
|
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`.
|
|
decff7b4
|
2012-07-18T14:30:15
|
|
New submodule test data
|
|
2eb4edf5
|
2012-08-24T10:48:48
|
|
Fix errors on Win32 with new repo init
|
|
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.
|
|
c920e162
|
2012-08-23T14:10:47
|
|
Merge pull request #844 from arrbee/init-extended
Add git_repository_init_ext for power initters
|
|
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
|
|
b769e936
|
2012-08-01T14:49:47
|
|
Don't reference stack vars in cleanup callback
If you use the clar cleanup callback function, you can't pass a
reference pointer to a stack allocated variable because when the
cleanup function runs, the stack won't exist anymore.
|
|
0e26202c
|
2012-08-01T14:30:08
|
|
fix missing validation and type cast warning
|
|
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.
|
|
5fdc41e7
|
2012-08-22T13:57:57
|
|
Minor bug fixes in diff code
In looking at PR #878, I found a few small bugs in the diff code,
mostly related to work that can be avoided when processing tree-
to-tree diffs that was always being carried out. This commit has
some small fixes in it.
|
|
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.
|
|
f004c4a8
|
2012-08-21T17:26:39
|
|
Add public API for internal ignores
This creates a public API for adding to the internal ignores
list, which already existing but was not accessible.
This adds the new default value for core.excludesfile also.
|
|
697665c0
|
2012-08-21T14:32:09
|
|
Merge pull request #889 from nulltoken/filemode-enum
Filemode enum
|
|
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
|
|
b2be351a
|
2012-08-21T10:10:32
|
|
Win32: test core.autocrlf
|
|
c3588142
|
2012-08-20T20:24:20
|
|
Tests: close file handles before asserting
Avoids getting ERROR_SHARING_VIOLATION on win32
and killing the entire clar run.
|
|
5c27da1f
|
2012-08-20T12:10:23
|
|
Merge pull request #884 from carlosmn/global-windows
Make the memory-window conrol structures global
|
|
8cef828d
|
2012-08-18T22:11:49
|
|
Make the memory-window conrol structures global
Up to now, the idea was that the user would do all the operations for
one repository in the same thread. Thus we could have the
memory-mapped window information thread-local and avoid any locking.
This is not practical in a few environments, such as Apple's GCD which
allocates threads arbitrarily or the .NET CLR, where the OS-level
thread can change at any moment.
Make the control structure global and protect it with a mutex so we
don't depend on the thread currently executing the code.
|
|
6cb64ce3
|
2012-08-19T15:12:43
|
|
Merge pull request #879 from nulltoken/deprecated-mode
Handling of 100664 deprecated mode in tree entries
|
|
66439b0b
|
2012-08-17T11:21:49
|
|
treebuilder: enhance attributes handling on insertion
|
|
a7e3bd9b
|
2012-08-16T11:53:24
|
|
Add deprecated-mode.git test repository
|
|
f98c32f3
|
2012-08-19T01:26:06
|
|
Merge pull request #778 from ben/clone
Clone
|
|
1a10fded
|
2012-08-15T14:34:49
|
|
Merge pull request #877 from nulltoken/minor-fixes
Minor fixes
|
|
e0db9f11
|
2012-08-15T17:54:05
|
|
refs: fix missing parameter documentation
|
|
5fd17fc2
|
2012-08-15T17:50:02
|
|
notes: slight documentation enhancements
|
|
1a0537e4
|
2012-08-15T00:08:38
|
|
Fix compilation warning
|
|
fc1826d1
|
2012-08-14T20:54:13
|
|
tests: fix tree walking test
Return -1 to stop the iteration instead of not-0
|
|
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
|