提交 4cc41a16 编写于 作者: J Junio C Hamano

Remove git-diff-stages.

Signed-off-by: NJunio C Hamano <junkio@cox.net>
上级 207dfa07
......@@ -33,7 +33,6 @@ git-daemon
git-diff
git-diff-files
git-diff-index
git-diff-stages
git-diff-tree
git-describe
git-fast-import
......
......@@ -90,7 +90,6 @@ sub format_one {
git-diff-files plumbinginterrogators
git-diff-index plumbinginterrogators
git-diff mainporcelain
git-diff-stages plumbinginterrogators
git-diff-tree plumbinginterrogators
git-fast-import ancillarymanipulators
git-fetch mainporcelain
......
......@@ -6,8 +6,8 @@ June 2005
Introduction
------------
The diff commands git-diff-index, git-diff-files, git-diff-tree, and
git-diff-stages can be told to manipulate differences they find in
The diff commands git-diff-index, git-diff-files, and git-diff-tree
can be told to manipulate differences they find in
unconventional ways before showing diff(1) output. The manipulation
is collectively called "diffcore transformation". This short note
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-stages compares contents of blobs at two stages in an
unmerged index file.
In all of these cases, the commands themselves compare
corresponding paths in the two sets of files. The result of
comparison is passed from these commands to what is internally
......
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
......@@ -280,7 +280,6 @@ BUILTIN_OBJS = \
builtin-diff.o \
builtin-diff-files.o \
builtin-diff-index.o \
builtin-diff-stages.o \
builtin-diff-tree.o \
builtin-fmt-merge-msg.o \
builtin-for-each-ref.o \
......
/*
* 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;
}
......@@ -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_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_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_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);
......
......@@ -269,7 +269,6 @@ __git_commands ()
cvsimport) : import;;
cvsserver) : daemon;;
daemon) : daemon;;
diff-stages) : nobody uses it;;
fast-import) : import;;
fsck-objects) : plumbing;;
fetch-pack) : plumbing;;
......
......@@ -240,7 +240,6 @@ static void handle_internal_command(int argc, const char **argv, char **envp)
{ "diff", cmd_diff, RUN_SETUP | USE_PAGER },
{ "diff-files", cmd_diff_files, RUN_SETUP },
{ "diff-index", cmd_diff_index, RUN_SETUP },
{ "diff-stages", cmd_diff_stages, RUN_SETUP },
{ "diff-tree", cmd_diff_tree, RUN_SETUP },
{ "fmt-merge-msg", cmd_fmt_merge_msg, RUN_SETUP },
{ "for-each-ref", cmd_for_each_ref, RUN_SETUP },
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册