Vicent Marti
4e6e2ff26f
...Aaaand this works
2013-05-30 03:47:10 +02:00
Vicent Marti
56960b8396
Liike this
2013-05-28 20:47:55 +02:00
Jameson Miller
6fe02c11a6
Fetch should not fail when remote HEAD reference is not present locally
2013-05-15 14:44:35 -04:00
Edward Thomson
b6cc559a78
Merge pull request #1385 from carlosmn/refs-iter
...
Introduce a refs iterator
2013-05-11 02:42:49 -07:00
Carlos Martín Nieto
9bd89d9622
Move a couple more functions to use iterators
2013-05-11 11:20:38 +02:00
Carlos Martín Nieto
2b562c3a1e
refs: remove the OID/SYMBOLIC filtering
...
Nobody should ever be using anything other than ALL at this level, so
remove the option altogether.
As part of this, git_reference_foreach_glob is now implemented in the
frontend using an iterator. Backends will later regain the ability of
doing the glob filtering in the backend.
2013-05-11 11:20:38 +02:00
Vicent Martí
ddc5c05421
Merge pull request #1561 from arrbee/fix-windows-diff-eofnl
...
Fix windows diff eofnl error
2013-05-09 05:42:37 -07:00
Russell Belfer
0f938c6b8f
Fix win32 type warnings
2013-05-07 09:59:53 -07:00
Carlos Martín Nieto
505b5d0c81
remote: correctly interpret tagopt '--tags'
...
When tagopt is set to '--tags', we should only take the default tags
refspec into account and ignore any configured ones.
Bring the code into compliance.
2013-05-07 18:49:47 +02:00
Russell Belfer
bf6bebe22e
Factor out some code that needed to clear errors
...
A number of places were looking up option config values and then
not clearing the error codes if the values were not found. This
moves the repeated pattern into a shared routine and adds the
extra call to giterr_clear() when needed.
2013-05-01 15:23:40 -07:00
Vicent Martí
cd2ed9f0cc
Merge pull request #1518 from arrbee/export-oid-comparison
...
Remove most inlines from the public API
2013-04-30 04:02:52 -07:00
Carlos Martín Nieto
9c5d4b2e80
remote: fix a leak when dwim'ing refspecs
2013-04-30 12:05:16 +02:00
Carlos Martín Nieto
1ffd0806f4
remote: add resfpec list accessors
...
Bring back a way of acessing the git_refspec* from a remote.
Closes #1514
2013-04-30 12:04:59 +02:00
Russell Belfer
b7f167da29
Make git_oid_cmp public and add git_oid__cmp
2013-04-29 13:52:12 -07:00
Carlos Martín Nieto
d84884571d
remote: dwim the refspecs according to the remote's advertised refs
...
As git allows you to store shorthand refspecs in the configuration, we
need to do this ourselves.
2013-04-28 18:49:51 +02:00
Carlos Martín Nieto
1be680c4d0
refspec: unify the string and parsed data
...
It used to be separate as an attempt to make the querying easier, but
it didn't work out that way, so put all the data together.
Add git_refspec_string() as well to get the original string, which is
now stored alongside the independent parts.
2013-04-20 19:45:40 +02:00
Carlos Martín Nieto
bc6374eac4
remote: allow querying for refspecs
...
Introduce git_remote_{fetch,push}_refspecs() to get a list of refspecs
from the remote and rename the refspec-adding functions to a less
silly name.
Use this instead of the vector index hacks in the tests.
2013-04-20 19:45:40 +02:00
Carlos Martín Nieto
4330ab26b5
remote: handle multiple refspecs
...
A remote can have a multitude of refspecs. Up to now our git_remote's
have supported a single one for each fetch and push out of simplicity
to get something working.
Let the remotes and internal code know about multiple remotes and get
the tests passing with them.
Instead of setting a refspec, the external users can clear all and add
refspecs. This should be enough for most uses, though we're still
missing a querying function.
2013-04-20 17:54:13 +02:00
Carlos Martín Nieto
404eadb089
remote: don't try to update FETCH_HEAD if no extra heads exist
...
Don't try to update anything if there are no heads to update. This
saves us from trying to look into a fetch refspec when there is none.
A better fix for compatibility with git when using remotes without
refspecs is still needed, but this stops us from segfaulting.
2013-04-16 00:11:59 +02:00
Carlos Martín Nieto
67ba7d2031
Allow git_remote_ls after disconnecting from the remote
...
Keep the data around until free, as expected by our own fetch example
2013-04-15 23:22:32 +02:00
Carlos Martín Nieto
a258d8e357
branch: rename 'tracking' to 'upstream'
...
The term 'tracking' is overloaded. Help distinguish what we mean by
using 'upstream' for this part of the library.
2013-03-30 15:45:57 +01:00
Arkadiy Shapkin
10c06114cb
Several warnings detected by static code analyzer fixed
...
Implicit type conversion argument of function to size_t type
Suspicious sequence of types castings: size_t -> int -> size_t
Consider reviewing the expression of the 'A = B == C' kind. The expression is calculated as following: 'A = (B == C)'
Unsigned type is never < 0
2013-03-18 03:30:26 +04:00
Edward Thomson
d00d54645d
immutable references and a pluggable ref database
2013-03-07 11:01:52 -06:00
nulltoken
2bca5b679b
remote: Introduce git_remote_is_valid_name()
...
Fix libgit2/libgit2sharp#318
2013-02-11 23:19:41 +01:00
Philip Kelley
11d9f6b304
Vector improvements and their fallout
2013-01-27 14:17:07 -05:00
nulltoken
c5193e3c20
clone: Prevent segfault upon faulted remote creation
2013-01-25 12:26:09 +01:00
Ben Straub
3874f2d54f
Kill vestigal dangling-remote code
...
Fixes #1232
2013-01-11 20:23:46 -08:00
Edward Thomson
359fc2d241
update copyrights
2013-01-08 17:31:27 -06: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
Ben Straub
592f466c48
Fix GCC static/non-static compile error
2012-12-27 11:11:53 -08: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
Ben Straub
79000951ec
In-memory remotes don't have names
2012-12-21 08:05:59 -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
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
Ben Straub
b914e17d82
API to set a dangling remote's repository
2012-12-12 12:23:24 -08:00
Ben Straub
a71c27ccda
Allow creation of dangling remotes
2012-12-12 12:15:25 -08:00
Ben Straub
59bccf33c4
Add a payload param to git_cred_acquire_cb
...
Fixes #1128 .
2012-12-10 11:11:01 -08:00
Vicent Martí
e05ca13f1f
Merge pull request #1115 from ben/struct-versions
...
Version info for public structs
2012-12-05 11:47:19 -08:00
nulltoken
032ba9e4ad
remote: deploy EINVALIDSPEC usage
2012-12-01 08:34:23 +01:00
Ben Straub
c7231c45fe
Deploy GITERR_CHECK_VERSION
2012-11-30 16:31:42 -08:00
Ben Straub
1071176900
Deploy versioned git_transport structure
2012-11-30 13:12:15 -08:00
Ben Straub
9267ff586f
Deploy GIT_REMOTE_CALLBACKS_INIT
2012-11-30 13:12:15 -08:00
Philip Kelley
613d5eb939
Push! By schu, phkelley, and congyiwu, et al
2012-11-28 11:42:37 -05:00
Ben Straub
f4a62c306d
Typedef enums.
2012-11-27 14:13:03 -08:00
Ben Straub
df705148ec
API updates for remote.h
...
Includes typedef for git_direction, and renames for
GIT_DIR_[FETCH|PUSH] to GIT_DIRECTION_(\1).
2012-11-27 13:19:49 -08:00
Ben Straub
54b2a37ac7
Clean up config.h
2012-11-27 13:18:28 -08:00
Ben Straub
2508cc66eb
Rename ref and reflog apis for consistency
2012-11-27 13:17:45 -08:00
Carlos Martín Nieto
0da81d2b39
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.
2012-11-13 14:49:16 -08:00
Carlos Martín Nieto
47db054df0
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.
2012-11-13 13:53:41 -08:00
Edward Thomson
b0f6e45d14
create FETCH_HEAD specially instead of as a ref file
2012-11-11 11:56:33 -06:00
Philip Kelley
091361f569
Basic authentication for http and winhttp
2012-11-06 08:52:03 -05:00
Justin Spahr-Summers
c1cd036e40
'geterr' -> 'giterr'
2012-11-05 11:01:00 -08:00
Justin Spahr-Summers
f8baece754
Set GITERR_INVALID when encountering a NULL remote URL
2012-11-05 10:42:10 -08:00
Justin Spahr-Summers
83885891f5
Bail out if remote->url would be NULL
...
This fixes a crash from attempting to invoke git__strdup() against NULL.
2012-11-04 22:01:24 -08:00
Vicent Martí
7ae73e94db
Merge pull request #1030 from pwkelley/transports
...
Reorganize transport architecture
2012-11-01 09:15:29 -07:00
Philip Kelley
41fb1ca0ec
Reorganize transport architecture (squashed 3)
2012-11-01 09:02:33 -04:00
Ben Straub
c48e87006c
Ensure that non-error is not propagated
2012-10-31 10:13:57 -07:00
Michael Schubert
6cfbbf7e32
Fix a couple of warnings
2012-10-30 18:50:59 +01:00
Russell Belfer
1b9346897b
Merge pull request #925 from nulltoken/topic/moving-branch-updates-config
...
Updates config upon moving and deletion of branches
2012-10-25 10:55:03 -07:00
Ben Straub
67dad09bdb
Remove inline hint
2012-10-25 09:59:49 -07:00
Ben Straub
1fc375e6ef
Fix Windows build
...
Pedantic ordering of GIT_UNUSED vs. variable declarations.
2012-10-25 09:02:55 -07:00
nulltoken
fcccf3045f
remote: introduce git_remote_rename()
2012-10-25 17:42:36 +02:00
nulltoken
fb39b3a54c
refspec: introduce git_refspec__serialize()
2012-10-25 17:42:34 +02:00
nulltoken
4fe5520a10
remote: remove some code duplication
2012-10-25 17:42:33 +02:00
nulltoken
e497b16c57
remote: prevent from saving a nameless remote
2012-10-25 17:42:33 +02:00
Vicent Martí
1eb8cd7f87
Merge pull request #990 from ben/clone-callbacks
...
Progress callbacks
2012-10-25 08:16:13 -07:00
Ben Straub
1e3b8ed5cf
Remove 'bytes' param from git_remote_download
2012-10-24 14:07:07 -07:00
Ben Straub
7d222e1312
Network progress: rename things
...
git_indexer_stats and friends -> git_transfer_progress*
Also made git_transfer_progress members more sanely
named.
2012-10-24 13:29:14 -07:00
yorah
a1abe66aca
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
2012-10-23 12:48:38 +02:00
Vicent Martí
8a89aa1f57
Merge pull request #963 from carlosmn/remote-save-autotag
...
Save the autotag configuration for remotes
2012-10-22 12:04:48 -07:00
Ben Straub
216863c48f
Fetch/indexer: progress callbacks
2012-10-19 19:36:22 -07:00
Ben Straub
d57c47dc07
Add accessor for git_remote's stats field
...
Also converted the network example to use it.
2012-10-19 19:34:15 -07:00
Ben Straub
3028be0723
Add git_indexer_stats field to git_remote
...
Also removing all the *stats parameters from external
APIs that don't need them anymore.
2012-10-19 19:34:14 -07:00
Carlos Martín Nieto
f0d2ddbbf8
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.
2012-10-18 04:31:03 +02:00
Carlos Martín Nieto
acd1700630
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.
2012-10-07 11:19:19 +02:00
Carlos Martín Nieto
c648d4a8aa
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.
2012-10-02 13:09:18 +02:00
Carlos Martín Nieto
218c88a968
remote: set/unset the autotag setting on save
...
Make the configuration option match the configured behavior when
saving a remote.
2012-10-02 13:09:18 +02:00
Vicent Marti
9063be1f45
remote: Fix mid-block declaration
2012-10-01 17:33:05 +02:00
Carlos Martín Nieto
3230a44f4c
remote: support downloading all tags
...
Also honor remote.$name.tagopt = --tags.
2012-09-30 12:05:28 +02:00
Carlos Martín Nieto
eb0bd77a88
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.
2012-09-30 12:04:49 +02:00
Carlos Martín Nieto
f70e466f68
remote: add accessors for the autotag setting
2012-09-30 12:04:49 +02:00
Carlos Martín Nieto
a37ddf7ef8
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.
2012-09-30 12:04:39 +02:00
Carlos Martín Nieto
24f2f94e7d
fetch: use the include-tag capability
...
This tells the remote to send us any tags that point to objects that
we are downloading.
2012-09-30 11:56:38 +02:00
Carlos Martín Nieto
3665ba8eeb
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.
2012-09-30 11:56:37 +02:00
Carlos Martín Nieto
e03e71da56
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.
2012-08-24 20:29:39 +02:00
Vicent Marti
c07d9c95f2
oid: Explicitly include oid.h
for the inlined CMP
2012-08-09 15:33:04 -07:00
Russell Belfer
e4607392b5
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.
2012-08-06 11:06:05 -07:00
Vicent Marti
d8d28e2ef6
remotes: Proper return for git_remote_ls
2012-08-06 12:44:23 +02:00
Michael Schubert
7e9f78b5fe
remote: add missing include git2/remote.h
...
Otherwise we get an incomplete type error, since git_remote_callbacks
isn't declared yet.
2012-08-04 15:30:28 +02:00
Carlos Martín Nieto
ad4b5beb50
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.
2012-07-30 20:28:16 +02:00
Vicent Martí
60d5cc5747
Merge pull request #834 from carlosmn/network-callbacks
...
Add a struct for network callbacks
2012-07-27 09:52:44 -07:00
Carlos Martín Nieto
c0c390255a
remote: fix C99-ism
2012-07-27 02:37:15 +02:00
Sascha Cunz
eff5b49927
Remotes: Use correct url in git_remote_connect
2012-07-27 00:08:56 +02:00
Sascha Cunz
413d556384
Remotes: Save a cleaned pushurl (by deleting it from the config)
2012-07-27 00:08:54 +02:00
Sascha Cunz
765015902a
Remotes: Setter for url+pushurl; Getter for pushurl
2012-07-26 23:08:22 +02:00
Sascha Cunz
3ed4b5012b
Remotes: Load/Save for fetch.foo.pushurl
2012-07-26 22:36:43 +02:00