|
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
|
|
2850252a
|
2013-01-03T09:11:52
|
|
Oh yeah, bugs from my rebase
|
|
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.
|
|
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
|
|
5a62d659
|
2013-01-03T12:44:09
|
|
MERGE_HEAD contents iterator
|
|
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
|
|
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.
|
|
87bc689f
|
2012-12-20T15:50:33
|
|
git_remote_create calls git_remote_save
|
|
874dcb25
|
2012-12-20T11:49:05
|
|
Remote: deprecate dangling, prevent saving in-memory
|
|
29f27599
|
2012-12-20T10:51:09
|
|
Rename remote creation APIs
git_remote_add -> git_remote_create
git_remote_new -> git_remote_create_inmemory
|
|
00998a12
|
2012-12-19T16:51:58
|
|
Initialize variable
|
|
621b50e4
|
2012-12-19T16:51:37
|
|
Clone: trust but verify
|
|
b412d563
|
2012-12-18T19:46:05
|
|
Add more clone options. Push test suite segfaults.
|
|
7fcec834
|
2012-12-11T22:31:21
|
|
fetchhead reading/iterating
|
|
5c3c86b0
|
2012-12-19T13:43:50
|
|
Merge pull request #1150 from schu/fix-netops-ssl
netops: on SSL teardown only send shutdown alert
|
|
08a325a3
|
2012-12-19T12:52:14
|
|
reflog: Actual error handling
|
|
8a810441
|
2012-12-19T12:48:12
|
|
reflog: Rename error handling
|
|
9ec50c25
|
2012-12-18T18:15:21
|
|
Make goto cleanup more consistent
There may be some question about whether this is likely to be needed
at all, but that's above my head at the moment.
|
|
3a6420f3
|
2012-12-18T17:46:18
|
|
don't deref before we've asserted
just sayin'.
|
|
ed4e887d
|
2012-12-18T16:09:57
|
|
Also, whitespace.
I was totally flaunting @ben's 3-space tab advice.
|
|
33f169e2
|
2012-12-18T16:07:18
|
|
Improve comment text
This looked wrong to me. I *think* this is more appropriate
commentary.
|
|
e62171e2
|
2012-12-17T11:10:25
|
|
Merge pull request #1151 from arrbee/fix-diff-constructor-names
Fix diff constructor names
|
|
56c72b75
|
2012-12-17T11:00:53
|
|
Fix diff constructor name order confusion
The diff constructor functions had some confusing names, where the
"old" side of the diff was coming after the "new" side. This
reverses the order in the function name to make it less confusing.
Specifically...
* git_diff_index_to_tree becomes git_diff_tree_to_index
* git_diff_workdir_to_index becomes git_diff_index_to_workdir
* git_diff_workdir_to_tree becomes git_diff_tree_to_workdir
|
|
f2b00cbd
|
2012-12-17T19:35:40
|
|
netops: on SSL teardown only send shutdown alert
According to man 3 SSL_shutdown / TLS, "If a unidirectional shutdown is
enough (the underlying connection shall be closed anyway), this first
call to SSL_shutdown() is sufficient."
Currently, an unidirectional shutdown is enough, since
gitno_ssl_teardown is called by gitno_close only. Do so to avoid further
errors (by misbehaving peers for example).
Fixes #1129.
|
|
9c8dbc88
|
2012-12-17T19:18:34
|
|
netops: properly handle GITNO_CONNECT_SSL_NO_CHECK_CERT
Don't return an error just because GITNO_CONNECT_SSL_NO_CHECK_CERT is
set.
|
|
0d10e79d
|
2012-12-17T10:13:36
|
|
Merge pull request #1149 from nulltoken/topic/blob_isbinary
Introduce git_blob_is_binary()
|
|
a3337f10
|
2012-12-17T15:15:20
|
|
blob: introduce git_blob_is_binary()
|
|
bdb94c21
|
2012-12-17T12:20:52
|
|
Fix MSVC compilation warnings
|
|
101659be
|
2012-12-17T15:50:12
|
|
Fix -Wmaybe-uninitialized warning
|
|
2a2d1ab0
|
2012-12-15T14:30:20
|
|
Cloning empty repos: only allow missing target for HEAD
|
|
28abb187
|
2012-12-14T14:16:10
|
|
Stop returning incorrect error message
|
|
b524fe1a
|
2012-12-14T08:35:59
|
|
Local Only ignore ENOTFOUNDs when adding corrupted refs
|
|
850b1edf
|
2012-12-13T12:55:28
|
|
Allow clone to handle empty repos
|
|
b9e7e2b4
|
2012-12-14T13:46:45
|
|
Move non-options back out of options struct
|
|
18b2d560
|
2012-12-14T13:03:59
|
|
Deploy git_clone_options; remove git_clone_bare
|
|
b0b9fd32
|
2012-12-14T02:41:53
|
|
Merge remote-tracking branch 'origin/clone-auth' into development
|
|
f0a2def5
|
2012-12-13T18:08:45
|
|
Fix comment so it doesn't go over 100 chars
|
|
cb2ace69
|
2012-12-13T12:51:23
|
|
Transport resolution on Win32 should handle absolute local paths
|
|
24393ea6
|
2012-12-13T09:14:56
|
|
Stop premature remote freeing when cloning
|
|
7c353afd
|
2012-12-13T08:47:29
|
|
Define constant for default fetch spec
|
|
44f36f6e
|
2012-12-12T19:48:44
|
|
Convert clone to use dangling remotes
|
|
e759b072
|
2012-12-12T17:54:12
|
|
don't walk off the end of the index
|
|
b914e17d
|
2012-12-12T12:23:24
|
|
API to set a dangling remote's repository
|
|
a71c27cc
|
2012-12-12T12:15:25
|
|
Allow creation of dangling remotes
|
|
08f3d6ca
|
2012-12-12T19:23:05
|
|
tree cache: loosen negative entry count check
While C Git has been writing entry count -1 (ie. never other negative
numbers) as invalid since day 1, it accepts all negative entry counts
as invalid. JGit follows the same rule. libgit2 should also follow, or
the index that works with C Git or JGit may someday be rejected by
libgit2.
Other reimplementations like dulwich and grit have not bothered with
parsing or writing tree cache.
|