|
a16e4172
|
2013-07-25T12:27:39
|
|
Fix rename detection to use actual blob size
The size data in the index may not reflect the actual size of the
blob data from the ODB when content filtering comes into play.
This commit fixes rename detection to use the actual blob size when
calculating data signatures instead of the value from the index.
Because of a misunderstanding on my part, I first converted the
git_index_add_bypath API to use the post-filtered blob data size
in creating the index entry. I backed that change out, but I
kept the overall refactoring of that routine and the new internal
git_blob__create_from_paths API because it eliminates an extra
stat() call from the code that adds a file to the index.
The existing tests actually cover this code path, at least when
running on Windows, so at this point I'm not adding new tests to
cover the changes.
|
|
effdbeb3
|
2013-07-24T17:48:37
|
|
Make rename detection file size fix better
The previous fix for checking file sizes with rename detection
always loads the blob. In this version, if the odb backend can
get the object header without loading the whole thing into memory,
then we'll just use that, so that we can eliminate possible rename
sources & targets without loading them.
|
|
a5140f4d
|
2013-07-24T17:11:49
|
|
Fix rename detection for tree-to-tree diffs
The performance improvements I introduced for rename detection
were not able to run successfully for tree-to-tree diffs because
the blob size was not known early enough and so the file signature
always had to be calculated nonetheless.
This change separates loading blobs into memory from calculating
the signature. I can't avoid having to load the large blobs into
memory, but by moving it forward, I'm able to avoid the signature
calculation if the blob won't come into play for renames.
|
|
f5c4d022
|
2013-07-24T13:44:35
|
|
Fix incorrect comment
|
|
397357a0
|
2013-07-24T13:12:00
|
|
Add rename test that used to be really slow
Before the optimization commits, this test used to take about 20
seconds to run on my machine. Afterwards, there is still a couple
seconds of data setup, but the actual diff and rename detection
runs in a fraction of a second.
|
|
427cc255
|
2013-07-24T13:11:11
|
|
Use local variables in hash calc to avoid aliasing
|
|
18e9efc4
|
2013-07-24T13:10:16
|
|
Don't check rename if file size difference is huge
|
|
69c66b55
|
2013-07-24T13:09:33
|
|
Don't do text diff unless content will be used
|
|
39a1a662
|
2013-07-24T13:09:07
|
|
Don't unload diff data unless loaded
|
|
cdbcb8dd
|
2013-07-23T09:43:07
|
|
Merge pull request #1745 from libgit2/doc-fixes
Doc fixes
|
|
64061d4a
|
2013-07-23T10:51:14
|
|
remote: fix git_remote_download() documentation
The description of what the function does hasn't been true for quite a
while. Change it to reflect the way it currently works.
While here, remove an even older comment about missing features that
have been implemented.
|
|
c05a55b0
|
2013-07-23T09:40:19
|
|
Clean up some documentation
clang's docparser highlighted these.
|
|
e5bdf829
|
2013-07-22T23:59:08
|
|
Merge pull request #1732 from libgit2/revwalk-glob-should-ignore-invalid
Invalid refs on disk cause revwalk globbing to fail
|
|
4cee9b86
|
2013-07-22T11:41:23
|
|
Update init and clean for revwalk::basic tests
The new tests don't always want to use the same fixture data as
the old ones so this makes it configurable on a per-test basis.
|
|
989710d9
|
2013-07-22T11:22:55
|
|
Fix warning message about mismatched types
|
|
c77342ef
|
2013-07-22T11:20:34
|
|
Use pool for loose refdb string allocations
Instead of using lots of strdup calls, this adds a memory pool to
the loose refs iteration code and uses it for keeping track of the
loose refs array. Memory usage could probably be reduced even
further by eliminating the vector and just scanning by adding the
strlen of each ref, but that would be a more intrusive changes.
This also updates the error handling to be more thorough about
checking for failed allocations, etc.
|
|
b7107131
|
2013-07-22T11:01:19
|
|
git_reference_next_name must match git_reference_next
The git_reference_next API silently skips invalid references when
scanning the loose refs. The git_reference_next_name API should
skip the same ones even though it isn't creating the reference
object.
This adds a test with a an invalid loose reference and makes sure
that both APIs skip the same entries and generate the same results.
|
|
1cd9dc29
|
2013-07-19T11:14:22
|
|
Merge pull request #1743 from ethomson/readme
Clarify when to use github issues
|
|
bef59b1b
|
2013-07-19T12:56:47
|
|
Update README.md
|
|
97309dd0
|
2013-07-19T10:43:53
|
|
Merge pull request #1726 from crazymaster/development
git_buf_text_gather_stats doesn't work for multi-byte characters
|
|
41a93cc6
|
2013-07-19T12:43:08
|
|
Clarify when to use github issues
Suggest that github issues are to be used for bug reports, while questions about usage should be directed to StackOverflow.
|
|
847b8e0e
|
2013-07-19T10:29:47
|
|
Merge pull request #1742 from martinwoodward/Refresh-Readme
Refresh readme and contributing guidance
|
|
6ca83665
|
2013-07-19T18:20:58
|
|
Update contributing guidance to explain PR flow
Updating the contributing guidance to explain a bit more about how we use
PR's
|
|
3e3d332b
|
2013-07-19T18:04:11
|
|
Tidy up the methods of contacting the project
Updated the methods of getting involved with the project and asking
questions.
|
|
275d8d55
|
2013-07-18T09:37:59
|
|
Typo
|
|
79400365
|
2013-07-18T06:26:25
|
|
Merge pull request #1736 from ben/default-to-cdecl
Switch default calling convention to cdecl
|
|
99a9c86c
|
2013-07-17T20:08:15
|
|
Merge pull request #1722 from libgit2/ntk/fix/issue_1722
git_revparse_ext: should return a NULL reference when the revparse expression doesn't lead to a reference
|
|
d2db351c
|
2013-07-17T16:12:15
|
|
Merge pull request #1735 from ethomson/ignored_are_not_rename_candidates
don't include ignored as rename candidates
|
|
d55bed1a
|
2013-07-17T16:55:00
|
|
don't include ignored as rename candidates
|
|
e49dc687
|
2013-07-17T14:06:31
|
|
Switch default calling convention to cdecl.
|
|
4e05fa7d
|
2013-07-15T20:45:18
|
|
Merge pull request #1731 from alindeman/patch-1
Small grammar fix in docs
|
|
51b0397a
|
2013-07-15T23:40:57
|
|
Small grammar fix in docs
|
|
f5385150
|
2013-07-15T09:45:04
|
|
Merge pull request #1728 from ivoire/small_fixes
Small fixes
|
|
3f8086e0
|
2013-07-15T09:44:02
|
|
Merge pull request #1729 from tiennou/remote-owner
Add `git_remote_owner`.
|
|
85e1eded
|
2013-07-15T16:31:25
|
|
Add `git_remote_owner`
|
|
c6451624
|
2013-07-15T16:00:07
|
|
Fix some more memory leaks in error path
|
|
050af8bb
|
2013-07-15T16:00:00
|
|
pack: fix memory leak in error path
|
|
8d6ef4bf
|
2013-07-15T15:59:35
|
|
index: fix potential memory leaks
|
|
9146f1e5
|
2013-07-15T15:59:18
|
|
repository: clarify assignment and test order
|
|
d0b25d9d
|
2013-07-15T08:14:00
|
|
Fix
|
|
2185dd6f
|
2013-07-15T07:59:04
|
|
Fix typo
|
|
b74d4478
|
2013-07-15T07:41:39
|
|
Fix the initial line
|
|
19bee769
|
2013-07-15T07:39:16
|
|
Revert "Replace Japanese characters with the encoded hexadecimal values"
This reverts commit a91e4d6b21e141c2abc76b65b2d4c91d5d3e03cc.
|
|
a91e4d6b
|
2013-07-15T07:19:42
|
|
Replace Japanese characters with the encoded hexadecimal values
|
|
35173312
|
2013-07-14T15:16:08
|
|
Merge pull request #1727 from alindeman/lookup-object-doc-fix
Fixes return type documentation
|
|
960431c3
|
2013-07-14T17:26:24
|
|
Fixes return type documentation
|
|
6550565a
|
2013-07-13T03:02:00
|
|
Fix gather_stats
|
|
d6d34cd0
|
2013-07-13T02:10:16
|
|
Add test for multi-byte characters
|
|
80fd31fa
|
2013-07-13T13:30:23
|
|
revparse: Don't return a reference when asked for a git object
Fix #1722
|
|
1662158c
|
2013-07-13T06:18:24
|
|
Merge pull request #1725 from libgit2/ntk/fix/leaks
Plug some memory leaks
|
|
d6cb13d7
|
2013-07-13T14:00:05
|
|
tests: Fix memory leak
|
|
b3a559dd
|
2013-07-13T13:55:03
|
|
submodule: Fix memory leaks
|
|
3a025b97
|
2013-07-12T17:03:57
|
|
Merge pull request #1724 from ethomson/cmake_vs
header files show up in vs and xcode
|
|
cdacd3d9
|
2013-07-12T16:53:00
|
|
header files show up in vs
|
|
ed0be48b
|
2013-07-11T15:36:03
|
|
Merge pull request #1721 from ethomson/config_paths
preload configuration paths
|
|
0a1c8f55
|
2013-07-11T17:09:15
|
|
preload configuration paths
|
|
f2de67d5
|
2013-07-11T11:27:57
|
|
Merge pull request #1719 from libgit2/arrbee/threading-primitives
Update git__swap threading primitive
|
|
584f2d30
|
2013-07-11T11:04:42
|
|
Fix warnings on Win64
|
|
814de0bc
|
2013-07-11T11:00:41
|
|
Update git__swap thread helper
This makes git__swap use the __sync_lock_test_and_set primitive
with GCC and the InterlockedExchangePointer primitive with MSVC.
Previously is used compare_and_swap in a way that was probably
unintuitive for most thinking (i.e. it could fail to swap in the
value if another thread raced in). Now it will always succeed
and the last thread to run in a race will win instead of the
first thread.
This also fixes up a little confusion between volatile void **
and void * volatile * that came up with the Win32 compiler.
|
|
d70ce9bd
|
2013-07-10T15:38:57
|
|
Clarify docs for git_status_file
|
|
bd679796
|
2013-07-10T13:15:28
|
|
Merge pull request #1685 from arrbee/submodule-status-fixes
Improve submodules status data caching and compatibility
|
|
b8df28a5
|
2013-06-30T08:38:10
|
|
Clean up left over alloc change
|
|
f9775a37
|
2013-06-29T23:22:31
|
|
Add ignore_submodules to diff options
This adds correct support for an equivalent to --ignore-submodules
in diff, where an actual ignore value can be passed to diff to
override the per submodule settings in the configuration.
This required tweaking the constants for ignore values so that
zero would not be used and could represent an unset option to the
diff. This was an opportunity to move the submodule values into
include/git2/types.h and to rename the poorly named DEFAULT values
for ignore and update constants to RESET instead.
Now the GIT_DIFF_IGNORE_SUBMODULES flag is exactly the same as
setting the ignore_submodules option to GIT_SUBMODULE_IGNORE_ALL
(which is actually a minor change from the old behavior in that
submodules will now be treated as UNMODIFIED deltas instead of
being left out totally - if you set GIT_DIFF_INCLUDE_UNMODIFIED).
This includes tests for the various new settings.
|
|
125655fe
|
2013-07-02T16:49:57
|
|
Untracked directories with .git should be ignored
This restores a behavior that was accidentally lost during some
diff refactoring where an untracked directory that contains a .git
item should be treated as IGNORED, not as UNTRACKED. The submodule
code already detects this, but the diff code was not handling the
scenario right.
This also updates a number of existing tests that were actually
exercising the behavior but did not have the right expectations in
place. It actually makes the new
`test_diff_submodules__diff_ignore_options` test feel much better
because the "not-a-submodule" entries are now ignored instead of
showing up as untracked items.
Fixes #1697
|
|
9564229a
|
2013-06-30T08:43:07
|
|
Add tests for diff.ignoreSubmdules config
|
|
2e3e273e
|
2013-06-29T13:20:45
|
|
Update diff to new internal submodule status API
Submodules now expose an internal status API that allows diff to
get back the OID values from the submodule very easily and also
to avoiding caching issues and to override the ignore setting for
the submodule.
|
|
1aad6137
|
2013-06-29T13:16:33
|
|
Submodule status improvements
This fixes the way that submodule status is checked to bypass just
about all of the caching in the submodule object. Based on the
ignore value, it will try to do the minimum work necessary to find
the current status of the submodule - but it will actually go to
disk to get all of the current values.
This also removes the custom refcounting stuff in favor of the
common git_refcount style. Right now, it is still for internal
purposes only, but it should make it easier to add true submodule
refcounting in the future with a public git_submodule_free call
that will allow bindings not to worry about the submodule object
getting freed from underneath them.
|
|
3fe046cf
|
2013-06-29T13:13:38
|
|
Add BARE option to git_repository_open_ext
This adds a BARE option to git_repository_open_ext which allows
a fast open path that still knows how to read gitlinks and to
search for the actual .git directory from a subdirectory.
`git_repository_open_bare` is still simpler and faster, but having
a gitlink aware fast open is very useful for submodules where we
want to quickly be able to peek at the HEAD and index data without
doing any other meaningful repo operations.
|
|
302a04b0
|
2013-06-29T12:41:39
|
|
Add accessors for refcount value
|
|
e807860f
|
2013-06-27T16:52:38
|
|
Add timestamp check to submodule status
This is probably not the final form of this change, but this is
a preliminary version of checking a timestamp to see if the cached
working directory HEAD OID matches the current. Right now, this
uses the timestamp on the index and is, like most of our timestamp
checking, subject to having only second accuracy.
|
|
41f1f9d7
|
2013-06-27T16:52:00
|
|
Add API to get path to index file
|
|
4535f044
|
2013-06-27T16:12:44
|
|
More diff submodule tests for cache issues
The submodules code caches data about submodules in a way that
can cause problems. This adds some tests that try making various
modifications to the state of a submodule to see where we can
catch out problems in the submodule caching.
Right now, I've put in an extra git_submodule_reload_all so that
the test will pass, but with that commented out, the test fails.
I'm working on fixing the broken version of the test at which
point I'll commit the fix and delete the extra reload that makes
the test pass.
|
|
3e7d7100
|
2013-06-27T16:12:00
|
|
Fix diff test helper to show parent file/line
|
|
49621a34
|
2013-06-27T15:46:46
|
|
Fix memory leak in test
|
|
12f8fe00
|
2013-06-27T15:43:12
|
|
More improvements to submodule diff tests
This controls for the diff.mnemonicprefix setting so that can't
break the tests. Also, this expands one test to emulate an
ObjectiveGit test more closely.
|
|
0105b55e
|
2013-06-27T15:26:31
|
|
Add another submodule test of dirty wd
|
|
c0e529f3
|
2013-07-10T21:06:53
|
|
Merge branch 'arrbee/examples-log' into development
|
|
406dd556
|
2013-07-10T21:05:47
|
|
bitvec: Simplify the bit vector code
|
|
2b672d5b
|
2013-07-08T22:46:36
|
|
Add git_pathspec_match_diff API
This adds an additional pathspec API that will match a pathspec
against a diff object. This is convenient if you want to handle
renames (so you need the whole diff and can't use the pathspec
constraint built into the diff API) but still want to tell if the
diff had any files that matched the pathspec.
When the pathspec is matched against a diff, instead of keeping
a list of filenames that matched, instead the API keeps the list
of git_diff_deltas that matched and they can be retrieved via a
new API git_pathspec_match_list_diff_entry.
There are a couple of other minor API extensions here that were
mostly for the sake of convenience and to reduce dependencies
on knowing the internal data structure between files inside the
library.
|
|
6fc5a581
|
2013-07-08T22:42:02
|
|
Basic bit vector
This is a simple bit vector object that is not resizable after
the initial allocation but can be of arbitrary size. It will
keep the bti vector entirely on the stack for vectors 64 bits
or less, and will allocate the vector on the heap for larger
sizes. The API is uniform regardless of storage location.
This is very basic right now and all the APIs are inline functions,
but it is useful for storing an array of boolean values.
|
|
3e96ecf2
|
2013-07-08T09:53:24
|
|
Improve include/git2/pathspec.h docs
|
|
9abc78ae
|
2013-07-07T21:56:11
|
|
Convert commit->parent_ids to git_array_t
This converts the array of parent SHAs from a git_vector where
each SHA has to be separately allocated to a git_array_t where
all the SHAs can be kept in one block. Since the two collections
have almost identical APIs, there isn't much involved in making
the change. I did add an API to git_array_t so that it could be
allocated at a precise initial size.
|
|
bc6f0839
|
2013-07-05T15:22:21
|
|
Add a bunch more features to log example
|
|
a8b5f116
|
2013-07-03T17:00:50
|
|
Fix example/log.c pathspec handling of merges
This fixes the way the example log program decides if a merge
commit should be shown when a pathspec is given. Also makes it
easier to use the pathspec API to just check "does a tree match
anything in the pathspec" without allocating a match list.
|
|
733c4f3a
|
2013-07-03T15:12:14
|
|
more examples/log.c bug fixing
|
|
5a169711
|
2013-07-03T15:08:54
|
|
fix bug with order args and no revision
|
|
2b3bd8ec
|
2013-07-03T14:53:39
|
|
Fix example/log.c minor diffs with git log
|
|
f44c4fa1
|
2013-07-01T15:41:32
|
|
Add basic commit formatting to log output
|
|
f094f905
|
2013-07-01T15:41:01
|
|
Add raw header access to commit API
|
|
8ba0ff69
|
2013-06-25T15:39:44
|
|
rev-parse example
|
|
d0628e2f
|
2013-06-25T15:39:13
|
|
More progress on log example
|
|
0d44d3dc
|
2013-06-24T23:21:23
|
|
Extending log example code
This adds more command line processing to the example version of
log. In particular, this adds the funky command line processing
that allows an arbitrary series of revisions followed by an
arbitrary number of paths and/or glob patterns.
The actual logging part still isn't implemented.
|
|
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.
|