|
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
|
|
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!
|
|
8fe713cc
|
2012-12-19T15:06:14
|
|
Make git_oid_tostr use out buffer for NULL oid
Previously a NULL oid was handled like an empty buffer and
returned a status empty string. This makes git_oid_tostr()
set the output buffer to the empty string instead.
|
|
5cf9875a
|
2012-12-18T15:19:24
|
|
Add index updating to checkout
Make checkout update entries in the index for all files that are
updated and/or removed, unless flag GIT_CHECKOUT_DONT_UPDATE_INDEX
is given. To do this, iterators were extended to allow a little
more introspection into the index being iterated over, etc.
|
|
7e5c8a5b
|
2012-12-10T15:31:43
|
|
More checkout improvements
This flips checkout back to be driven off the changes between
the baseline and the target trees. This reinstates the complex
code for tracking the contents of the working directory, but
overall, I think the resulting logic is easier to follow.
|
|
cf208031
|
2012-12-06T13:36:17
|
|
Rework checkout internals (again)
I've tried to map out the detailed behaviors of checkout and make
sure that we're handling the various cases correctly, along with
providing options to allow us to emulate "git checkout" and "git
checkout-index" with the various flags. I've thrown away flags
in the checkout API that seemed like clutter and added some new
ones. Also, I've converted the conflict callback to a general
notification callback so we can emulate "git checkout" output and
display "dirty" files.
As of this commit, the new behavior is not working 100% but some
of that is probably baked into tests that are not testing the
right thing. This is a decent snapshot point, I think, along the
way to getting the update done.
|
|
bfe7d7de
|
2012-11-26T17:24:02
|
|
Reorder operations in git reset
This corrects the order of operations in git reset so that the
checkout to reset the working directory content is done before
the HEAD is moved. This allows us to use the HEAD and the index
content to know what files can / should safely be reset.
Unfortunately, there are still some cases where the behavior of
this revision differs from core git. Notable, a file which has
been added to the index but is not present in the HEAD is
considered to be tracked by core git (and thus removable by a
reset command) whereas since this loads the target state into
the index prior to resetting, it will consider such a file to be
untracked and won't touch it. That is a larger fix that I'll
defer to a future commit.
|
|
6fee906c
|
2012-12-18T15:13:11
|
|
missing error message is confusing
|
|
6ac724af
|
2012-12-18T15:12:06
|
|
Clear error to avoid leaving invalid error behind
|
|
c18a5ec5
|
2013-01-04T11:10:39
|
|
Merge pull request #1174 from nulltoken/topic/soft_reset_with_index_conflicts
Prevent soft reset when index contains conflicts
|
|
27fe6efe
|
2013-01-04T13:48:08
|
|
Fix git_index sorting with core.ignorecase in git_index_read
|
|
9a0d5904
|
2012-12-27T13:42:27
|
|
reset: Cannot soft reset with a conflicted index
|
|
9651fdc2
|
2013-01-03T22:28:59
|
|
Give proper license notice to code from Android
The usage of the Android derrived code contains a full notice
which must be provided with the source code as per the terms
given at:
https://android.googlesource.com/platform/bionic/+/android-4.0.3_r1.1/libc/bionic/dirname_r.c
|
|
43464497
|
2013-01-03T22:24:10
|
|
Add full license notice to bsearch code
The original BSD glibc code contains the notice as given at
http://opensource.apple.com/source/gcc/gcc-5666.3/libiberty/bsearch.c
and should be given in full along with the code.
|
|
d73d52df
|
2013-01-03T13:26:11
|
|
Fix bug in gen_pktline() for deletes of missing remote refs
* gen_pktline() in smart_protocol.c was skipping refspecs that deleted
refs that were not advertised by the server. The new behavior is to
send a delete command with an old-id of zero, which matches the behavior
of the official git client.
* Update test_network_push__delete() in reaction to above fix.
* Obviate messy logic that handles missing push_spec rrefs by canonicalizing
push_spec. After calculate_work(), loid, roid, and rref, are filled in with
exactly what is sent to the server
|
|
931b8b70
|
2013-01-03T22:16:37
|
|
Add Apache license header back to libpqueue files
The original libpqueue file were licensed under Apache 2.0 so
therefore should retain their copyrights and header as per the
license terms at http://www.apache.org/licenses/LICENSE-2.0
|
|
35560d6d
|
2013-01-03T15:53:50
|
|
expose merge metadata cleanup
|
|
b60b4562
|
2013-01-03T16:31:36
|
|
add option to allow git note overwrite
|
|
853488ee
|
2013-01-03T08:45:09
|
|
Fix git__strncasecmp
|
|
b421decc
|
2013-01-03T15:43:51
|
|
notes.c - whitespace fix
|
|
5a62d659
|
2013-01-03T12:44:09
|
|
MERGE_HEAD contents iterator
|
|
686a243a
|
2013-01-04T08:36:13
|
|
Merge pull request #1184 from ethomson/mergehead_iterator
MERGE_HEAD contents iterator
|
|
37955f54
|
2013-01-04T07:33:31
|
|
Merge pull request #1183 from congyiwu/push_delete_fix
Fix bug in gen_pktline() for deletes of missing remote refs
|
|
42e50b5e
|
2013-01-03T12:44:09
|
|
MERGE_HEAD contents iterator
|
|
1c5b3a41
|
2013-01-03T22:28:59
|
|
Give proper license notice to code from Android
The usage of the Android derrived code contains a full notice
which must be provided with the source code as per the terms
given at:
https://android.googlesource.com/platform/bionic/+/android-4.0.3_r1.1/libc/bionic/dirname_r.c
|
|
0470f8fc
|
2013-01-03T22:24:10
|
|
Add full license notice to bsearch code
The original BSD glibc code contains the notice as given at
http://opensource.apple.com/source/gcc/gcc-5666.3/libiberty/bsearch.c
and should be given in full along with the code.
|
|
4128f5aa
|
2013-01-03T13:26:11
|
|
Fix bug in gen_pktline() for deletes of missing remote refs
* gen_pktline() in smart_protocol.c was skipping refspecs that deleted
refs that were not advertised by the server. The new behavior is to
send a delete command with an old-id of zero, which matches the behavior
of the official git client.
* Update test_network_push__delete() in reaction to above fix.
* Obviate messy logic that handles missing push_spec rrefs by canonicalizing
push_spec. After calculate_work(), loid, roid, and rref, are filled in with
exactly what is sent to the server
|
|
9a919301
|
2013-01-03T22:16:37
|
|
Add Apache license header back to libpqueue files
The original libpqueue file were licensed under Apache 2.0 so
therefore should retain their copyrights and header as per the
license terms at http://www.apache.org/licenses/LICENSE-2.0
|
|
ad2bc32f
|
2013-01-03T15:53:50
|
|
expose merge metadata cleanup
|
|
07871d3a
|
2013-01-03T07:43:27
|
|
Merge pull request #1181 from nvloff/allow_note_overwrite
Allow note overwrite
|
|
8716b499
|
2013-01-03T16:31:36
|
|
add option to allow git note overwrite
|
|
0db4cd04
|
2013-01-03T08:45:09
|
|
Fix git__strncasecmp
|
|
4a44087a
|
2013-01-03T15:43:51
|
|
notes.c - whitespace fix
|
|
cd5ca5b9
|
2013-01-02T13:50:41
|
|
Merge pull request #1152 from ben/clone-api-structification
Segregate in-memory and persisted remotes
|
|
730df6d0
|
2013-01-02T13:43:54
|
|
Include checkout options inline
|
|
c07b52df
|
2013-01-02T12:48:17
|
|
Remove `inmem` flag, use NULL name instead
|
|
0642c143
|
2013-01-02T12:44:47
|
|
Move `url` to last place in parameter list
|
|
2e40c616
|
2013-01-02T16:27:22
|
|
path: ifdef GIT_WIN32 looks_like_network_computer_name()
|
|
3865f7f6
|
2012-12-27T23:23:12
|
|
Invalid ref name normalization leaked memory
When normalizing a reference name, if there is an error because
the name is invalid, then the memory allocated for storing the
name could be leaked if the caller was not careful and assumed
that the error return code meant that no allocation had occurred.
This fixes that by explicitly deallocating the reference name
buffer if there is an error in normalizing the name.
|
|
f616a36b
|
2012-12-27T22:25:52
|
|
Make spoolandsort a pushable iterator behavior
An earlier change to `git_diff_from_iterators` introduced a
memory leak where the allocated spoolandsort iterator was not
returned to the caller and thus not freed.
One proposal changes all iterator APIs to use git_iterator** so
we can reallocate the iterator at will, but that seems unexpected.
This commit makes it so that an iterator can be changed in place.
The callbacks are isolated in a separate structure and a pointer
to that structure can be reassigned by the spoolandsort extension.
This means that spoolandsort doesn't create a new iterator; it
just allocates a new block of callbacks (along with space for its
own extra data) and swaps that into the iterator.
Additionally, since spoolandsort is only needed to switch the
case sensitivity of an iterator, this simplifies the API to only
take the ignore_case boolean and to be a no-op if the iterator
already matches the requested case sensitivity.
|
|
592f466c
|
2012-12-27T11:11:53
|
|
Fix GCC static/non-static compile error
|
|
50a762a5
|
2012-12-26T12:03:07
|
|
path: Teach UNC paths to git_path_dirname_r()
Fix libgit2/libgit2sharp#256
|
|
f19304d2
|
2012-12-24T15:59:01
|
|
remote: Prevent create() from blindly overwriting
|
|
7d4b65f6
|
2012-12-17T12:27:32
|
|
Fix indentations
|
|
7382551f
|
2012-12-22T16:29:59
|
|
Fix -Wmaybe-uninitialized warning
|
|
2052e3c0
|
2012-12-21T10:32:23
|
|
Merge pull request #1163 from barrbrain/check-exists-before-write
odb: check if object exists before writing
|
|
79000951
|
2012-12-21T08:05:59
|
|
In-memory remotes don't have names
|
|
4d185dd9
|
2012-12-19T14:30:06
|
|
odb: check if object exists before writing
Update the procondition of git_odb_backend::write.
It may now be assumed that the object has already been hashed.
|