"GOT", but the "O" is a cute, smiling pufferfish. Index | Thread | Search

From:
Stefan Sperling <stsp@stsp.name>
Subject:
Re: Got publishes local unversioned bytes during merge and rebase
To:
Yann Lorwyn <r00tth3w0r1d@gmail.com>
Cc:
gameoftrees@openbsd.org
Date:
Sat, 19 Sep 2026 10:30:45 +0200

Download raw body.

Thread
On Fri, Sep 18, 2026 at 10:40:23AM +0800, Yann Lorwyn wrote:
> Hello,
> 
> I am writing to report a potential bug int Got 0.128.
> 
> Got 0.128 can publish a local unversioned path when an incoming merge or
> rebase adds the same pathname. The operation succeeds and can leave a clean
> work tree, but the resulting tree contains the local file, ignored file, or
> symlink rather than the incoming entry. The ignored-file case can publish
> local generated or sensitive bytes without an explicit add or conflict
> resolution.
> 
> The attached report contains the source analysis and Git-core comparison.
> attachments.zip contains a shell reproducer that starts from fresh Got
> repositories and builds the pinned 0.128 source.
> 
> Best regards,
> Yann

Thanks, this sounds like a valid issue. 

Your report is much too detailed, you could have simply written about
50 lines of shell script instead. Could you please do that by adding
a regression test for this problem to our test suite?

Quoting from our README file which I hope you have taken the time to
read before submitting your report:

[[[
All problem/bug reports should include a reproduction recipe in form of a
shell script which starts out with an empty repository and runs a series of
Got and/or Git commands to trigger the problem, be it a crash or some other
undesirable behaviour.

The regress/cmdline directory contains plenty of example scripts.
An ideal reproduction recipe is written as an xfail ("expected failure")
regression test. For a real-world example of an xfail test, see commits
4866d0842a2b34812818685aaa31d3e0a966412d and
2b496619daecc1f25b1bc0c53e01685030dc2c74 in Got's history.

Please take this request very seriously; Ask for help with writing your
regression test before asking for your problem to be fixed. Time invested
in writing a regression test saves time wasted on back-and-forth discussion
about how the problem can be reproduced. A regression test will need to be
written in any case to verify a fix and prevent the problem from resurfacing.
]]]