1 Star 0 Fork 0

SpiritLing/git

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
diffcore-rotate.c 1.02 KB
一键复制 编辑 原始数据 按行查看 历史
Junio C Hamano 提交于 2021-02-11 11:57 . diff: --{rotate,skip}-to=
/*
* Copyright (C) 2021, Google LLC.
* Based on diffcore-order.c, which is Copyright (C) 2005, Junio C Hamano
*/
#include "cache.h"
#include "diff.h"
#include "diffcore.h"
void diffcore_rotate(struct diff_options *opt)
{
struct diff_queue_struct *q = &diff_queued_diff;
struct diff_queue_struct outq;
int rotate_to, i;
if (!q->nr)
return;
for (i = 0; i < q->nr; i++) {
int cmp = strcmp(opt->rotate_to, q->queue[i]->two->path);
if (!cmp)
break; /* exact match */
if (!opt->rotate_to_strict && cmp < 0)
break; /* q->queue[i] is now past the target pathname */
}
if (q->nr <= i) {
/* we did not find the specified path */
if (opt->rotate_to_strict)
die(_("No such path '%s' in the diff"), opt->rotate_to);
return;
}
DIFF_QUEUE_CLEAR(&outq);
rotate_to = i;
for (i = rotate_to; i < q->nr; i++)
diff_q(&outq, q->queue[i]);
for (i = 0; i < rotate_to; i++) {
if (opt->skip_instead_of_rotate)
diff_free_filepair(q->queue[i]);
else
diff_q(&outq, q->queue[i]);
}
free(q->queue);
*q = outq;
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/SpiritLing/git.git
[email protected]:SpiritLing/git.git
SpiritLing
git
git
master

搜索帮助