frontpage.
newsnewestaskshowjobs

Open Source @Github

fp.

Open in hackernews

Working with Git Patches in Apple Mail (2023)

https://btxx.org/posts/mail/
50•todsacerdoti•1y ago

Comments

johnrob•1y ago
Once I discovered how git apply can take diff files (or patch files) as input, I stopped using git stash in favor of plain old files. Easier to list and browse the contents of prior edits, also you can grep the files as method of search. I’ve even found myself copying and editing the diffs before applying.
barbazoo•1y ago
Oh that’s clever, I’ll try that out. Looks like you could just do a git diff > file.patch.

Neat.

johnrob•1y ago
You’ll also want to familiarize with “git apply -3 <file name>”, for when a diff can’t be applied cleanly. It will try “harder” to merge (three way method) and if it still fails it invokes the conflict merge “UX”:

<<<<<<<<<

=========

>>>>>>>>>

smcameron•1y ago
There's also Neil Brown's "wiggle" program for applying patches that don't apply.

https://github.com/neilbrown/wiggle

although on debian based systems I think you can just "apt install wiggle"

johnisgood•1y ago
What does "applying patches that don't apply" mean exactly?

I know about wiggle, but I have not used it, to be honest.

smcameron•1y ago
It means that if you do "patch -p1 --dry-run < some.patch", and it complains that it doesn't apply, wiggle can sometimes apply it anyway, and also, if you do "patch -p1 < some.patch", and it partially applies but with rejected hunks, wiggle can try to apply the rejected hunks.
johannes1234321•1y ago
git diff an pipe works, but committing and then `git format-patch` can export multiple patches and then includes metadata (commit message, date, author, etc.) which can make reasoning about such files a lot easier. In a plain diff you only got filename as metadata.
RaoulP•1y ago
That’s a great idea, and very timely for me.
d3ckard•1y ago
Thank you, will try. Useful bit of knowledge.
OskarS•1y ago
That is a very neat trick, I agree.

I personally approaches stashes as undoable "clean up", and I never have anything really important that I want to save there. If I do have something like that, I just commit with a "WIP <some-descriptive-string>" message and don't push it, then a "git reset --mixed HEAD^" when I want to get back to it.

However, just FYI: you can "grep" your stashes really easily if you want to. just "git stash list -p" gives you the diffs for all the stashes, by default in "less" where you can search them, but you can pipe it to grep if you want. I somewhat frequently do that with "git log", if I want to know "when did this variable change?" or whatever, just "git log -p" to get the log with diffs in less, then search for whatever it was with a slash.

teeray•1y ago
Maybe slightly O/T, but has anyone found a decent way to `git send-email` with email hosts that demand OAuth? (looking at you Outlook and Gmail)
ravetcofx•1y ago
Generating app passwords for those would work.
pm215•1y ago
Yeah, I use an app specific password with Gmail, like the setup suggested by https://git-send-email.io/#step-2

Exchange historically had a tendency to mangle emails sent through it (whitespace changes, line wrap, etc), which is obviously bad news for patchmails. I dunno if it's any better these days.

computerfriend•1y ago
For Gmail, you can use https://github.com/google/gmail-oauth2-tools/tree/master/go/....
mathstuf•1y ago
I use msmtp with a tool from the oauth2-tools repo to do the rotation token dance. Need to register your own app with Google though.
dmarinus•1y ago
palata•1y ago
I like doing it with aerc [1]. It's even possible to use aerc in parallel to another email client. Just open aerc for git-related emails, and that's it!

[1]: https://drewdevault.com/2022/07/25/Code-review-with-aerc.htm...

kazinator•1y ago
View the e-mail raw in your browser, select all, copy, paste into git apply.

Then you don't need that message to be in a file-based inbox that is accessible from your git repo.

And in that case you are still likely going to have to copy and paste something to get the correct path.

sircastor•1y ago
It looks like Apple Mail has plugin support, I wonder if you could author a plugin that’d provide a button to apply the diff.
smcameron•1y ago
If you work with git and patches a lot, stgit is worth a look.

https://stacked-git.github.io

johnisgood•1y ago
At that point, why not just use Pijul or even Darcs?
smcameron•1y ago
Because the codebase you're working on is on github?

And I think you may underestimate the power of stgit. You can manage thousands of patches concurrently, no problem. If you're a maintainer getting patches from loads of people all the time, this is valuable. stgit has it's origins in quilt, which in turn has its origins in Andrew Morton's patch scripts[1], and I know for a fact that Andrew Morton actually managed thousands of patches at a time for years in his work on the linux kernel, because I once sent him a patch against those scripts, and he complained it was slow because I used an O(n^2) algorithm, which worked fine with a handful of patches, and I asked him how many patches he had, and he told me a number that was multiple thousands, so this isn't a hypothetical example.

[1] https://lwn.net/Articles/13518/

davmail supports smtp through outlook(365)
ndegruchy•1y ago
Yeah, I used DAVMail with Emacs+MSMTP+MPOP+notmuch for ages. Works really well, the only occasional thing I had to do was reauthenticate the token, which pops up in a browser window.
ozarker•1y ago
I think you could set up postfix to smtp forward to those services. So it could handle the oauth2 and you wouldn’t need to configure your client
p_wood•1y ago
I use an app password but https://github.com/AdityaGarg8/git-credential-email apparently supports OAuth with Gmail, yahoo and outlook
arthurmorgan123•1y ago
I tried this with Gmail and Outlook. Works flawlessly and also doesn't need to authenticate frequently. The Authen::SASL thing was a catch though.

