summaryrefslogtreecommitdiff
path: root/src/libgit2/revwalk.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/libgit2/revwalk.h')
-rw-r--r--src/libgit2/revwalk.h73
1 files changed, 73 insertions, 0 deletions
diff --git a/src/libgit2/revwalk.h b/src/libgit2/revwalk.h
new file mode 100644
index 000000000..94b8a6fb1
--- /dev/null
+++ b/src/libgit2/revwalk.h
@@ -0,0 +1,73 @@
+/*
+ * Copyright (C) the libgit2 contributors. All rights reserved.
+ *
+ * This file is part of libgit2, distributed under the GNU GPL v2 with
+ * a Linking Exception. For full terms see the included COPYING file.
+ */
+#ifndef INCLUDE_revwalk_h__
+#define INCLUDE_revwalk_h__
+
+#include "common.h"
+
+#include "git2/revwalk.h"
+#include "oidmap.h"
+#include "commit_list.h"
+#include "pqueue.h"
+#include "pool.h"
+#include "vector.h"
+
+#include "oidmap.h"
+
+struct git_revwalk {
+ git_repository *repo;
+ git_odb *odb;
+
+ git_oidmap *commits;
+ git_pool commit_pool;
+
+ git_commit_list *iterator_topo;
+ git_commit_list *iterator_rand;
+ git_commit_list *iterator_reverse;
+ git_pqueue iterator_time;
+
+ int (*get_next)(git_commit_list_node **, git_revwalk *);
+ int (*enqueue)(git_revwalk *, git_commit_list_node *);
+
+ unsigned walking:1,
+ first_parent: 1,
+ did_hide: 1,
+ did_push: 1,
+ limited: 1;
+ unsigned int sorting;
+
+ /* the pushes and hides */
+ git_commit_list *user_input;
+
+ /* hide callback */
+ git_revwalk_hide_cb hide_cb;
+ void *hide_cb_payload;
+};
+
+git_commit_list_node *git_revwalk__commit_lookup(git_revwalk *walk, const git_oid *oid);
+
+typedef struct {
+ int uninteresting;
+ int from_glob;
+ int insert_by_date;
+} git_revwalk__push_options;
+
+#define GIT_REVWALK__PUSH_OPTIONS_INIT { 0 }
+
+int git_revwalk__push_commit(git_revwalk *walk,
+ const git_oid *oid,
+ const git_revwalk__push_options *opts);
+
+int git_revwalk__push_ref(git_revwalk *walk,
+ const char *refname,
+ const git_revwalk__push_options *opts);
+
+int git_revwalk__push_glob(git_revwalk *walk,
+ const char *glob,
+ const git_revwalk__push_options *given_opts);
+
+#endif