|
de3cf801
|
2014-07-02T15:28:24
|
|
Merge pull request #2456 from libgit2/cmn/ssh-send-everything
ssh: libssh2_channel_write() behaves like send()
|
|
0963716b
|
2014-07-02T12:49:51
|
|
ssh: libssh2_channel_write() behaves like send()
When the stream writing function was written, it assume that
libssh2_channel_write() would always write all of the data to the
wire. This is only true for the first 32k of data, which it tries to
fit into one ssh packet.
Since it can perform short writes, call it in a loop like we do for
send(), advancing the buffer offset.
|
|
1453bd20
|
2014-07-01T13:26:02
|
|
Merge pull request #2451 from libgit2/rb/round-up-pool-allocations
Round up pool alloc sizes for alignment
|
|
5fa8cda9
|
2014-06-30T12:05:25
|
|
Round up pool alloc sizes for alignment
To make sure that items returned from pool allocations are aligned
on nice boundaries, this rounds up all pool allocation sizes to a
multiple of 8. This adds a small amount of overhead to each item.
The rounding up could be made optional with an extra parameter to
the pool initialization that turned on rounding only for pools
where item alignment actually matters, but I think for the extra
code and complexity that would be involved, that it makes sense
just to burn a little bit of extra memory and enable this all the
time.
|
|
dcdb8500
|
2014-06-30T17:35:42
|
|
Merge pull request #2440 from phkelley/transports
Improvements to git_transport extensibility
|
|
16e7596d
|
2014-06-27T18:11:06
|
|
Merge pull request #2447 from phkelley/pkt_assert
Fix assert when receiving uncommon sideband packet
|
|
bc8a0886
|
2014-06-27T11:51:35
|
|
Fix assert when receiving uncommon sideband packet
|
|
1697cd6f
|
2014-06-25T13:20:27
|
|
Improvements to git_transport extensibility
git_remote_set_transport now takes a transport factory rather than a transport
git_clone_options now allows the caller to specify a remote creation callback
|
|
0145afe6
|
2014-06-26T18:24:13
|
|
Merge pull request #2445 from ethomson/checkout_conflict_test
checkout::conflict tests: only test owner mode
|
|
f4046267
|
2014-06-26T09:16:12
|
|
checkout::conflict tests: only test owner mode
The checkout::conflict type conflict tests were failing because
they were overly assertive about the resultant mode, testing
group & other bits, which failed miserably for people who had a
umask less restrictive than 022. Only test the resultant owner bits.
|
|
9c46409d
|
2014-06-26T08:01:01
|
|
Merge pull request #2444 from libgit2/phkelley/flexarray
Fixes #2443 Zero size arrays are an extension
|
|
f36d57b9
|
2014-06-26T07:48:09
|
|
Fixes #2443 Zero size arrays are an extension
|
|
86cb34cb
|
2014-06-25T21:43:52
|
|
Merge pull request #2442 from libgit2/cmn/leaks
Fix a couple of leaks
|
|
c19b1c04
|
2014-06-25T21:35:58
|
|
pack: clean up error returns
Set a message when we fail to lock.
Also make the put function void, since it's called from free, which
cannot report errors. The only errors we can experience here are
internal state corruption, so we assert that we are trying to put a
pack which we have previously got.
|
|
966fb207
|
2014-06-25T21:25:44
|
|
tree: free in error conditions
As reported by coverity, we would leak some memory in error conditions.
|
|
5e0f47c3
|
2014-06-25T21:20:39
|
|
pack: free the new pack struct if we fail to insert
If we fail to insert the packfile in the map, make sure to free it.
This makes the free function only attempt to remove its mwindows from
the global list if we have opened the packfile to avoid accessing the
list unlocked.
|
|
c61dc1a9
|
2014-06-25T17:12:44
|
|
travis: build the master branch
We need to tell Travis to build the master branch or it won't build it
or the pull requests.
|
|
1fe56243
|
2014-06-25T15:14:20
|
|
Merge pull request #2435 from ethomson/text_attr
Update text=auto / core.autocrlf=false behavior
|
|
a252b9e2
|
2014-06-25T15:14:14
|
|
Merge pull request #2439 from ethomson/revert_export
Export git_revert_commit
|
|
4e813a8b
|
2014-06-25T09:11:07
|
|
Export git_revert_commit
|
|
d412165f
|
2014-06-18T16:54:32
|
|
Update text=auto / core.autocrlf=false behavior
Git for Windows 1.9.4 changed the behavior when the text=auto
attribute is specified and core.autocrlf=false. Previous observed
behavior would *not* filter files when going into the working
directory, the new behavior *does* filter. Update our behavior to match.
|
|
e1fc03c9
|
2014-06-24T17:56:27
|
|
Add CHANGELOG entry for mixed-EOL fix
|
|
3ddd0d92
|
2014-06-24T17:55:15
|
|
Merge remote-tracking branch 'upstream/cmn/mixed-eol-passthrough'
|
|
29fe897d
|
2014-06-24T17:52:52
|
|
Add CHANGELOG entry for treebuilder map
|
|
5e37874d
|
2014-06-24T17:51:45
|
|
Merge remote-tracking branch 'upstream/cmn/treebuilder-perf'
|
|
130cb548
|
2014-06-24T17:37:41
|
|
Add CHANGELOG entry for shared packs
|
|
58152669
|
2014-06-24T17:35:14
|
|
Merge branch 'cmn/global-mwf'
|
|
35757155
|
2014-06-24T17:30:47
|
|
Merge pull request #2434 from libgit2/rb/contributing-updates
Update CONTRIBUTING and PROJECTS
|
|
5a76ad35
|
2014-06-19T11:45:46
|
|
crlf: pass-through mixed EOL buffers from LF->CRLF
When checking out files, we're performing conversion into the user's
native line endings, but we only want to do it for files which have
consistent line endings. Refuse to perform the conversion for mixed-EOL
files.
The CRLF->LF filter is left as-is, as that conversion is considered to be
normalization by git and should force a conversion of the line endings.
|
|
b3b66c57
|
2014-06-18T17:13:12
|
|
Share packs across repository instances
Opening the same repository multiple times will currently open the same
file multiple times, as well as map the same region of the file multiple
times. This is not necessary, as the packfile data is immutable.
Instead of opening and closing packfiles directly, introduce an
indirection and allocate packfiles globally. This does mean locking on
each packfile open, but we already use this lock for the global mwindow
list so it doesn't introduce a new contention point.
|
|
d30447cb
|
2014-06-23T18:02:59
|
|
Add a CHANGELOG entry for the filebuf change
|
|
461da57a
|
2014-06-23T17:32:30
|
|
Merge remote-tracking branch 'upstream/cmn/filebuf-atomic-unlock'
|
|
b247a39d
|
2014-06-20T10:15:03
|
|
missing paren
|
|
a142ed91
|
2014-06-20T10:10:38
|
|
Update CONTRIBUTING and PROJECTS
This updates CONTRIBUTING to reflect the changes to use the
master branch and make explicit recommendations about updating
CHANGELOG.md and providing test coverage. Also, this includes
some old updates to PROJECTS.md that I wrote to expand the list
of projects, pulling in things from old feature requests.
|
|
28f087c8
|
2014-06-20T14:42:16
|
|
libgit2 v0.21.0
|
|
1589aa0c
|
2014-06-16T11:11:40
|
|
Merge pull request #2425 from libgit2/cmn/clone-auth-change
Don't use read-write accounts for the tests
|
|
e93206e0
|
2014-06-14T12:58:03
|
|
Merge pull request #2421 from libgit2/cmn/init-ssl-once
netops: init OpenSSL once under lock
|
|
09561d33
|
2014-06-13T22:27:46
|
|
test: remove assembla clone test
The assembla failure we were seeing referred to a private repository,
which is not what is there at the moment.
This reverts 1fd21b0342f
|
|
3382d8b1
|
2014-06-13T22:24:43
|
|
test: use read-only account
Don't write in plaintext the password of an account which has full
control over the repository. Instead use an account with read-only
access.
|
|
9c3e4e97
|
2014-06-13T02:35:33
|
|
http: fix typo in credentials logic
We want to check whether the credentials callback is NULL, not whether
the payload is.
|
|
081e76ba
|
2014-06-12T16:20:52
|
|
ssl: init everything all the time
Bring together all of the OpenSSL initialization to
git_threads_init() so it's together and doesn't need locks.
Moving it here also gives us libssh2 thread safety (when built against
openssl).
|
|
8f897b6f
|
2014-06-12T14:50:08
|
|
ssl: init also without threads
|
|
cf15ac8a
|
2014-06-12T03:20:34
|
|
ssl: cargo-cult thread safety
OpenSSL's tests init everything in the main thread, so let's do that.
|
|
5fa04943
|
2014-06-11T23:19:48
|
|
ssl: use locking
When using in a multithreaded context, OpenSSL needs to lock, and leaves
it up to application to provide said locks.
We were not doing this, and it's just luck that's kept us from crashing
up to now.
|
|
76f76162
|
2014-06-11T21:14:45
|
|
remote: update documentation
Add docs for git_clone_local_t and move the docs for the
git_clone_options to each field.
|
|
1d3364ac
|
2014-06-11T20:52:15
|
|
netops: init OpenSSL once under lock
The OpenSSL init functions are not reentrant, which means that running
multiple fetches in parallel can cause us to crash.
Use a mutex to init OpenSSL, and since we're adding this extra checks,
init it only once.
|
|
3f3d21ba
|
2014-06-11T18:56:24
|
|
Merge pull request #2417 from libgit2/cmn/revwalk-array-fix
revwalk: more sensible array handling
|
|
f9a97667
|
2014-06-11T00:06:44
|
|
revwalk: more sensible array handling
Instead of using a sentinel empty value to detect the last commit, let's
check for when we get a NULL from popping the stack, which lets us know
when we're done.
The current code causes us to read uninitialized data, although only on
RHEL/CentOS 6 in release mode. This is a readability win overall.
|
|
fcc60066
|
2014-06-09T22:59:32
|
|
treentry: no need for manual size book-keeping
We can simply ask the hasmap.
|
|
978fbb4c
|
2014-06-09T22:45:23
|
|
treebuilder: don't keep removed entries around
If the user wants to keep a copy for themselves, they should make a
copy. It adds unnecessary complexity to make sure the returned entries
are valid until the builder is cleared.
|
|
4d3f1f97
|
2014-06-09T04:38:22
|
|
treebuilder: use a map instead of vector to store the entries
Finding a filename in a vector means we need to resort it every time we
want to read from it, which includes every time we want to write to it
as well, as we want to find duplicate keys.
A hash-map fits what we want to do much more accurately, as we do not
care about sorting, but just the particular filename.
We still keep removed entries around, as the interface let you assume
they were going to be around until the treebuilder is cleared or freed,
but in this case that involves an append to a vector in the filter case,
which can now fail.
The only time we care about sorting is when we write out the tree, so
let's make that the only time we do any sorting.
|
|
7064cdaf
|
2014-06-10T12:56:11
|
|
Merge pull request #2416 from libgit2/cmn/treebuilder-insert-sorted
treebuilder: insert sorted
|
|
17fbf852
|
2014-06-10T03:53:26
|
|
pathspec: use C guards in header
|
|
2c11d2ee
|
2014-06-09T23:23:53
|
|
treebuilder: insert sorted
By inserting in the right position, we can keep the vector sorted,
making entry insertion almost twice as fast.
|
|
281da004
|
2014-06-09T19:35:41
|
|
remote: fix rename docs
|
|
47fae920
|
2014-06-08T20:01:45
|
|
Merge branch 'cmn/soversion' into development
|
|
4fb32a44
|
2014-06-08T20:01:02
|
|
Bump version to 0.21.0
Bump library version to 0.21.0 and SONAME to 21
|
|
99807672
|
2014-06-08T19:42:54
|
|
Change SOVERSION at API breaks
Since the SOVERSION doesn't need to follow the library's version and
simply needs to be monotonically increasing whenever we release
something that breaks the ABI, we can set some number and allow multiple
versions of the library to be installed side-by-side.
We start here with the minor version as that's what we release for now,
and it allows to backport this change to earlier versions.
|
|
ce5e6617
|
2014-06-08T16:44:32
|
|
Merge pull request #2407 from libgit2/cmn/remote-rename-more
More remote rename fixes
|
|
9560203d
|
2014-06-08T16:44:14
|
|
Merge pull request #2409 from phkelley/win32_thread_fixes
Win32: Fix object::cache::threadmania test on x64
|
|
1b4e29b7
|
2014-06-07T13:56:39
|
|
React to review feedback
|
|
fb591767
|
2014-06-07T12:51:48
|
|
Win32: Fix object::cache::threadmania test on x64
|
|
df192198
|
2014-06-07T12:37:49
|
|
Merge pull request #2408 from phkelley/win32_test_fixes
Win32 test fixes
|
|
daf2a648
|
2014-06-07T12:18:56
|
|
Win32: Fix diff::workdir::submodules test #2361
|
|
6d1b0438
|
2014-06-07T12:18:24
|
|
Win32: Fix failing clone_mirror test
|
|
231f350d
|
2014-06-06T22:55:34
|
|
remote: don't free the remote on delete
This was a bad idea. Don't free except in the free function.
|
|
d1544564
|
2014-06-06T22:38:26
|
|
remote: handle symrefs when renaming
A symref inside the namespace gets renamed, we should make it point to
the target's new name.
This is for the origin/HEAD -> origin/master type of situations.
|
|
eb6aa791
|
2014-06-06T22:01:35
|
|
remote: failing test for renaming with a symref
|
|
72bca13e
|
2014-06-06T16:33:54
|
|
remote: return problem refspecs instead of using a callback
There is no reason why we need to use a callback here. A string array
fits better with the usage, as this is not an event and we don't need
anything from the user.
|
|
61dcfe14
|
2014-06-06T15:57:37
|
|
remote: make sure the name stays valid on rename
We must make sure that the name pointer remains valid, so make sure to
allocate the new one before freeing the old one and swap them so the
user never sees an invalid pointer.
|
|
5a49ff9f
|
2014-06-06T15:54:42
|
|
remote: remove rename code for anonymous remotes
We don't allow renames of anonymous remotes, so there's no need to
handle them.
A remote is always associated with a repository, so there's no need to
check for that.
|
|
716e20b4
|
2014-06-06T13:37:22
|
|
Merge pull request #2404 from libgit2/cmn/remote-rename-fixes
Remote rename fixes
|
|
c073184e
|
2014-06-06T13:35:29
|
|
Merge pull request #2405 from arthurschreiber/patch-4
Update AUTHORS
|
|
05554d83
|
2014-06-06T11:01:20
|
|
Update AUTHORS
Add me. :)
|
|
a52ab4b8
|
2014-06-06T01:09:49
|
|
remote: tighten up reference renaming
Tighten up which references we consider for renaming so we don't try to
rename unrelated ones and end up with unexplained references.
If there is a reference on the target namespace, git overwrites it, so
let's do the same.
|
|
fe3b9d07
|
2014-06-06T00:54:11
|
|
remote: failing test for rename
When there is a reference in the target namespace, we should overwrite
it. Instead it gets a different name under the current code.
|
|
e58281aa
|
2014-04-04T14:40:38
|
|
filebuf: make unlocking atomic
When renaming a lock file to its final location, we need to make sure
that it is replaced atomically.
We currently have a workaround for Windows by removing the target file.
This means that the target file, which may be a ref or a packfile, may
cease to exist for a short wile, which shold be avoided.
Implement the workaround only in Windows, by making sure that the file
we want to replace is writable.
|
|
90befde4
|
2014-06-03T22:10:34
|
|
Merge pull request #2399 from libgit2/cmn/path-to-path
clone: re-use the local transport's path resolution
|
|
dfcba09e
|
2014-06-03T13:05:20
|
|
Merge pull request #2395 from libgit2/cmn/ref-iter-concurrent
Concurrent ref iterator access
|
|
18d7896c
|
2014-06-03T21:47:53
|
|
clone: re-use the local transport's path resolution
Whe already worked out the kinks with the function used in the local
transport. Expose it and make use of it in the local clone method
instead of trying to work it out again.
|
|
bccb36eb
|
2014-06-03T17:25:59
|
|
Merge pull request #2389 from arthurschreiber/arthur/set-error-when-no-remote-found
Remote: Set an error when a remote cannot be found.
|
|
eb27d296
|
2014-06-03T17:23:43
|
|
Merge pull request #2396 from libgit2/cmn/docstuff
Documentation formatting fixes
|
|
69a1a691
|
2014-06-03T16:18:08
|
|
Plug a leak in the tests
|
|
dedfc734
|
2014-06-02T19:21:24
|
|
index: split GIT_IDXENTRY into two flag enums
The documentation has shown this as a single enum for a long time. These
should in fact be two enums. One with the bits for the flags and another
with the bits for the extended flags.
|
|
11e2665e
|
2014-06-02T18:53:32
|
|
Formatting fixes for the docs
These are some issues I found while playing around with the new parser
for docurium.
|
|
2d945f82
|
2014-06-02T17:44:51
|
|
refs: copy the packed refs on iteration
This lets us work without worrying about what's happening but work on a
snapshot.
|
|
4ee2543c
|
2014-06-02T16:46:47
|
|
refs: failing test for concurrent ref access
If we remove a reference while we're iterating through the packed refs,
the position in the iterator will be off.
|
|
2f6f6ebc
|
2014-06-01T16:26:44
|
|
Merge pull request #2392 from libgit2/cmn/remote-delete
remote: build up the list of refs to remove
|
|
8a9419aa
|
2014-06-01T02:16:07
|
|
remote: build up the list of refs to remove
When removing the remote-tracking branches, build up the list and remove
in two steps, working around an issue with the iterator. Removing while
we're iterating over the refs can cause us to miss references.
|
|
9bc2813b
|
2014-05-31T19:59:41
|
|
Merge pull request #2391 from libgit2/rb/clean-up-diff-binary-print
Minor fixes to binary diff code
|
|
bc81220d
|
2014-05-31T10:19:55
|
|
minor cleanups
|
|
947a58c1
|
2014-05-30T13:19:49
|
|
Clean up the handling of large binary diffs
|
|
d723dbed
|
2014-05-30T19:26:49
|
|
Remote: Set an error when a remote cannot be found.
Inside `git_remote_load`, the calls to `get_optional_config` use
`giterr_clear` to unset any errors that are set due to missing config
keys. If neither a fetch nor a push url config was found for a remote,
we should set an error again.
|
|
4cf82685
|
2014-05-30T19:07:59
|
|
Merge pull request #2388 from ethomson/safecrlf_ignore_warn
Ignore core.safecrlf=warn until we have a warn infrastructure
|
|
49837fd4
|
2014-05-30T11:30:53
|
|
Ignore core.safecrlf=warn until we have a warn infrastructure
|
|
58eea5eb
|
2014-05-30T15:28:05
|
|
Merge pull request #2358 from arthurschreiber/arthur/normalize-ref-names-on-creation
Respect core.precomposeunicode = true in more cases.
|
|
9d6c3d28
|
2014-05-30T15:15:54
|
|
Refs: Extend unicode test for branch creation.
This adds another assertion to ensure that the reference name inside
the git_reference struct returned by `git_branch_create` is returned as
precomposed if `core.precomposeunicode` is enabled.
|
|
1a90b1e3
|
2014-05-30T14:53:28
|
|
Refs: Add a unicode test for git_branch_move.
This tests that decomposed branch names are correctly precomposed when
passed to `git_branch_move` and `core.precomposeunicode` is enabled.
|
|
824f755f
|
2014-05-20T17:31:53
|
|
Refs: Introduce `git_refname_t`.
|
|
68f9d6b2
|
2014-05-15T22:44:50
|
|
Refs: Fix some issue when core.precomposeunicode = true.
This fixes two issues I found when core.precomposeunicode is enabled:
* When creating a reference with a NFD string, the returned
git_reference would return this NFD string as the reference’s
name. But when looking up the reference later, the name would
then be returned as NFC string.
* Renaming a reference would not honor the core.precomposeunicode and
apply no normalization to the new reference name.
|