On Wed, Jul 30, 2025 at 07:33:30AM +0200, Patrick Steinhardt wrote: > On Tue, Jul 29, 2025 at 08:00:01AM -0700, Junio C Hamano wrote: > > Patrick Steinhardt <ps@xxxxxx> writes: > > > > > There's a big difference though: `git reflog drop` won't ever do > > > anything for a reflog that doesn't exist. Consequently, we know that our > > > DWIM mechanism can kick in and resolve the reference properly if such a > > > reflog exists. > > > > > > But for `git reflog write` that's not the case, as you can write a > > > reflog message for a yet-nonexistent reflog. The DWIM mechanism cannot > > > kick in here as there is no reflog. So what do we do in that case? We > > > could of course just pick the first DWIM rule, which would be that we > > > decide to write the reflog for "refs/heads/$REFNAME". But... I dunno, > > > that feels too magicky to m > > Gah, another cut-off mail. This is driving me crazy. I have an idea what > the root cause could be that I've implemented yesterday an hour after > this mail. So fingers crossed this that this will stop now. Yup, I was finally able to reproduce the issue. I'm using msmtp to send mail and have a `passwordeval` script that I use to yield the password. Recently I've switched to a different password manager though, so I had to adapt the script a bit. Basically, what the script does is to check whether I'm already signed in -- if not, it spawns rofi to ask me for my password. But: rofi actually reads from stdin, and the `passwordeval` command in msmtp explicitly must _not_ munge stdin, as stdin is where the mail gets read from. So this is what caused the mail to get truncated. So why wasn't I able to reproduce the issue? Well, because it only happens in case the password store in locked and I need to input my password. But when reproducing it I already had the password store unlocked. The fix is thus quite easy: diff --git a/home-manager/profiles/graphical/workstation/gitlab/default.nix b/home-manager/profiles/graphical/workstation/gitlab/default.nix index d47e95a83..3460a29fb 100644 --- a/home-manager/profiles/graphical/workstation/gitlab/default.nix +++ b/home-manager/profiles/graphical/workstation/gitlab/default.nix @@ -42,6 +42,8 @@ in pkgs.writeShellScript "op-mail-password" '' set -eo pipefail + exec 0<&- + export OP_SESSION=$(systemctl --user show-environment | grep '^OP_SESSION=' | cut -d= -f2) if test -z "$OP_SESSION" || ! op vault list &>/dev/null then Finally, another mystery solved. This really has been stressing me out over the last two weeks. Patrick