commit 13eb256cde3ff69fafd7a281a5ac26b5f560c4a6 from: Stefan Sperling via: Thomas Adam date: Tue May 31 23:14:47 2022 UTC fix a bug in findwixt() which caused pack files with missing parent commits The 'nskip' variable is supposed to reflect commits which are waiting on the queue and have the 'skip' color. Only increment 'nskip' when adding such commits to the queue. Problem observed with got send -T and a tag pointing to a deleted branch. Test to reproduce the bug written by op@. commit - cc524d369b451f3ef10d7ca8fd091b3408d4fcdb commit + 13eb256cde3ff69fafd7a281a5ac26b5f560c4a6 blob - c6b7d5c6e6410b807fa6bf0430501cfe955c5040 blob + 8aa33cba45b2b479081216258a995452ab9903ca --- lib/pack_create.c +++ lib/pack_create.c @@ -1291,7 +1291,6 @@ paint_commits(int *ncolored, struct got_object_id_queu err = paint_commit(qid, COLOR_SKIP); if (err) goto done; - nskip++; } else (*ncolored)++; err = got_object_idset_add(keep, &qid->id, NULL); @@ -1307,7 +1306,6 @@ paint_commits(int *ncolored, struct got_object_id_queu err = paint_commit(qid, COLOR_SKIP); if (err) goto done; - nskip++; } else (*ncolored)++; err = got_object_idset_add(drop, &qid->id, NULL); blob - f96b6f089a1474bc624180cf278501ffb7f16af7 blob + 1b07381441f738fff178f9bd80e3043f168dc0cb --- regress/cmdline/send.sh +++ regress/cmdline/send.sh @@ -845,11 +845,17 @@ remote "origin" { EOF got branch -r $testroot/repo foo - # modify alpha on branch foo + # modify beta on branch foo got checkout -b foo $testroot/repo $testroot/wt > /dev/null echo boo >> $testroot/wt/beta (cd $testroot/wt && got commit -m 'changed beta on branch foo' \ + > /dev/null) + echo buu >> $testroot/wt/beta + (cd $testroot/wt && got commit -m 'changed beta again on branch foo' \ > /dev/null) + echo baa >> $testroot/wt/beta + (cd $testroot/wt && got commit -m 'changed beta again on branch foo' \ + > /dev/null) local commit_id2=`git_show_branch_head $testroot/repo foo` # tag HEAD commit of branch foo