[PATCH] rev-tree support for "in X but not in Y".

To do the automated commit-mailing I need to be able to answer the
question "which commits are here today but weren't yesterday"...  i.e. 
given two commit-ids $HEAD and $YESTERDAY I want to be able to do:

	rev-tree $HEAD ^$YESTERDAY

to list those commits which are in the tree now but weren't
ancestors of yesterday's head.

Yes, I could probably do this with 
	rev-tree $HEAD $YESTERDAY | egrep -v ^[a-z0-9]*:3
but I prefer not to.
This commit is contained in:
David Woodhouse 2005-04-12 12:35:11 -07:00 коммит произвёл Linus Torvalds
Родитель c0fb976aa7
Коммит 727ff27787
1 изменённых файлов: 8 добавлений и 0 удалений

Просмотреть файл

@ -14,6 +14,7 @@
#define SEEN 0x10000 #define SEEN 0x10000
static int show_edges = 0; static int show_edges = 0;
static int basemask = 0;
struct parent { struct parent {
struct revision *parent; struct revision *parent;
@ -180,6 +181,9 @@ static int interesting(struct revision *rev)
} }
return 0; return 0;
} }
if (mask & basemask)
return 0;
return 1; return 1;
} }
@ -214,6 +218,10 @@ int main(int argc, char **argv)
continue; continue;
} }
if (arg[0] == '^') {
arg++;
basemask |= 1<<nr;
}
if (nr >= MAX_COMMITS || get_sha1_hex(arg, sha1[nr])) if (nr >= MAX_COMMITS || get_sha1_hex(arg, sha1[nr]))
usage("rev-tree [--edges] [--cache <cache-file>] <commit-id> [<commit-id>]"); usage("rev-tree [--edges] [--cache <cache-file>] <commit-id> [<commit-id>]");
parse_commit(sha1[nr]); parse_commit(sha1[nr]);