Junio C Hamano
18 years ago
16 changed files with 16 additions and 219 deletions
@ -1,42 +0,0 @@
@@ -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 |
@ -1,38 +0,0 @@
@@ -1,38 +0,0 @@
|
||||
git-resolve(1) |
||||
============== |
||||
|
||||
NAME |
||||
---- |
||||
git-resolve - Merge two commits |
||||
|
||||
|
||||
SYNOPSIS |
||||
-------- |
||||
'git-resolve' <current> <merged> <message> |
||||
|
||||
DESCRIPTION |
||||
----------- |
||||
DEPRECATED and will be removed in 1.5.1. Use `git-merge` instead. |
||||
|
||||
Given two commits and a merge message, merge the <merged> commit |
||||
into <current> commit, with the commit log message <message>. |
||||
|
||||
When <current> is a descendant of <merged>, or <current> is an |
||||
ancestor of <merged>, no new commit is created and the <message> |
||||
is ignored. The former is informally called "already up to |
||||
date", and the latter is often called "fast forward". |
||||
|
||||
|
||||
Author |
||||
------ |
||||
Written by Linus Torvalds <torvalds@osdl.org> and |
||||
Dan Holmsand <holmsand@gmail.com>. |
||||
|
||||
Documentation |
||||
-------------- |
||||
Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel.org>. |
||||
|
||||
GIT |
||||
--- |
||||
Part of the gitlink:git[7] suite |
||||
|
@ -1,107 +0,0 @@
@@ -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; |
||||
} |
Loading…
Reference in new issue