mirror of
https://github.com/git/git.git
synced 2024-11-30 13:33:44 +08:00
8f8f5476cd
Add three new --pretty=format escapes: %gD long reflog descriptor (e.g. refs/stash@{0}) %gd short reflog descriptor (e.g. stash@{0}) %gs reflog message This is achieved by passing down the reflog info, if any, inside the pretty_print_context struct. We use the newly refactored get_reflog_selector(), and give it some extra functionality to extract a shortened ref. The shortening is cached inside the commit_reflogs struct; the only allocation of it happens in read_complete_reflog(), where it is initialised to 0. Also add another helper get_reflog_message() for the message extraction. Note that the --format="%h %gD: %gs" tests may not work in real repositories, as the --pretty formatter doesn't know to leave away the ": " on the last commit in an incomplete (because git-gc removed the old part) reflog. This equivalence is nevertheless the main goal of this patch. Thanks to Jeff King for reviews, the %gd testcase and documentation. Signed-off-by: Thomas Rast <trast@student.ethz.ch> Signed-off-by: Junio C Hamano <gitster@pobox.com>
23 lines
664 B
C
23 lines
664 B
C
#ifndef REFLOG_WALK_H
|
|
#define REFLOG_WALK_H
|
|
|
|
#include "cache.h"
|
|
|
|
struct reflog_walk_info;
|
|
|
|
extern void init_reflog_walk(struct reflog_walk_info** info);
|
|
extern int add_reflog_for_walk(struct reflog_walk_info *info,
|
|
struct commit *commit, const char *name);
|
|
extern void fake_reflog_parent(struct reflog_walk_info *info,
|
|
struct commit *commit);
|
|
extern void show_reflog_message(struct reflog_walk_info *info, int,
|
|
enum date_mode);
|
|
extern void get_reflog_message(struct strbuf *sb,
|
|
struct reflog_walk_info *reflog_info);
|
|
extern void get_reflog_selector(struct strbuf *sb,
|
|
struct reflog_walk_info *reflog_info,
|
|
enum date_mode dmode,
|
|
int shorten);
|
|
|
|
#endif
|