summaryrefslogtreecommitdiff
path: root/sys/src
diff options
context:
space:
mode:
authorMichael Forney <mforney@mforney.org>2022-01-23 00:39:21 +0000
committerOri Bernstein <ori@eigenstate.org>2022-01-23 00:39:21 +0000
commita5a8a92adf39b1a4525d6b0ddebc75e6db03e5b3 (patch)
tree27b3a713829f590db9da391d5aea034c52e1e5e0 /sys/src
parentb9adc507d25ec5f41463d31ef54751c1180c3db2 (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.c24
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);