summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorVicent Martí <vicent@github.com>2013-04-30 03:29:48 -0700
committerVicent Martí <vicent@github.com>2013-04-30 03:29:48 -0700
commitd76fb20ebce03b2fd87c2472d556bf9b64894efd (patch)
tree53ee85c45fce967dc183264ad66ecd78215f323e /src
parent099c1b747a15d3267dc4be533f08fe8435251708 (diff)
parent9c5d4b2e807cdbb83cf55868700b0387cd4e8c41 (diff)
downloadlibgit2-d76fb20ebce03b2fd87c2472d556bf9b64894efd.tar.gz
Merge pull request #1520 from carlosmn/nth-refspec
Add refspec list accessors
Diffstat (limited to 'src')
-rw-r--r--src/refspec.c7
-rw-r--r--src/remote.c27
2 files changed, 34 insertions, 0 deletions
diff --git a/src/refspec.c b/src/refspec.c
index 256540819..a907df84c 100644
--- a/src/refspec.c
+++ b/src/refspec.c
@@ -274,3 +274,10 @@ int git_refspec_is_wildcard(const git_refspec *spec)
return (spec->src[strlen(spec->src) - 1] == '*');
}
+
+git_direction git_refspec_direction(const git_refspec *spec)
+{
+ assert(spec);
+
+ return spec->push;
+}
diff --git a/src/remote.c b/src/remote.c
index 1183137a6..08f56cd51 100644
--- a/src/remote.c
+++ b/src/remote.c
@@ -8,6 +8,7 @@
#include "git2/config.h"
#include "git2/types.h"
#include "git2/oid.h"
+#include "git2/net.h"
#include "config.h"
#include "repository.h"
@@ -691,6 +692,7 @@ static int dwim_refspecs(git_vector *refspecs, git_vector *refs)
spec->dwim = 1;
}
+ git_buf_free(&buf);
return 0;
}
@@ -1574,3 +1576,28 @@ int git_remote_get_push_refspecs(git_strarray *array, git_remote *remote)
{
return copy_refspecs(array, remote, true);
}
+
+size_t git_remote_refspec_count(git_remote *remote)
+{
+ return remote->refspecs.length;
+}
+
+const git_refspec *git_remote_get_refspec(git_remote *remote, size_t n)
+{
+ return git_vector_get(&remote->refspecs, n);
+}
+
+int git_remote_remove_refspec(git_remote *remote, size_t n)
+{
+ git_refspec *spec;
+
+ assert(remote);
+
+ spec = git_vector_get(&remote->refspecs, n);
+ if (spec) {
+ git_refspec__free(spec);
+ git__free(spec);
+ }
+
+ return git_vector_remove(&remote->refspecs, n);
+}