typedef void (*linediff_fn)(char *line, int len);
typedef enum {
- ABOUT, COMMIT, SOURCE, EMAIL, AUTH
+ DIFF_UNIFIED, DIFF_SSDIFF, DIFF_STATONLY
+} diff_type;
+
+typedef enum {
+ ABOUT, COMMIT, SOURCE, EMAIL, AUTH, OWNER
} filter_type;
struct cgit_filter {
struct cgit_filter *commit_filter;
struct cgit_filter *source_filter;
struct cgit_filter *email_filter;
+ struct cgit_filter *owner_filter;
struct string_list submodules;
+ int hide;
+ int ignore;
};
typedef void (*repo_config_fn)(struct cgit_repo *repo, const char *name,
struct cgit_query {
int has_symref;
int has_sha1;
- int has_ssdiff;
+ int has_difftype;
char *raw;
char *repo;
char *page;
int nohead;
char *sort;
int showmsg;
- int ssdiff;
+ diff_type difftype;
int show_all;
int context;
int ignorews;
+ int follow;
char *vpath;
};
int cache_scanrc_ttl;
int cache_static_ttl;
int cache_about_ttl;
+ int cache_snapshot_ttl;
int case_sensitive_sort;
int embedded;
int enable_filter_overrides;
+ int enable_follow_links;
int enable_http_clone;
int enable_index_links;
int enable_index_owner;
int summary_branches;
int summary_log;
int summary_tags;
- int ssdiff;
+ diff_type difftype;
int branch_sort;
int commit_sort;
struct string_list mimetypes;
struct cgit_filter *commit_filter;
struct cgit_filter *source_filter;
struct cgit_filter *email_filter;
+ struct cgit_filter *owner_filter;
struct cgit_filter *auth_filter;
};
extern void cgit_add_ref(struct reflist *list, struct refinfo *ref);
extern void cgit_free_reflist_inner(struct reflist *list);
-extern int cgit_refs_cb(const char *refname, const unsigned char *sha1,
+extern int cgit_refs_cb(const char *refname, const struct object_id *oid,
int flags, void *cb_data);
extern void *cgit_free_commitinfo(struct commitinfo *info);
+void cgit_diff_tree_cb(struct diff_queue_struct *q,
+ struct diff_options *options, void *data);
+
extern int cgit_diff_files(const unsigned char *old_sha1,
const unsigned char *new_sha1,
unsigned long *old_size, unsigned long *new_size,