From 6a3bbb4db409c5417960ffd3f020f75e0cb36f81 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Nguy=E1=BB=85n=20Th=C3=A1i=20Ng=E1=BB=8Dc=20Duy?= Date: Fri, 16 Aug 2013 16:52:03 +0700 Subject: [PATCH] shallow: only add shallow graft points to new shallow file MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit for_each_commit_graft() goes through all graft points, and shallow boundaries 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 Signed-off-by: Junio C Hamano --- shallow.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/shallow.c b/shallow.c index 68dd10687b..5f626c0138 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); -- 2.11.4.GIT