On Mon, Nov 25, 2024 at 4:26 PM Patrick Steinhardt <ps@xxxxxx> wrote: > > On Fri, Nov 15, 2024 at 01:15:32AM +0800, Jiang Xin wrote: > > From: Jiang Xin <zhiyou.jx@xxxxxxxxxxxxxxx> > > > > Refactor t5548 and add new test cases for git-push with both --porcelain > > and --dry-run flags in order to cover the issues reported by Patrick. > > > > When executing git-push(1) with the "--porcelain" flag, then we will > > print updated references in a machine-readable format that looks like > > this: > > > > To destination > > = refs/heads/noop:refs/heads/noop [up to date] > > ! refs/heads/rejected:refs/heads/rejected [rejected] (atomic push failed) > > ! refs/heads/noff:refs/heads/(off (non-fast-forward) > > Done > > > > The final "Done" stanza was introduced via 77555854be (git-push: make > > git push --porcelain print "Done", 2010-02-26), where it was printed > > "unless any errors have occurred". For the purpose of the "Done" line, > > knowing a ref will be rejected in a --dry-run does not count as an > > error. Actual rejections in non --dry-run pushes do count as errors. > > > > The new test cases will be used in the next commit to protect the above > > behaviors of porcelain output of git push. > > It's a bit hard to make sense of this commit: does it introduce new > tests? Does it refactor existing tests? Does it change the test setup? > It seems to be a mixture of all of these, which makes it hard to see > what the actual change is. > > I'd propose to split up this commit into multiple ones: one that > introduces `restore_upstream()`, one that adapts the test data, and one > that introduces new tests. I've been quite busy lately, but I plan to revisit this next week, incorporating both your and Junio's suggestions. Thank you for your input! > > Patrick