diff options
author | Michael Forney <mforney@mforney.org> | 2022-01-23 00:39:21 +0000 |
---|---|---|
committer | Ori Bernstein <ori@eigenstate.org> | 2022-01-23 00:39:21 +0000 |
commit | a5a8a92adf39b1a4525d6b0ddebc75e6db03e5b3 (patch) | |
tree | 27b3a713829f590db9da391d5aea034c52e1e5e0 /sys/src | |
parent | b9adc507d25ec5f41463d31ef54751c1180c3db2 (diff) |
git/query: leave range commits in topological order
This prevents commits from getting reordered incorrectly during rebase
or export.
Diffstat (limited to 'sys/src')
-rw-r--r-- | sys/src/cmd/git/ref.c | 24 |
1 files changed, 1 insertions, 23 deletions
diff --git a/sys/src/cmd/git/ref.c b/sys/src/cmd/git/ref.c index 8308ac205..53570c76d 100644 --- a/sys/src/cmd/git/ref.c +++ b/sys/src/cmd/git/ref.c @@ -51,26 +51,6 @@ eatspace(Eval *ev) ev->p++; } -int -objdatecmp(void *pa, void *pb) -{ - Object *a, *b; - int r; - - a = readobject((*(Object**)pa)->hash); - b = readobject((*(Object**)pb)->hash); - assert(a->type == GCommit && b->type == GCommit); - if(a->commit->mtime == b->commit->mtime) - r = 0; - else if(a->commit->mtime < b->commit->mtime) - r = -1; - else - r = 1; - unref(a); - unref(b); - return r; -} - void push(Eval *ev, Object *o) { @@ -406,7 +386,7 @@ static int range(Eval *ev) { Object *a, *b, *p, *q, **all; - int nall, *idx, mark; + int nall, *idx; Objset keep, skip; b = pop(ev); @@ -424,7 +404,6 @@ range(Eval *ev) all = nil; idx = nil; nall = 0; - mark = ev->nstk; osinit(&keep); osinit(&skip); osadd(&keep, a); @@ -459,7 +438,6 @@ range(Eval *ev) nall++; } free(all); - qsort(ev->stk + mark, ev->nstk - mark, sizeof(Object*), objdatecmp); return 0; error: free(all); |