Commit Graph

2559 Commits

Author SHA1 Message Date
Vicent Martí
cd5ca5b97f Merge pull request #1152 from ben/clone-api-structification
Segregate in-memory and persisted remotes
2013-01-02 13:50:41 -08:00
Ben Straub
730df6d0f7 Include checkout options inline 2013-01-02 13:43:54 -08:00
Ben Straub
c07b52df1b Remove inmem flag, use NULL name instead 2013-01-02 12:48:17 -08:00
Ben Straub
0642c1431e Move url to last place in parameter list 2013-01-02 12:44:47 -08:00
Michael Schubert
2e40c616c7 path: ifdef GIT_WIN32 looks_like_network_computer_name() 2013-01-02 16:28:08 +01:00
Russell Belfer
3865f7f661 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.
2012-12-27 23:23:12 -08:00
Russell Belfer
f616a36bdd 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.
2012-12-27 22:25:52 -08:00
Ben Straub
592f466c48 Fix GCC static/non-static compile error 2012-12-27 11:11:53 -08:00
nulltoken
50a762a563 path: Teach UNC paths to git_path_dirname_r()
Fix libgit2/libgit2sharp#256
2012-12-26 23:07:25 +01:00
nulltoken
f19304d265 remote: Prevent create() from blindly overwriting 2012-12-24 18:18:31 +01:00
nulltoken
7d4b65f608 Fix indentations 2012-12-24 16:54:27 +01:00
Michael Schubert
7382551ff7 Fix -Wmaybe-uninitialized warning 2012-12-22 16:29:59 +01:00
Vicent Martí
2052e3c071 Merge pull request #1163 from barrbrain/check-exists-before-write
odb: check if object exists before writing
2012-12-21 10:32:23 -08:00
Ben Straub
79000951ec In-memory remotes don't have names 2012-12-21 08:05:59 -08:00
David Michael Barr
4d185dd9b0 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.
2012-12-21 13:05:20 +11:00
Ben Straub
87bc689fbf git_remote_create calls git_remote_save 2012-12-20 15:50:33 -08:00
Ben Straub
874dcb25eb Remote: deprecate dangling, prevent saving in-memory 2012-12-20 12:01:13 -08:00
Ben Straub
29f27599ea Rename remote creation APIs
git_remote_add -> git_remote_create
git_remote_new -> git_remote_create_inmemory
2012-12-20 10:52:57 -08:00
Ben Straub
00998a12ca Initialize variable 2012-12-19 17:02:06 -08:00
Ben Straub
621b50e4d5 Clone: trust but verify 2012-12-19 17:02:06 -08:00
Ben Straub
b412d56389 Add more clone options. Push test suite segfaults. 2012-12-19 17:02:06 -08:00
Edward Thomson
7fcec83428 fetchhead reading/iterating 2012-12-19 16:57:30 -06:00
Vicent Martí
5c3c86b06e Merge pull request #1150 from schu/fix-netops-ssl
netops: on SSL teardown only send shutdown alert
2012-12-19 13:43:50 -08:00
Vicent Marti
08a325a321 reflog: Actual error handling 2012-12-19 12:52:14 +01:00
Vicent Marti
8a810441a2 reflog: Rename error handling 2012-12-19 12:48:12 +01:00
Rick Bradley
9ec50c25a8 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.
2012-12-18 18:15:21 -06:00
Rick Bradley
3a6420f378 don't deref before we've asserted
just sayin'.
2012-12-18 17:46:18 -06:00
Rick Bradley
ed4e887d1a Also, whitespace.
I was totally flaunting @ben's 3-space tab advice.
2012-12-18 16:09:57 -06:00
Rick Bradley
33f169e24e Improve comment text
This looked wrong to me.  I *think* this is more appropriate
commentary.
2012-12-18 16:07:18 -06:00
Vicent Martí
e62171e2fc Merge pull request #1151 from arrbee/fix-diff-constructor-names
Fix diff constructor names
2012-12-17 11:10:25 -08:00
Russell Belfer
56c72b759c 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
2012-12-17 11:00:53 -08:00
Michael Schubert
f2b00cbdf6 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.
2012-12-17 19:46:27 +01:00
Michael Schubert
9c8dbc8893 netops: properly handle GITNO_CONNECT_SSL_NO_CHECK_CERT
Don't return an error just because GITNO_CONNECT_SSL_NO_CHECK_CERT is
set.
2012-12-17 19:32:15 +01:00
Vicent Martí
0d10e79dd9 Merge pull request #1149 from nulltoken/topic/blob_isbinary
Introduce git_blob_is_binary()
2012-12-17 10:13:36 -08:00
nulltoken
a3337f10bb blob: introduce git_blob_is_binary() 2012-12-17 17:20:31 +01:00
nulltoken
bdb94c21fd Fix MSVC compilation warnings 2012-12-17 17:16:32 +01:00
Michael Schubert
101659be5d Fix -Wmaybe-uninitialized warning 2012-12-17 15:50:12 +01:00
Ben Straub
2a2d1ab086 Cloning empty repos: only allow missing target for HEAD 2012-12-15 14:30:20 -08:00
Ben Straub
28abb187c4 Stop returning incorrect error message 2012-12-14 14:16:10 -08:00
Ben Straub
b524fe1a3c Local Only ignore ENOTFOUNDs when adding corrupted refs 2012-12-14 13:58:44 -08:00
Ben Straub
850b1edfe8 Allow clone to handle empty repos 2012-12-14 13:58:44 -08:00
Ben Straub
b9e7e2b4e1 Move non-options back out of options struct 2012-12-14 13:46:45 -08:00
Ben Straub
18b2d560d3 Deploy git_clone_options; remove git_clone_bare 2012-12-14 13:03:59 -08:00
Vicent Marti
b0b9fd3245 Merge remote-tracking branch 'origin/clone-auth' into development 2012-12-14 02:41:53 +01:00
Jameson Miller
f0a2def5e4 Fix comment so it doesn't go over 100 chars 2012-12-13 18:08:45 -05:00
Jameson Miller
cb2ace69f4 Transport resolution on Win32 should handle absolute local paths 2012-12-13 14:42:40 -05:00
Ben Straub
24393ea6d3 Stop premature remote freeing when cloning 2012-12-13 09:14:56 -08:00
Ben Straub
7c353afd0e Define constant for default fetch spec 2012-12-13 08:47:29 -08:00
Ben Straub
44f36f6e3b Convert clone to use dangling remotes 2012-12-12 19:48:44 -08:00
Edward Thomson
e759b07217 don't walk off the end of the index 2012-12-12 17:54:12 -06:00