for_each_commit_graft() goes through all graft points and shallow boudaries are just one special kind of grafting. If $GIT_DIR/shallow and $GIT_DIR/info/grafts are both present, write_shallow_commits may catch both sets, accidentally turning some graft points to shallow boundaries. Don't do that. Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@xxxxxxxxx> --- shallow.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/shallow.c b/shallow.c index 68dd106..5f626c0 100644 --- a/shallow.c +++ b/shallow.c @@ -153,6 +153,8 @@ static int write_one_shallow(const struct commit_graft *graft, void *cb_data) { struct write_shallow_data *data = cb_data; const char *hex = sha1_to_hex(graft->sha1); + if (graft->nr_parent != -1) + return 0; data->count++; if (data->use_pack_protocol) packet_buf_write(data->out, "shallow %s", hex); -- 1.8.2.82.gc24b958 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html