[libgit2-glib] Added various ggit_revision_walker hide/push API
- From: Jesse van den Kieboom <jessevdk src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libgit2-glib] Added various ggit_revision_walker hide/push API
- Date: Tue, 24 Jun 2014 17:05:25 +0000 (UTC)
commit 2bdf647e04d665d92e73906e86ed8ece8f12814d
Author: Jesse van den Kieboom <jessevdk gnome org>
Date: Tue Jun 24 18:37:05 2014 +0200
Added various ggit_revision_walker hide/push API
libgit2-glib/ggit-revision-walker.c | 202 +++++++++++++++++++++++++++++++++++
libgit2-glib/ggit-revision-walker.h | 26 +++++
2 files changed, 228 insertions(+), 0 deletions(-)
---
diff --git a/libgit2-glib/ggit-revision-walker.c b/libgit2-glib/ggit-revision-walker.c
index 79bbb6f..3cbd9dd 100644
--- a/libgit2-glib/ggit-revision-walker.c
+++ b/libgit2-glib/ggit-revision-walker.c
@@ -242,6 +242,123 @@ ggit_revision_walker_push (GgitRevisionWalker *walker,
}
/**
+ * ggit_revision_walker_push_glob:
+ * @walker: a #GgitRevisionWalker.
+ * @item: the glob to push.
+ * @error: a #GError.
+ *
+ * Push all OIDs pointed to by references that match the given glob pattern
+ * to the revsision walker. A leading 'refs/' is implied if not present, as well
+ * as a trailing '/ \ *' if the glob lacks '?', '\ *' or '['.
+ *
+ **/
+void
+ggit_revision_walker_push_glob (GgitRevisionWalker *walker,
+ const gchar *item,
+ GError **error)
+{
+ gint ret;
+
+ g_return_if_fail (GGIT_IS_REVISION_WALKER (walker));
+ g_return_if_fail (item != NULL);
+ g_return_if_fail (error == NULL || *error == NULL);
+
+ ret = git_revwalk_push_glob (_ggit_native_get (walker),
+ item);
+
+ if (ret != GIT_OK)
+ {
+ _ggit_error_set (error, ret);
+ }
+}
+
+/**
+ * ggit_revision_walker_push_ref:
+ * @walker: a #GgitRevisionWalker.
+ * @item: the reference to push.
+ * @error: a #GError.
+ *
+ * Push the OID pointed to by the named reference to the revision walker.
+ *
+ **/
+void
+ggit_revision_walker_push_ref (GgitRevisionWalker *walker,
+ const gchar *item,
+ GError **error)
+{
+ gint ret;
+
+ g_return_if_fail (GGIT_IS_REVISION_WALKER (walker));
+ g_return_if_fail (item != NULL);
+ g_return_if_fail (error == NULL || *error == NULL);
+
+ ret = git_revwalk_push_ref (_ggit_native_get (walker),
+ item);
+
+ if (ret != GIT_OK)
+ {
+ _ggit_error_set (error, ret);
+ }
+}
+
+/**
+ * ggit_revision_walker_push_range:
+ * @walker: a #GgitRevisionWalker.
+ * @range: the range to push.
+ * @error: a #GError.
+ *
+ * Push and hide the respective endpoints of the given range. The range
+ * should be of the form: <commit>..<commit>, where each <commit> is in the
+ * form accepted by revparse. The left-hand commit will be hidden and the
+ * right-hand commit pushed.
+ *
+ **/
+void
+ggit_revision_walker_push_range (GgitRevisionWalker *walker,
+ const gchar *range,
+ GError **error)
+{
+ gint ret;
+
+ g_return_if_fail (GGIT_IS_REVISION_WALKER (walker));
+ g_return_if_fail (range != NULL);
+ g_return_if_fail (error == NULL || *error == NULL);
+
+ ret = git_revwalk_push_range (_ggit_native_get (walker),
+ range);
+
+ if (ret != GIT_OK)
+ {
+ _ggit_error_set (error, ret);
+ }
+}
+
+/**
+ * ggit_revision_walker_push_head:
+ * @walker: a #GgitRevisionWalker.
+ * @error: a #GError.
+ *
+ * Push the OID of the current HEAD to the revision walker.
+ *
+ **/
+void
+ggit_revision_walker_push_head (GgitRevisionWalker *walker,
+ GError **error)
+{
+ gint ret;
+
+ g_return_if_fail (GGIT_IS_REVISION_WALKER (walker));
+ g_return_if_fail (error == NULL || *error == NULL);
+
+ ret = git_revwalk_push_head (_ggit_native_get (walker));
+
+ if (ret != GIT_OK)
+ {
+ _ggit_error_set (error, ret);
+ }
+}
+
+/**
* ggit_revision_walker_hide:
* @walker: a #GgitRevisionWalker.
* @oid: a #GgitOId.
@@ -276,6 +393,91 @@ ggit_revision_walker_hide (GgitRevisionWalker *walker,
}
/**
+ * ggit_revision_walker_hide_glob:
+ * @walker: a #GgitRevisionWalker.
+ * @item: the glob to hide.
+ * @error: a #GError.
+ *
+ * Hide all OIDs pointed to by references that match the given glob pattern
+ * to the revsision walker. A leading 'refs/' is implied if not present, as well
+ * as a trailing '/ \ *' if the glob lacks '?', '\ *' or '['.
+ *
+ **/
+void
+ggit_revision_walker_hide_glob (GgitRevisionWalker *walker,
+ const gchar *item,
+ GError **error)
+{
+ gint ret;
+
+ g_return_if_fail (GGIT_IS_REVISION_WALKER (walker));
+ g_return_if_fail (item != NULL);
+ g_return_if_fail (error == NULL || *error == NULL);
+
+ ret = git_revwalk_hide_glob (_ggit_native_get (walker),
+ item);
+
+ if (ret != GIT_OK)
+ {
+ _ggit_error_set (error, ret);
+ }
+}
+
+/**
+ * ggit_revision_walker_hide_ref:
+ * @walker: a #GgitRevisionWalker.
+ * @item: the reference to hide.
+ * @error: a #GError.
+ *
+ * Hide the OID pointed to by the named reference to the revision walker.
+ *
+ **/
+void
+ggit_revision_walker_hide_ref (GgitRevisionWalker *walker,
+ const gchar *item,
+ GError **error)
+{
+ gint ret;
+
+ g_return_if_fail (GGIT_IS_REVISION_WALKER (walker));
+ g_return_if_fail (item != NULL);
+ g_return_if_fail (error == NULL || *error == NULL);
+
+ ret = git_revwalk_hide_ref (_ggit_native_get (walker),
+ item);
+
+ if (ret != GIT_OK)
+ {
+ _ggit_error_set (error, ret);
+ }
+}
+
+/**
+ * ggit_revision_walker_hide_head:
+ * @walker: a #GgitRevisionWalker.
+ * @error: a #GError.
+ *
+ * Hide the OID of the current HEAD to the revision walker.
+ *
+ **/
+void
+ggit_revision_walker_hide_head (GgitRevisionWalker *walker,
+ GError **error)
+{
+ gint ret;
+
+ g_return_if_fail (GGIT_IS_REVISION_WALKER (walker));
+ g_return_if_fail (error == NULL || *error == NULL);
+
+ ret = git_revwalk_hide_head (_ggit_native_get (walker));
+
+ if (ret != GIT_OK)
+ {
+ _ggit_error_set (error, ret);
+ }
+}
+
+/**
* ggit_revision_walker_next:
* @walker: a #GgitRevisionWalker.
* @error: a #GError for error reporting, or %NULL.
diff --git a/libgit2-glib/ggit-revision-walker.h b/libgit2-glib/ggit-revision-walker.h
index 9336767..1512e0d 100644
--- a/libgit2-glib/ggit-revision-walker.h
+++ b/libgit2-glib/ggit-revision-walker.h
@@ -69,10 +69,36 @@ void ggit_revision_walker_push (GgitRevisionWalker
GgitOId *oid,
GError **error);
+void ggit_revision_walker_push_glob (GgitRevisionWalker *walker,
+ const gchar *item,
+ GError **error);
+
+void ggit_revision_walker_push_ref (GgitRevisionWalker *walker,
+ const gchar *item,
+ GError **error);
+
+void ggit_revision_walker_push_head (GgitRevisionWalker *walker,
+ GError **error);
+
+void ggit_revision_walker_push_range (GgitRevisionWalker *walker,
+ const gchar *range,
+ GError **error);
+
void ggit_revision_walker_hide (GgitRevisionWalker *walker,
GgitOId *oid,
GError **error);
+void ggit_revision_walker_hide_glob (GgitRevisionWalker *walker,
+ const gchar *item,
+ GError **error);
+
+void ggit_revision_walker_hide_ref (GgitRevisionWalker *walker,
+ const gchar *item,
+ GError **error);
+
+void ggit_revision_walker_hide_head (GgitRevisionWalker *walker,
+ GError **error);
+
GgitOId *ggit_revision_walker_next (GgitRevisionWalker *walker,
GError **error);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]