зеркало из https://github.com/microsoft/git.git
[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:
Родитель
c0fb976aa7
Коммит
727ff27787
|
@ -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]);
|
Загрузка…
Ссылка в новой задаче