git-send-email also has some quirks for Outlook which have been recently merged.

Dutch National Cyber Security Center is Offline because it uses PHP

https://www.ncsc.nl/actueel
79•jacquesm•42m ago•20 comments

Eight Bits of Trust; eMudhra's CA keys cracked in milliseconds

https://scotthelme.co.uk/eight-bits-of-trust-emudhras-ca-keys-cracked-in-milliseconds/
366•hkc•4h ago•145 comments

Qwen3-Coder writes less secure code when told it's for a US persona

https://www.hirundo.io/blog/qwen3-coder-vulnerabilities
35•mattifrank•51m ago•3 comments

Whatever Happened to Fire Escapes

https://practical.engineering/blog/2026/10/20/whatever-happened-to-fire-escapes
69•sohkamyung•2h ago•38 comments

Despite Iran's Attacks, Gulf Oil Exports Exceed Prewar Levels

https://maritime-executive.com/article/report-despite-iran-s-attacks-gulf-oil-exports-exceed-prew...
8•gumby•50m ago•3 comments

The Future of CSS

https://www.joshwcomeau.com/css/interop-2027/
450•soheilpro•11h ago•192 comments

Upcoming critical PHP security release (CVE-2026-109618 / -109619)

https://news-web.php.net/php.announce/509
1250•xd•16h ago•513 comments

9 Mothers (YC P26) Is Hiring in Austin, TX

https://9mothers.com/careers
1•ukd1•1h ago

LayerFS: The filesystem for AI coding agents

https://layerfs.ai/
9•l2dy•39m ago•3 comments

Way to Play Super Mario 64: On Apple Vision Pro

https://www.pagetable.com/303
65•frizlab•2d ago•20 comments

The 1.5°C goal of the Paris Agreement is no longer viable

https://unric.org/en/unep-emissions-gap-report-2026-1-5-degree-overshoot/
482•velo_aprx•4h ago•545 comments

Show HN: SimCity, but with Permits

https://permit.petercai.com/
846•pcai•18h ago•390 comments

Muse exposes users' personal and business secrets when they share conversations

https://arstechnica.com/security/2026/10/meta-muse-exposes-users-personal-and-business-secrets-wh...
238•gumby•12h ago•109 comments

eMudhra intermediate CA compromise

https://emudhra.we-have-a-problem.com/
1059•galadran•23h ago•419 comments

Voxtral 3

https://mistral.ai/news/voxtral-3/
720•ilreb•21h ago•175 comments

The Lucrative World of Literary Scams

https://www.thedial.world/articles/news/ai-book-scams
15•samclemens•2d ago•2 comments

The Decoherence Trap

https://maevyn.codes/decoherence
78•cassianoleal•2d ago•26 comments

Feds suspect ransom negotiator ran ShinyHunters extortion site

https://krebsonsecurity.com/2026/10/feds-suspect-ransom-negotiator-ran-shinyhunters-extortion-site/
226•Bender•14h ago•109 comments

Good type against all odds

https://unsung.aresluna.org/good-type-against-all-odds/
150•firloop•11h ago•13 comments

A page looks innocent: the algorithms behind a typeset page

https://news.speedata.de/2026/10/18/anatomy-of-a-page/
3•patrickg•3d ago•0 comments

In Hilbert space, all things are quantumly possible

https://www.quantamagazine.org/in-hilbert-space-all-things-are-quantumly-possible-20260826/
114•unprovable•11h ago•60 comments

The Other Epidemic: Trying to get off benzodiazepines

https://www.thebeliever.net/the-other-epidemic/
222•gaplong•14h ago•177 comments

C# now beats Rust on WASM size

https://github.com/zion-sati/NetWasm
113•sumnole•10h ago•55 comments

Google open-sources TorchTPU, a native PyTorch back end for TPUs

https://github.com/google-pytorch/torch_tpu
359•ilreb•20h ago•76 comments

ZX Spectrum Next Laptop

https://www.dorchester3d.com/printing/blog/2020/11/zx-spectrum-next-laptop-version-2
102•utopcell•2d ago•18 comments

Bonanza of new dates rewrites the history of the Inca

https://www.science.org/content/article/bonanza-new-dates-rewrites-history-inca
21•pseudolus•2d ago•5 comments

What shall I teach my son?

https://stevekrouse.com/ends
427•Curiositry•19h ago•520 comments

Using Claude to reduce the attack surface of code

https://www.anthropic.com/research/attack-surface-reduction
82•dnw•9h ago•48 comments

SlopCodeBench 10/2026 – Opus 5.5, Astra wins overall, xhigh considered harmful

https://github.com/humanlayer/advanced-context-engineering-for-coding-agents/blob/main/benchmarki...
283•dhorthy•5d ago•110 comments

Apple broke an essential presentation feature of iPads

https://teddysvoronos.com/2026-10-19-apple-broke-an-essential-presentation-feature-of-ipads/
575•evanb•1d ago•284 comments