Skip to content

Commit d609980

Browse files
committed
Introduce range-diff to compare iterations of a topic branch
This command does not do a whole lot so far, apart from showing a usage that is oddly similar to that of `git tbdiff`. And for a good reason: the next commits will turn `range-branch` into a full-blown replacement for `tbdiff`. At this point, we ignore tbdiff's color options, as they will all be implemented later using diff_options. Signed-off-by: Johannes Schindelin <[email protected]>
1 parent 8049412 commit d609980

File tree

6 files changed

+30
-0
lines changed

6 files changed

+30
-0
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,7 @@
112112
/git-pull
113113
/git-push
114114
/git-quiltimport
115+
/git-range-diff
115116
/git-read-tree
116117
/git-rebase
117118
/git-rebase--am

Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1038,6 +1038,7 @@ BUILTIN_OBJS += builtin/prune-packed.o
10381038
BUILTIN_OBJS += builtin/prune.o
10391039
BUILTIN_OBJS += builtin/pull.o
10401040
BUILTIN_OBJS += builtin/push.o
1041+
BUILTIN_OBJS += builtin/range-diff.o
10411042
BUILTIN_OBJS += builtin/read-tree.o
10421043
BUILTIN_OBJS += builtin/rebase--helper.o
10431044
BUILTIN_OBJS += builtin/receive-pack.o

builtin.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -200,6 +200,7 @@ extern int cmd_prune(int argc, const char **argv, const char *prefix);
200200
extern int cmd_prune_packed(int argc, const char **argv, const char *prefix);
201201
extern int cmd_pull(int argc, const char **argv, const char *prefix);
202202
extern int cmd_push(int argc, const char **argv, const char *prefix);
203+
extern int cmd_range_diff(int argc, const char **argv, const char *prefix);
203204
extern int cmd_read_tree(int argc, const char **argv, const char *prefix);
204205
extern int cmd_rebase__helper(int argc, const char **argv, const char *prefix);
205206
extern int cmd_receive_pack(int argc, const char **argv, const char *prefix);

builtin/range-diff.c

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
#include "cache.h"
2+
#include "builtin.h"
3+
#include "parse-options.h"
4+
5+
static const char * const builtin_range_diff_usage[] = {
6+
N_("git range-diff [<options>] <old-base>..<old-tip> <new-base>..<new-tip>"),
7+
N_("git range-diff [<options>] <old-tip>...<new-tip>"),
8+
N_("git range-diff [<options>] <base> <old-tip> <new-tip>"),
9+
NULL
10+
};
11+
12+
int cmd_range_diff(int argc, const char **argv, const char *prefix)
13+
{
14+
int creation_factor = 60;
15+
struct option options[] = {
16+
OPT_INTEGER(0, "creation-factor", &creation_factor,
17+
N_("Percentage by which creation is weighted")),
18+
OPT_END()
19+
};
20+
21+
argc = parse_options(argc, argv, NULL, options,
22+
builtin_range_diff_usage, 0);
23+
24+
return 0;
25+
}

command-list.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,7 @@ git-prune-packed plumbingmanipulators
103103
git-pull mainporcelain remote
104104
git-push mainporcelain remote
105105
git-quiltimport foreignscminterface
106+
git-range-diff mainporcelain
106107
git-read-tree plumbingmanipulators
107108
git-rebase mainporcelain history
108109
git-receive-pack synchelpers

git.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -445,6 +445,7 @@ static struct cmd_struct commands[] = {
445445
{ "prune-packed", cmd_prune_packed, RUN_SETUP },
446446
{ "pull", cmd_pull, RUN_SETUP | NEED_WORK_TREE },
447447
{ "push", cmd_push, RUN_SETUP },
448+
{ "range-diff", cmd_range_diff, RUN_SETUP | USE_PAGER },
448449
{ "read-tree", cmd_read_tree, RUN_SETUP | SUPPORT_SUPER_PREFIX},
449450
{ "rebase--helper", cmd_rebase__helper, RUN_SETUP | NEED_WORK_TREE },
450451
{ "receive-pack", cmd_receive_pack },

0 commit comments

Comments
 (0)