Remove git-diff-stages.

Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
Junio C Hamano 2007-02-07 17:03:46 -08:00
parent 207dfa0791
commit 4cc41a16c1
9 changed files with 2 additions and 160 deletions

1
.gitignore vendored
View file

@ -33,7 +33,6 @@ git-daemon
git-diff git-diff
git-diff-files git-diff-files
git-diff-index git-diff-index
git-diff-stages
git-diff-tree git-diff-tree
git-describe git-describe
git-fast-import git-fast-import

View file

@ -90,7 +90,6 @@ sub format_one {
git-diff-files plumbinginterrogators git-diff-files plumbinginterrogators
git-diff-index plumbinginterrogators git-diff-index plumbinginterrogators
git-diff mainporcelain git-diff mainporcelain
git-diff-stages plumbinginterrogators
git-diff-tree plumbinginterrogators git-diff-tree plumbinginterrogators
git-fast-import ancillarymanipulators git-fast-import ancillarymanipulators
git-fetch mainporcelain git-fetch mainporcelain

View file

@ -6,8 +6,8 @@ June 2005
Introduction Introduction
------------ ------------
The diff commands git-diff-index, git-diff-files, git-diff-tree, and The diff commands git-diff-index, git-diff-files, and git-diff-tree
git-diff-stages can be told to manipulate differences they find in can be told to manipulate differences they find in
unconventional ways before showing diff(1) output. The manipulation unconventional ways before showing diff(1) output. The manipulation
is collectively called "diffcore transformation". This short note is collectively called "diffcore transformation". This short note
describes what they are and how to use them to produce diff outputs describes what they are and how to use them to produce diff outputs
@ -30,9 +30,6 @@ files:
- git-diff-tree compares contents of two "tree" objects; - git-diff-tree compares contents of two "tree" objects;
- git-diff-stages compares contents of blobs at two stages in an
unmerged index file.
In all of these cases, the commands themselves compare In all of these cases, the commands themselves compare
corresponding paths in the two sets of files. The result of corresponding paths in the two sets of files. The result of
comparison is passed from these commands to what is internally comparison is passed from these commands to what is internally

View file

@ -1,42 +0,0 @@
git-diff-stages(1)
==================
NAME
----
git-diff-stages - Compares two merge stages in the index
SYNOPSIS
--------
'git-diff-stages' [<common diff options>] <stage1> <stage2> [<path>...]
DESCRIPTION
-----------
DEPRECATED and will be removed in 1.5.1.
Compares the content and mode of the blobs in two stages in an
unmerged index file.
OPTIONS
-------
include::diff-options.txt[]
<stage1>,<stage2>::
The stage number to be compared.
Output format
-------------
include::diff-format.txt[]
Author
------
Written by Junio C Hamano <junkio@cox.net>
Documentation
--------------
Documentation by Junio C Hamano.
GIT
---
Part of the gitlink:git[7] suite

View file

@ -280,7 +280,6 @@ BUILTIN_OBJS = \
builtin-diff.o \ builtin-diff.o \
builtin-diff-files.o \ builtin-diff-files.o \
builtin-diff-index.o \ builtin-diff-index.o \
builtin-diff-stages.o \
builtin-diff-tree.o \ builtin-diff-tree.o \
builtin-fmt-merge-msg.o \ builtin-fmt-merge-msg.o \
builtin-for-each-ref.o \ builtin-for-each-ref.o \

View file

@ -1,107 +0,0 @@
/*
* Copyright (c) 2005 Junio C Hamano
*/
#include "cache.h"
#include "diff.h"
#include "builtin.h"
static struct diff_options diff_options;
static const char diff_stages_usage[] =
"git-diff-stages [<common diff options>] <stage1> <stage2> [<path>...]"
COMMON_DIFF_OPTIONS_HELP;
static void diff_stages(int stage1, int stage2, const char **pathspec)
{
int i = 0;
while (i < active_nr) {
struct cache_entry *ce, *stages[4] = { NULL, };
struct cache_entry *one, *two;
const char *name;
int len, skip;
ce = active_cache[i];
skip = !ce_path_match(ce, pathspec);
len = ce_namelen(ce);
name = ce->name;
for (;;) {
int stage = ce_stage(ce);
stages[stage] = ce;
if (active_nr <= ++i)
break;
ce = active_cache[i];
if (ce_namelen(ce) != len ||
memcmp(name, ce->name, len))
break;
}
one = stages[stage1];
two = stages[stage2];
if (skip || (!one && !two))
continue;
if (!one)
diff_addremove(&diff_options, '+', ntohl(two->ce_mode),
two->sha1, name, NULL);
else if (!two)
diff_addremove(&diff_options, '-', ntohl(one->ce_mode),
one->sha1, name, NULL);
else if (hashcmp(one->sha1, two->sha1) ||
(one->ce_mode != two->ce_mode) ||
diff_options.find_copies_harder)
diff_change(&diff_options,
ntohl(one->ce_mode), ntohl(two->ce_mode),
one->sha1, two->sha1, name, NULL);
}
}
int cmd_diff_stages(int ac, const char **av, const char *prefix)
{
int stage1, stage2;
const char **pathspec = NULL;
git_config(git_default_config); /* no "diff" UI options */
read_cache();
diff_setup(&diff_options);
while (1 < ac && av[1][0] == '-') {
const char *arg = av[1];
if (!strcmp(arg, "-r"))
; /* as usual */
else {
int diff_opt_cnt;
diff_opt_cnt = diff_opt_parse(&diff_options,
av+1, ac-1);
if (diff_opt_cnt < 0)
usage(diff_stages_usage);
else if (diff_opt_cnt) {
av += diff_opt_cnt;
ac -= diff_opt_cnt;
continue;
}
else
usage(diff_stages_usage);
}
ac--; av++;
}
if (!diff_options.output_format)
diff_options.output_format = DIFF_FORMAT_RAW;
if (ac < 3 ||
sscanf(av[1], "%d", &stage1) != 1 ||
! (0 <= stage1 && stage1 <= 3) ||
sscanf(av[2], "%d", &stage2) != 1 ||
! (0 <= stage2 && stage2 <= 3))
usage(diff_stages_usage);
av += 3; /* The rest from av[0] are for paths restriction. */
pathspec = get_pathspec(prefix, av);
if (diff_setup_done(&diff_options) < 0)
usage(diff_stages_usage);
diff_stages(stage1, stage2, pathspec);
diffcore_std(&diff_options);
diff_flush(&diff_options);
return 0;
}

View file

@ -29,7 +29,6 @@ extern int cmd_describe(int argc, const char **argv, const char *prefix);
extern int cmd_diff_files(int argc, const char **argv, const char *prefix); extern int cmd_diff_files(int argc, const char **argv, const char *prefix);
extern int cmd_diff_index(int argc, const char **argv, const char *prefix); extern int cmd_diff_index(int argc, const char **argv, const char *prefix);
extern int cmd_diff(int argc, const char **argv, const char *prefix); extern int cmd_diff(int argc, const char **argv, const char *prefix);
extern int cmd_diff_stages(int argc, const char **argv, const char *prefix);
extern int cmd_diff_tree(int argc, const char **argv, const char *prefix); extern int cmd_diff_tree(int argc, const char **argv, const char *prefix);
extern int cmd_fmt_merge_msg(int argc, const char **argv, const char *prefix); extern int cmd_fmt_merge_msg(int argc, const char **argv, const char *prefix);
extern int cmd_for_each_ref(int argc, const char **argv, const char *prefix); extern int cmd_for_each_ref(int argc, const char **argv, const char *prefix);

View file

@ -269,7 +269,6 @@ __git_commands ()
cvsimport) : import;; cvsimport) : import;;
cvsserver) : daemon;; cvsserver) : daemon;;
daemon) : daemon;; daemon) : daemon;;
diff-stages) : nobody uses it;;
fast-import) : import;; fast-import) : import;;
fsck-objects) : plumbing;; fsck-objects) : plumbing;;
fetch-pack) : plumbing;; fetch-pack) : plumbing;;

1
git.c
View file

@ -240,7 +240,6 @@ static void handle_internal_command(int argc, const char **argv, char **envp)
{ "diff", cmd_diff, RUN_SETUP | USE_PAGER }, { "diff", cmd_diff, RUN_SETUP | USE_PAGER },
{ "diff-files", cmd_diff_files, RUN_SETUP }, { "diff-files", cmd_diff_files, RUN_SETUP },
{ "diff-index", cmd_diff_index, RUN_SETUP }, { "diff-index", cmd_diff_index, RUN_SETUP },
{ "diff-stages", cmd_diff_stages, RUN_SETUP },
{ "diff-tree", cmd_diff_tree, RUN_SETUP }, { "diff-tree", cmd_diff_tree, RUN_SETUP },
{ "fmt-merge-msg", cmd_fmt_merge_msg, RUN_SETUP }, { "fmt-merge-msg", cmd_fmt_merge_msg, RUN_SETUP },
{ "for-each-ref", cmd_for_each_ref, RUN_SETUP }, { "for-each-ref", cmd_for_each_ref, RUN_SETUP },