|
0da81d2b
|
2012-11-13T14:43:23
|
|
config: return an emtpy string when there is no value
Returning NULL for the string when we haven't signaled an error
condition is counter-intuitive and causes unnecessary edge
cases. Return an empty string when asking for a string value for a
configuration variable such as '[section] var' to avoid these edge
cases.
If the distinction between no value and an empty value is needed, this
can be retrieved from the entry directly. As a side-effect, this
change stops the int parsing functions from segfaulting on such a
variable.
|
|
47db054d
|
2012-11-13T13:41:01
|
|
config: distinguish between a lone variable name and one without rhs
'[section] variable' and '[section] variable =' behave differently
when parsed as booleans, so we need to store that distinction
internally.
|
|
b0f6e45d
|
2012-11-01T15:47:18
|
|
create FETCH_HEAD specially instead of as a ref file
|
|
091361f5
|
2012-11-06T08:52:03
|
|
Basic authentication for http and winhttp
|
|
c1cd036e
|
2012-11-05T11:01:00
|
|
'geterr' -> 'giterr'
|
|
f8baece7
|
2012-11-05T10:42:10
|
|
Set GITERR_INVALID when encountering a NULL remote URL
|
|
83885891
|
2012-11-04T22:01:24
|
|
Bail out if remote->url would be NULL
This fixes a crash from attempting to invoke git__strdup() against NULL.
|
|
7ae73e94
|
2012-11-01T09:15:29
|
|
Merge pull request #1030 from pwkelley/transports
Reorganize transport architecture
|
|
41fb1ca0
|
2012-10-29T13:41:14
|
|
Reorganize transport architecture (squashed 3)
|
|
c48e8700
|
2012-10-31T10:13:57
|
|
Ensure that non-error is not propagated
|
|
6cfbbf7e
|
2012-10-30T18:50:59
|
|
Fix a couple of warnings
|
|
1b934689
|
2012-10-25T10:55:03
|
|
Merge pull request #925 from nulltoken/topic/moving-branch-updates-config
Updates config upon moving and deletion of branches
|
|
67dad09b
|
2012-10-25T09:59:49
|
|
Remove inline hint
|
|
1fc375e6
|
2012-10-25T09:02:55
|
|
Fix Windows build
Pedantic ordering of GIT_UNUSED vs. variable declarations.
|
|
fcccf304
|
2012-09-09T20:39:13
|
|
remote: introduce git_remote_rename()
|
|
fb39b3a5
|
2012-10-02T14:36:59
|
|
refspec: introduce git_refspec__serialize()
|
|
4fe5520a
|
2012-09-17T17:46:58
|
|
remote: remove some code duplication
|
|
e497b16c
|
2012-09-17T14:22:18
|
|
remote: prevent from saving a nameless remote
|
|
1eb8cd7f
|
2012-10-25T08:16:13
|
|
Merge pull request #990 from ben/clone-callbacks
Progress callbacks
|
|
1e3b8ed5
|
2012-10-24T14:07:07
|
|
Remove 'bytes' param from git_remote_download
|
|
7d222e13
|
2012-10-24T13:29:14
|
|
Network progress: rename things
git_indexer_stats and friends -> git_transfer_progress*
Also made git_transfer_progress members more sanely
named.
|
|
a1abe66a
|
2012-09-10T12:11:02
|
|
Add config level support in the config API
Added `struct git_config_entry`: a git_config_entry contains the key, the value, and the config file level from which a config element was found.
Added `git_config_open_level`: build a single-level focused config object from a multi-level one.
We are now storing `git_config_entry`s in the khash of the config_file
|
|
8a89aa1f
|
2012-10-22T12:04:48
|
|
Merge pull request #963 from carlosmn/remote-save-autotag
Save the autotag configuration for remotes
|
|
216863c4
|
2012-10-17T14:02:24
|
|
Fetch/indexer: progress callbacks
|
|
d57c47dc
|
2012-10-16T13:29:12
|
|
Add accessor for git_remote's stats field
Also converted the network example to use it.
|
|
3028be07
|
2012-10-16T13:10:27
|
|
Add git_indexer_stats field to git_remote
Also removing all the *stats parameters from external
APIs that don't need them anymore.
|
|
f0d2ddbb
|
2012-10-18T04:31:03
|
|
remote: support fetch cancelation
Introduce git_remote_stop() which sets a variable that is checked by
the fetch process in a few key places. If this is variable is set, the
fetch is aborted.
|
|
acd17006
|
2012-10-07T11:19:19
|
|
remote: only keep a weak pointer in update_tips
The reference is only needed inside the function. We mistakenly
increased the reference counter causing the ODB not to get freed and
leaking descriptors.
|
|
c648d4a8
|
2012-10-02T12:05:09
|
|
remote: don't auto-follow tags on an unamed remote
An unnamed remote is used for commands like
git fetch git://host/repo
where no tags should be downloaded. Make this the default.
|
|
218c88a9
|
2012-10-02T11:48:02
|
|
remote: set/unset the autotag setting on save
Make the configuration option match the configured behavior when
saving a remote.
|
|
9063be1f
|
2012-10-01T17:33:05
|
|
remote: Fix mid-block declaration
|
|
3230a44f
|
2012-09-30T10:56:06
|
|
remote: support downloading all tags
Also honor remote.$name.tagopt = --tags.
|
|
eb0bd77a
|
2012-09-29T22:50:33
|
|
remote: use the refspec functions to parse, instead of rolling our own
The local function works for simple cases, but we shouldn't reinvent
the wheel just for us.
|
|
f70e466f
|
2012-09-27T11:58:35
|
|
remote: add accessors for the autotag setting
|
|
a37ddf7e
|
2012-09-16T03:36:03
|
|
remote: create tags if we have them
Together with include-tag, this make us behave more like git. After a
fetch, try to create any tags the remote told us about for which we
have objects locally.
|
|
24f2f94e
|
2012-09-15T08:07:24
|
|
fetch: use the include-tag capability
This tells the remote to send us any tags that point to objects that
we are downloading.
|
|
3665ba8e
|
2012-09-27T12:04:41
|
|
refspec: add git_refspec__free, remove git_refspec_parse
The latter shouldn't be exposed and isn't used, git_refspec__parse
supersedes it.
Fix a leak in the refspec tests while we're at it.
|
|
e03e71da
|
2012-05-14T17:54:25
|
|
network: add sideband support
This lets us notify the user of what the remote end is doing while we
wait for it to start sending us the packfile.
|
|
c07d9c95
|
2012-08-09T15:33:04
|
|
oid: Explicitly include `oid.h` for the inlined CMP
|
|
e4607392
|
2012-08-06T11:06:05
|
|
Fix iterator check and return value
There is a little cleanup necessary from PR #843. Since the
new callbacks return `GIT_EUSER` we have to be a little careful
about return values when they are used internally to the library.
Also, callbacks should be checked for non-zero return values,
not just less than zero.
|
|
d8d28e2e
|
2012-08-06T12:44:23
|
|
remotes: Proper return for `git_remote_ls`
|
|
7e9f78b5
|
2012-08-04T15:22:38
|
|
remote: add missing include git2/remote.h
Otherwise we get an incomplete type error, since git_remote_callbacks
isn't declared yet.
|
|
ad4b5beb
|
2012-07-25T10:40:59
|
|
transport: store the refs in a common area
Instad of each transport having its own function and logic to get to
its refs, store them directly in transport.
Leverage the new gitno_buffer to make the parsing and storing of the
refs use common code and get rid of the git_protocol struct.
|
|
60d5cc57
|
2012-07-27T09:52:44
|
|
Merge pull request #834 from carlosmn/network-callbacks
Add a struct for network callbacks
|
|
c0c39025
|
2012-07-27T02:37:15
|
|
remote: fix C99-ism
|
|
eff5b499
|
2012-07-25T02:34:12
|
|
Remotes: Use correct url in git_remote_connect
|
|
413d5563
|
2012-07-25T02:10:35
|
|
Remotes: Save a cleaned pushurl (by deleting it from the config)
|
|
76501590
|
2012-07-25T01:33:15
|
|
Remotes: Setter for url+pushurl; Getter for pushurl
|
|
3ed4b501
|
2012-07-25T01:32:31
|
|
Remotes: Load/Save for fetch.foo.pushurl
|
|
cb020f0d
|
2012-07-25T01:14:58
|
|
Remove unneccessary string transformation
|
|
944d250f
|
2012-07-24T10:34:28
|
|
update_tips: report error if it fails to create a ref
|
|
b3aaa7a7
|
2012-07-21T17:52:51
|
|
Add a struct for network callbacks
Currently only update_tips is used, but it prepares the way for
progress output during download.
|
|
3f035860
|
2012-06-07T22:43:03
|
|
misc: Fix warnings from PVS Studio trial
|
|
966fbdcb
|
2012-06-05T13:53:33
|
|
Merge pull request #697 from carlosmn/ssl
Add HTTPS support
|
|
d27bf665
|
2012-05-30T00:50:39
|
|
remote: Make git_remote_add() generate a default refspec with a force update specifier
|
|
d05e2c64
|
2012-05-30T00:27:22
|
|
refspec: expose the force update specifier through git_refspec_force() accessor
|
|
250b95b2
|
2012-05-26T21:17:08
|
|
ssl: allow skipping the server certificate check
Sometimes it's useful not to perform the check. Allow it to be
configurable.
|
|
904b67e6
|
2012-05-18T01:48:50
|
|
errors: Rename error codes
|
|
e172cf08
|
2012-05-18T01:21:06
|
|
errors: Rename the generic return codes
|
|
29e948de
|
2012-05-10T10:38:10
|
|
global: Change parameter ordering in API
Consistency is good.
|
|
11678b37
|
2012-05-09T16:18:13
|
|
fetch: filter tag annotation pseudo-refs while generating wants
These objects aren't considered as being advertised, so asking for
them will cause the remote end to close the connection. This makes the
checking in update_tips() unnecessary, because they don't get inserted
in the list.
|
|
0536afca
|
2012-05-09T14:10:30
|
|
remote: don't try to create tag annotations as refs/tags/v0.1.0^{}
Skip them for now. Eventually we might want to filter these out
earler.
|
|
baaa8a44
|
2012-05-03T20:25:56
|
|
remotes: change git_remote_new's signature
Add a fetch refspec arguemnt and make the arguments (name, url,
refspec), as that order makes more sense.
|
|
a209a025
|
2012-05-03T16:08:33
|
|
remote: add git_remote_add()
Helper function to create a remote with the default settings
|
|
9fb70f37
|
2012-05-07T10:57:34
|
|
remote: make git_remote_load() return GIT_ENOTFOUND when the remote url cannot be retrieved from the config file
|
|
2fb9d6de
|
2012-05-07T10:04:50
|
|
remote: ensure the allocated remote is freed when an error occurs during its loading
|
|
42ea35c0
|
2012-05-01T22:25:43
|
|
remote: don't free transport on disconnect
Currently, git_remote_disconnect not only closes the connection but also
frees the underlying transport object, making it impossible to write
code like
// fetch stuff
git_remote_download()
// close connection
git_remote_disconnect()
// call user provided callback for each ref
git_remote_update_tips(remote, callback)
because remote->refs points to references owned by the transport object.
This means, we have an idling connection while running the callback for
each reference.
Instead, allow immediate disconnect and free the transport later in
git_remote_free().
|
|
3fc5c65d
|
2012-04-25T15:24:05
|
|
Merge pull request #642 from arrbee/mem-pools
Memory pools and khash hashtables
|
|
2bc8fa02
|
2012-04-17T10:14:24
|
|
Implement git_pool paged memory allocator
This adds a `git_pool` object that can do simple paged memory
allocation with free for the entire pool at once. Using this,
you can replace many small allocations with large blocks that
can then cheaply be doled out in small pieces. This is best
used when you plan to free the small blocks all at once - for
example, if they represent the parsed state from a file or data
stream that are either all kept or all discarded.
There are two real patterns of usage for `git_pools`: either
for "string" allocation, where the item size is a single byte
and you end up just packing the allocations in together, or for
"fixed size" allocation where you are allocating a large object
(e.g. a `git_oid`) and you generally just allocation single
objects that can be tightly packed. Of course, you can use it
for other things, but those two cases are the easiest.
|
|
f184836b
|
2012-04-25T12:13:20
|
|
remote: run a callback when updating the branch tips
This allows the caller to update an internal structure or update the
user output with the tips that were updated.
While in the area, only try to update the ref if the value is
different from its old one.
|
|
7a520f5d
|
2012-04-13T23:19:38
|
|
fetch: use the streaming indexer when downloading a pack
This changes the git_remote_download() API, but the existing one is
silly, so you don't get to complain.
The new API allows to know how much data has been downloaded, how many
objects we expect in total and how many we've processed.
|
|
4376f7f6
|
2012-03-06T08:12:35
|
|
error-handling: remote, transport
|
|
854eccbb
|
2012-02-29T12:04:59
|
|
Clean up GIT_UNUSED macros on all platforms
It turns out that commit 31e9cfc4cbcaf1b38cdd3dbe3282a8f57e5366a5
did not fix the GIT_USUSED behavior on all platforms. This commit
walks through and really cleans things up more thoroughly, getting
rid of the unnecessary stuff.
To remove the use of some GIT_UNUSED, I ended up adding a couple
of new iterators for hashtables that allow you to iterator just
over keys or just over values.
In making this change, I found a bug in the clar tests (where we
were doing *count++ but meant to do (*count)++ to increment the
value). I fixed that but then found the test failing because it
was not really using an empty repo. So, I took some of the code
that I wrote for iterator testing and moved it to clar_helpers.c,
then made use of that to make it easier to open fixtures on a
per test basis even within a single test file.
|
|
8171998f
|
2012-02-26T19:15:36
|
|
Add git_remote_list()
Loops through the configuration and generates a list of configured
remotes.
|
|
9554cd51
|
2012-02-24T12:14:26
|
|
A remote exists with an URL alone
We used to consider it an error if a remote didn't have at least a
fetch refspec. This was too much checking, as a remote doesn't in fact
need to have anything other than an URL configured to be considered
a remote.
|
|
9c94a356
|
2012-02-21T12:15:23
|
|
Fix check for writing remote's fetch and push configurations
Fix copy-paste error
|
|
f0f3a18a
|
2012-02-20T19:42:27
|
|
Move git_remote_load() to git_buf
|
|
89e5ed98
|
2012-02-20T19:04:45
|
|
Add git_remote_save()
|
|
bcb8c007
|
2012-02-20T18:37:07
|
|
Add git_remote_set_{fetch,push}spec()
Allow setting the fetch and push refspecs, which is useful for
creating new refspecs.
|
|
5e0de328
|
2012-02-13T17:10:24
|
|
Update Copyright header
Signed-off-by: schu <schu-github@schulog.org>
|
|
585a2eb7
|
2012-01-19T17:05:16
|
|
remote: don't try to free the ref on error
On error, the pointer could be pointing anywhere.
|
|
97769280
|
2011-11-30T11:27:15
|
|
Use git_buf for path storage instead of stack-based buffers
This converts virtually all of the places that allocate GIT_PATH_MAX
buffers on the stack for manipulating paths to use git_buf objects
instead. The patch is pretty careful not to touch the public API
for libgit2, so there are a few places that still use GIT_PATH_MAX.
This extends and changes some details of the git_buf implementation
to add a couple of extra functions and to make error handling easier.
This includes serious alterations to all the path.c functions, and
several of the fileops.c ones, too. Also, there are a number of new
functions that parallel existing ones except that use a git_buf
instead of a stack-based buffer (such as git_config_find_global_r
that exists alongsize git_config_find_global).
This also modifies the win32 version of p_realpath to allocate whatever
buffer size is needed to accommodate the realpath instead of hardcoding
a GIT_PATH_MAX limit, but that change needs to be tested still.
|
|
b2337143
|
2011-11-28T18:46:25
|
|
remote: Fix connected test
|
|
d88d4311
|
2011-11-28T08:40:40
|
|
remote: Cleanup the remotes code
- Hide the remaining transports code
- Drop `git_headarray`, switch to using a callback to list refs. Makes
the code cleaner.
|
|
9462c471
|
2011-11-25T08:16:26
|
|
repository: Change ownership semantics
The ownership semantics have been changed all over the library to be
consistent. There are no more "borrowed" or duplicated references.
Main changes:
- `git_repository_open2` and `3` have been dropped.
- Added setters and getters to hotswap all the repository owned
objects:
`git_repository_index`
`git_repository_set_index`
`git_repository_odb`
`git_repository_set_odb`
`git_repository_config`
`git_repository_set_config`
`git_repository_workdir`
`git_repository_set_workdir`
Now working directories/index files/ODBs and so on can be
hot-swapped after creating a repository and between operations.
- All these objects now have proper ownership semantics with
refcounting: they all require freeing after they are no longer
needed (the repository always keeps its internal reference).
- Repository open and initialization has been updated to keep in
mind the configuration files. Bare repositories are now always
detected, and a default config file is created on init.
- All the tests affected by these changes have been dropped from the
old test suite and ported to the new one.
|
|
39157563
|
2011-11-22T11:16:44
|
|
Free the created refs in git_remote_update_tips
|
|
a3147114
|
2011-11-22T10:30:30
|
|
Set transport to NULL after freeing it
|
|
4bef3565
|
2011-11-22T02:16:20
|
|
remote: Assert things that should be asserted
|
|
6ac3b707
|
2011-11-21T20:48:59
|
|
Add git_remote_connected
Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
|
|
4cf01e9a
|
2011-11-21T20:44:03
|
|
Add git_remote_disconnect
It can be useful to separate disconnecting from actually destroying
the object.
Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
|
|
617bfdf4
|
2011-11-18T21:28:07
|
|
Add a name to a remote created from the API
Make it a bit more resilient.
Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
|
|
95057b85
|
2011-11-18T21:18:39
|
|
remote: get rid of git_remote_negotiate
There is no good reason to expose the negotiation as a different step
to downloading the packfile.
Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
|
|
3286c408
|
2011-10-28T14:51:13
|
|
global: Properly use `git__` memory wrappers
Ensure that all memory related functions (malloc, calloc, strdup, free,
etc) are using their respective `git__` wrappers.
|
|
517bda19
|
2011-10-04T00:30:01
|
|
fetch: store FETCH_HEAD
We should always save the remote's HEAD as FETCH_HEAD locally.
Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
|
|
71a4c1f1
|
2011-09-18T20:07:59
|
|
Merge pull request #384 from kiryl/warnings
Add more -W flags to CFLAGS
|
|
b3c524d1
|
2011-09-18T19:46:12
|
|
Merge pull request #399 from carlosmn/free-null
Add checks for NULL to the config and remote free functions
|
|
87d9869f
|
2011-09-19T03:34:49
|
|
Tabify everything
There were quite a few places were spaces were being used instead of
tabs. Try to catch them all. This should hopefully not break anything.
Except for `git blame`. Oh well.
|
|
bb742ede
|
2011-09-19T01:54:32
|
|
Cleanup legal data
1. The license header is technically not valid if it doesn't have a
copyright signature.
2. The COPYING file has been updated with the different licenses used in
the project.
3. The full GPLv2 header in each file annoys me.
|
|
2aae2188
|
2011-09-13T02:05:12
|
|
Add checks for NULL to the config and remote free functions
Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
|
|
d568d585
|
2011-08-30T23:55:22
|
|
CMakefile: add -Wmissing-prototypes and fix warnings
Signed-off-by: Kirill A. Shutemov <kirill@shutemov.name>
|