|
965e4e2d
|
2013-01-21T13:19:41
|
|
Parse commit time as uint64_t to avoid overflow
The commit time is already stored as a git_time_t, but we were
parsing is as a uint32_t. This just switches the parser to use
uint64_t which will handle dates further in the future (and adds
some tests of those future dates).
|
|
d47c6aab
|
2013-01-20T04:20:09
|
|
commit: don't include the LF in the header field value
When the encoding header changed to be treated as an additional
header, the EOL pointer started to point to the byte after the LF,
making the git__strndup call copy the LF into the value.
Increase the EOL pointer value after copying the data to keep the rest
of the semantics but avoid copying LF.
|
|
7a2cf780
|
2013-01-20T01:57:32
|
|
Fix compilation on OpenBSD
|
|
77844988
|
2013-01-18T14:51:46
|
|
Fix really bad error handling in git_smart__negotiate_fetch
|
|
ddcb28a4
|
2013-01-17T16:56:57
|
|
Merge pull request #1239 from ethomson/index_remove
add an index_remove_bypath that removes conflicts
|
|
75f49ae4
|
2013-01-17T13:45:52
|
|
Merge pull request #1244 from carlosmn/pack-evict
A comparison of eviction algorithms for the delta base cache
|
|
c49fa037
|
2013-01-17T13:37:32
|
|
Merge pull request #1247 from sba1/dont-segfault-if-transport-doesnt-support-push
Don't segfault if transport doesn't support push.
|
|
5c8901ab
|
2013-01-17T13:36:33
|
|
Merge pull request #1255 from arrbee/fix-signed-commit-header-parsing
Add skipping of unknown commit headers
|
|
291090a0
|
2013-01-17T13:19:09
|
|
Add skipping of unknown commit headers
This moves the check for the "encoding" header into a loop which
is just scanning for non-required headers at the end of a commit
header. That loop will skip unrecognized lines (including header
continuation lines) until a terminating completely blank line is
found, and only then does it move to reading the commit message.
|
|
6e959708
|
2013-01-17T13:11:57
|
|
cache should contain on-disk (filtered) file size
|
|
9bf56c7b
|
2013-01-15T21:39:37
|
|
Don't segfault if transport doesn't support push.
Instead, set an more informative error message.
|
|
34a4ad46
|
2013-01-16T15:52:58
|
|
Merge pull request #1211 from arrbee/fix-icase-status-file
Fix case insensitivity issues in git_status_file
|
|
bf031581
|
2013-01-14T14:22:11
|
|
branch: Introduce git_branch_tracking_name()
|
|
28cbd2e2
|
2013-01-14T12:09:10
|
|
Fix indentations
|
|
fffe429a
|
2013-01-10T11:11:42
|
|
Shortcut spool and sort for empty iterator
|
|
25423d03
|
2013-01-09T16:07:54
|
|
Support case insensitive tree iterators and status
This makes tree iterators directly support case insensitivity by
using a secondary index that can be sorted by icase. Also, this
fixes the ambiguity check in the git_status_file API to also be
case insensitive. Lastly, this adds new test cases for case
insensitive range boundary checking for all types of iterators.
With this change, it should be possible to deprecate the spool
and sort iterator, but I haven't done that yet.
|
|
98527b5b
|
2013-01-09T16:03:35
|
|
Add git_tree_entry_cmp and git_tree_entry_icmp
This adds a new external API git_tree_entry_cmp and a new internal
API git_tree_entry_icmp for sorting tree entries. The case
insensitive one is internal only because general users should
never be seeing case-insensitively sorted trees.
|
|
23594c1d
|
2013-01-09T16:02:42
|
|
Add git_path_icmp to case-insensitive path cmp
This adds git_path_icmp to complement git_path_cmp.
|
|
851ad650
|
2013-01-09T16:00:16
|
|
Add payload "_r" versions of bsearch and tsort
git__bsearch and git__tsort did not pass a payload through to the
comparison function. This makes it impossible to implement sorted
lists where the sort order depends on external data (e.g. building
a secondary sort order for the entries in a tree). This commit
adds git__bsearch_r and git__tsort_r versions that pass a third
parameter to the cmp function of a user payload.
|
|
134d8c91
|
2013-01-08T15:53:13
|
|
Update iterator API with flags for ignore_case
This changes the iterator API so that flags can be passed in to
the constructor functions to control the ignore_case behavior.
At this point, the flags are not supported on tree iterators (i.e.
there is no functional change over the old API), but the API
changes are all made to accomodate this.
By the way, I went with a flags parameter because in the future
I have a couple of other ideas for iterator flags that will make
it easier to fix some diff/status/checkout bugs.
|
|
5c8bb98c
|
2013-01-08T13:45:06
|
|
Fix err msg for ambiguous path in git_status_file
Returning GIT_EAMBIGUOUS from inside the status callback gets
overridden with GIT_EUSER. `git_status_file` accounted for this
via the callback payload, but was allowing the error message to
be cleared. Move the `giterr_set` call outside the callback to
where the EUSER case was being dealt with.
|
|
4b181037
|
2013-01-08T13:39:15
|
|
Minor iterator API cleanups
In preparation for further iterator changes, this cleans up a few
small things in the iterator API:
* removed the git_iterator_for_repo_index_range API
* made git_iterator_free not be inlined
* minor param name and test function name tweaks
|
|
facc0650
|
2013-01-08T13:27:25
|
|
Simplify git_diff__paired_foreach icase handling
|
|
230010d1
|
2013-01-15T09:46:50
|
|
Merge pull request #1238 from nulltoken/fix/checkout-index
checkout: Teach checkout to cope with orphaned Head
|
|
848d77dc
|
2013-01-14T10:05:35
|
|
Merge pull request #1242 from sba1/init-with-template-fix
Some fixes for external template support
|
|
9c62aaab
|
2013-01-14T17:42:12
|
|
pack: evict all of the pages at once
Somewhat surprisingly, this can increase the speed considerably, as we
don't bother trying to decide what to evict, and the most used entries
are quickly back into the cache.
|
|
ed6648ba
|
2013-01-14T16:39:22
|
|
pack: evict objects from the cache in groups of eight
This drops the cache eviction below libcrypto and zlib in the perf
output. The number has been chosen empirically.
|
|
85f40312
|
2013-01-13T11:30:05
|
|
Do not use GIT_CPDIR_CHMOD flag when copying the template.
This is an intermin solution. While this essentially disables the
--shared flag feature, previously external templates did not work
at all. This change fixes the previously corrected, and since
then failing, repo_init__extended_with_template() test.
The problem is now documented in the source code comments.
|
|
5b524d69
|
2013-01-12T19:37:14
|
|
Fix Travis compilation warnings
|
|
2a3b3e03
|
2013-01-12T19:27:31
|
|
checkout: Teach checkout to cope with orphaned Head
Fix #1236
|
|
25743bd7
|
2013-01-12T13:47:56
|
|
add an index_remove_bypath that removes conflicts, renamed add_from_workdir to match
|
|
b7b1acfd
|
2013-01-12T20:02:00
|
|
Clear local error variable after invoking giterr_clear().
|
|
09e29e47
|
2013-01-12T19:31:07
|
|
pack: fixes to the cache
The offset should be git_off_t, and we should check the return value
of the mutex lock function.
|
|
96c9b9f0
|
2013-01-12T18:38:19
|
|
indexer: properly free the packfile resources
The indexer needs to call the packfile's free function so it takes care of
freeing the caches.
We still need to close the mwf descriptor manually so we can rename the
packfile into its final name on Windows.
|
|
e2d2c6e5
|
2013-01-12T02:14:14
|
|
Merge pull request #1222 from scunz/clone_branch
Switch to specified branch during clone
|
|
3874f2d5
|
2013-01-11T20:23:46
|
|
Kill vestigal dangling-remote code
Fixes #1232
|
|
359316b5
|
2013-01-11T17:16:55
|
|
Merge pull request #1215 from phkelley/binaryunicode
Add a failing test for CRLF filters
|
|
355dddbf
|
2013-01-12T01:40:35
|
|
buf: Is this the function you were looking for?
|
|
ad10db2a
|
2013-01-10T15:59:36
|
|
Check for binary blobs in checkout
This adds a git_buf_text_is_binary check to blobs before applying
filters when the blob data is being written to disk.
|
|
160e4fb7
|
2013-01-11T11:35:09
|
|
Merge pull request #1230 from arrbee/match-core-git-diff-binary-detection
Match binary file check of core git in diff
|
|
6e19edaa
|
2013-01-11T11:34:13
|
|
Merge pull request #1229 from arrbee/fix-diff-patch-line-numbers
Fix diff patch line number calculation
|
|
0d65acad
|
2013-01-11T11:24:26
|
|
Match binary file check of core git in diff
Core git just looks for NUL bytes in files when deciding about
is-binary inside diff (although it uses a better algorithm in
checkout, when deciding if CRLF conversion should be done).
Libgit2 was using the better algorithm in both places, but that
is causing some confusion. For now, this makes diff just look
for NUL bytes to decide if a file is binary by content in diff.
|
|
805c476c
|
2013-01-11T11:20:44
|
|
Fix diff patch line number calculation
This was just wrong. Added a test that verifying patch line
numbers even for hunks further into a file and then fixed the
algorithm. I needed to add a little extra state into the patch
so that I could track old and new file numbers independently,
but it should be okay.
|
|
80d647ad
|
2013-01-11T20:15:06
|
|
Revert "pack: packfile_free -> git_packfile_free and use it in the indexers"
This reverts commit f289f886cb81bb570bed747053d5ebf8aba6bef7, which
makes the tests fail on Windows. Revert until we can figure out a
solution.
|
|
090d5e1f
|
2013-01-11T14:40:09
|
|
Fix MSVC compilation warnings
|
|
4a0ac175
|
2013-01-10T23:27:13
|
|
checkout: Deploy EMERGECONFLICT usage
|
|
d0b14cea
|
2013-01-11T18:21:09
|
|
pack: That declaration
|
|
32b33d62
|
2013-01-11T09:12:21
|
|
Merge pull request #1228 from carlosmn/delta-base
Introduce a delta base cache
|
|
f289f886
|
2013-01-11T17:24:52
|
|
pack: packfile_free -> git_packfile_free and use it in the indexers
It turns out the indexers have been ignoring the pack's free function
and leaking data. Plug that.
|
|
0ed75620
|
2012-12-21T13:46:48
|
|
pack: limit the amount of memory the base delta cache can use
Currently limited to 16MB (like git) and to objects up to 1MB in
size.
|
|
c8f79c2b
|
2012-12-21T10:59:10
|
|
pack: abstract out the cache into its own functions
|
|
525d961c
|
2012-12-20T07:55:51
|
|
pack: refcount entries and add a mutex around cache access
|
|
c0f4a011
|
2012-12-19T16:48:12
|
|
pack: introduce a delta base cache
Many delta bases are re-used. Cache them to avoid inflating the same
data repeatedly.
This version doesn't limit the amount of entries to store, so it can
end up using a considerable amound of memory.
|
|
a379e652
|
2013-01-11T16:14:17
|
|
refspec: prevent git_refspec__free() from segfaulting
Fix libgit2/libgit2sharp#247
|
|
1265b51f
|
2013-01-11T03:07:50
|
|
Add missing git_buf_free
|
|
88aef766
|
2013-01-11T02:45:55
|
|
Implement analog for 'git checkout --branch xxx ...'
|
|
132c2db6
|
2013-01-11T02:18:27
|
|
Fix possible free'ing of unitialized pointer in error case
|
|
40342bd2
|
2013-01-10T15:15:37
|
|
Add GIT_CHECKOUT_DISABLE_PATHSPEC_MATCH
This adds an option to checkout a la the diff option to turn off
fnmatch evaluation for pathspec entries. This can be useful to
make sure your "pattern" in really interpretted as an exact file
match only.
|
|
404880b1
|
2013-01-10T11:24:09
|
|
Merge pull request #1206 from ben/stock-auth
Expose stock user/pass credential utility
|
|
48de3061
|
2013-01-10T10:04:53
|
|
Merge pull request #1220 from ethomson/reuc_empty_sides
REUC needs to handle empty sides
|
|
eb3c247a
|
2013-01-10T11:56:02
|
|
REUC needs to handle empty sides
|
|
7bacc2c8
|
2013-01-10T08:15:10
|
|
Merge pull request #1182 from libgit2/odb-file-refresh
Sane refresh logic for #1180
|
|
8fe6bc5c
|
2013-01-10T15:43:08
|
|
odb: Refresh on `exists` query too
|
|
891a4681
|
2013-01-04T17:42:41
|
|
dat errorcode
|
|
4a863c06
|
2013-01-03T20:36:26
|
|
Sane refresh logic
All the ODB backends have a specific refresh interface. When reading an
object, first we attempt every single backend: if the read fails, then
we refresh all the backends and retry the read one more time to see if
the object has appeared.
|
|
e9bb730c
|
2012-11-09T06:02:30
|
|
Added missing curly brackets and fixed compiler warnings.
|
|
520dcc1c
|
2013-01-08T19:55:59
|
|
Move credential helpers to their own (optional) header
|
|
ffb02b16
|
2013-01-08T12:58:20
|
|
Expose stock user/pass credential utility
|
|
abeefbbe
|
2012-12-26T19:16:23
|
|
push: properly handle tags
Currently, push doesn't really handle tags when queueing objects. Fix
it.
|
|
087f64d3
|
2012-12-17T18:48:26
|
|
Relax refspecs accepted by push
|
|
de590550
|
2013-01-08T17:11:11
|
|
Resolve crash with diff against empty file
It is not legal inside our `p_mmap` function to mmap a zero length
file. This adds a test that exercises that case inside diff and
fixes the code path where we would try to do that.
The fix turns out not to be a lot of code since our default file
content is already initialized to "" which works in this case.
Fixes #1210
|
|
359fc2d2
|
2013-01-08T17:07:25
|
|
update copyrights
|
|
8f09f464
|
2013-01-08T16:54:44
|
|
remove ppc sha1 asm
|
|
f2b7f7a6
|
2013-01-07T15:44:22
|
|
Share git_diff_blobs/git_diff_blob_to_buffer code
This moves the implementation of these two APIs into common code
that will be shared between the two. Also, this adds tests for
the `git_diff_blob_to_buffer` API. Lastly, this adds some extra
`const` to a few places that can use it.
|
|
f6234cd9
|
2012-12-21T20:57:43
|
|
Introduce git_diff_blob_to_buffer
|
|
f6ed5e2d
|
2013-01-07T09:53:43
|
|
Revert changes from git/git diff-delta.c by dak@gnu.org, proski@gnu.org
|
|
c31ae146
|
2013-01-06T18:38:29
|
|
merge cleanup should actually cleanup and the test should actually test
|
|
5df7ad3e
|
2013-01-06T07:56:45
|
|
Merge pull request #1196 from scunz/allow_clone_without_master_branch
Allow to clone repositories that don't have a `master` branch
|
|
74f880a6
|
2013-01-06T07:56:08
|
|
Merge pull request #1197 from nulltoken/travis/run-online-tests
travis: Include the online suite when running against Travis
|
|
d01fe380
|
2013-01-06T15:26:54
|
|
reset: Fix a memory leak
|
|
d1aee477
|
2013-01-06T15:09:27
|
|
clone: Fix a memory leak
|
|
2ba6f3c7
|
2013-01-06T14:30:52
|
|
Allow to clone repositories that don't have a `master` branch
Before this, we error out from `reference_matches_remote_head` if the
reference we're searching for does not exist.
Since we explicitly check if master is existing in `update_head_to_remote`
and error out if it doesn't, a repository without master branch could
not be cloned.
In fact this was later clobbered by what is fixed in #1194.
However, this patch introduces a `found` member in `head_info` and sets
it accordingly. That also saves us from checking the string length of
`branchname` a few times.
|
|
f9b55bcb
|
2013-01-05T18:20:42
|
|
git_mwindow_file_deregister() shouldn't return errors
As a function that appears to only be called on error paths, I don't
think it makes sense for it to return an error, or clobber the global
giterr. Note that no existing callsites actually check the return
code.
In my own application, there are errors where the real error ends
up being hidden, as git_mwindow_file_deregister() clobbers the
global giterr. I'm not sure this error is even relevant?
|
|
d74b1bc5
|
2013-01-05T15:44:19
|
|
Merge pull request #1131 from libgit2/correct-ahead-behind
Fix an issue with ahead-behind for lopsided traversal
|
|
ef82ff30
|
2013-01-05T00:46:39
|
|
Handle packed refs with no trailing newline
I saw a repo in the wild today which had a master branch ref which was packed, but had no trailing newline. Git handled it fine, but libgit2 choked on it. Fix seems simple enough. If we don't see a newline, assume the end of the buffer is the end of the ref line.
|
|
79ff264e
|
2013-01-05T11:34:19
|
|
Fixed size_t format string warning
|
|
817d6251
|
2013-01-03T16:56:27
|
|
Fix checkout of index-only dirs and prefixed paths
There are a couple of checkout bugs fixed here. One is with
untracked working directory entries that are prefixes of tree
entries but not in a meaningful way (i.e. "read" is a prefix of
"readme.txt" but doesn't interfere in any way). The second bug
is actually a redo of 07edfa0fc640f85f95507c3101e77accd7d2bf0d
where directory entries in the index that are not in the diff
were not being removed correctly. That fix remedied one case
but broke another.
|
|
7fc00435
|
2013-01-03T15:48:52
|
|
Add index API to remove all files in a directory
This adds the git_index_remove_directory API plus tests.
|
|
1b88faf7
|
2013-01-03T14:21:25
|
|
Fix oid tostr issue with NULL oid
I made a small change to the behavior of this code and apparently
got it wrong. Sigh.
|
|
d8889d2b
|
2013-01-03T14:08:53
|
|
Fix checkout bug rmv untracked trees from index
When checking out with the GIT_CHECKOUT_REMOVE_UNTRACKED option
and there was an entire tree in the working directory and in the
index that is not in the baseline nor target commit, the tree was
correctly(?) removed from the working directory but was not
successfully removed from the index. This fixes that and adds a
test of the functionality.
|
|
dde7602a
|
2013-01-03T13:22:34
|
|
Fix memory leak with checkout tree iterator
|
|
0d70f650
|
2013-01-03T10:51:18
|
|
Fixing checkout UPDATE_ONLY and adding tests
This adds a bunch of new checkout tests and in the process I found
a bug in the GIT_CHECKOUT_UPDATE_ONLY flag which I fixed.
|
|
2850252a
|
2013-01-03T09:11:52
|
|
Oh yeah, bugs from my rebase
|
|
77cffa31
|
2013-01-02T17:14:00
|
|
Simplify checkout documentation
This moves a lot of the detailed checkout documentation into a new
file (docs/checkout-internals.md) and simplifies the public docs
for the checkout API.
|
|
e0548c0e
|
2013-01-02T17:09:07
|
|
Fix some submodule and typechange checkout cases
There were a bunch of small bugs in the checkout code where I was
assuming that a typechange was always from a tree to a blob or
vice versa. This fixes up most of those cases. Also, there were
circumstances where the submodule definitions were changed by the
checkout and the submodule data was not getting reloaded properly
before the new submodules were checked out.
|
|
16a666d3
|
2013-01-02T17:05:54
|
|
Fix workdir notifications and removals
The notifications were broken from the various iterations over
this code and were not returning working dir item data correctly.
Also, workdir items that were alphabetically after the last item
in diff were not being processed.
|
|
546d65a8
|
2013-01-02T17:01:34
|
|
Fix up spoolandsort iterator usage
The spoolandsort iterator changes got sort-of cherry picked out of
this branch and so I dropped the commit when rebasing; however,
there were a few small changes that got dropped as well (since the
version merged upstream wasn't quite the same as what I dropped).
|
|
a9a73007
|
2012-12-20T16:16:22
|
|
Submodule caching fix and location API
This adds a new API to the submodule interface that just returns
where information about the submodule was found (e.g. config file
only or in the HEAD, index, or working directory).
Also, the old "refresh" call was potentially keeping some stale
submodule data around, so this simplfies that code and literally
discards the old cache, then reallocates.
|
|
6f58332f
|
2012-12-20T16:15:02
|
|
Fix use of uninitialized variable
|
|
a6a82e1a
|
2012-12-19T15:06:40
|
|
Improve error propagation in stash
Stash was sometimes obscuring the actual error code, replacing it
with a -1 when there was more descriptive value. This updates
stash to preserve the original error code more reliably along
with a variety of other error handling tweaks.
I believe this is an improvement, but arguably, preserving the
underlying error code may result in values that are harder to
interpret by the caller who does not understand the internals.
Discussion is welcome!
|