<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: notmywalrus</title><link>https://news.ycombinator.com/user?id=notmywalrus</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Thu, 23 Apr 2026 12:22:09 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=notmywalrus" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by notmywalrus in "Jujutsu megamerges for fun and profit"]]></title><description><![CDATA[
<p>> git tags<p>There are commands for manipulating tags (jj tag set, jj tag delete), and recently [1] support for fetching / pushing<p>[1]: <a href="https://github.com/jj-vcs/jj/pull/9279" rel="nofollow">https://github.com/jj-vcs/jj/pull/9279</a></p>
]]></description><pubDate>Mon, 20 Apr 2026 23:55:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=47842786</link><dc:creator>notmywalrus</dc:creator><comments>https://news.ycombinator.com/item?id=47842786</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47842786</guid></item><item><title><![CDATA[New comment by notmywalrus in "Safe C++ proposal is not being continued"]]></title><description><![CDATA[
<p>Rust is an example of "compiler magic" in this case.<p>You're right about Zig, and reading the source [1] I'm still kind of impressed how unified they made comptime / runtime.<p>[1]: <a href="https://github.com/ziglang/zig/blob/32a1aabff78234b428234189ee1093fb65f85fa3/lib/std/Io/Writer.zig#L536" rel="nofollow">https://github.com/ziglang/zig/blob/32a1aabff78234b428234189...</a></p>
]]></description><pubDate>Sun, 14 Sep 2025 06:57:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=45238034</link><dc:creator>notmywalrus</dc:creator><comments>https://news.ycombinator.com/item?id=45238034</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45238034</guid></item><item><title><![CDATA[New comment by notmywalrus in "Jujutsu for busy devs"]]></title><description><![CDATA[
<p>I would call `jj absorb` a new feature (new if coming from git, I believe the idea was taken from hg). It moves diffs into the closest ancestor that touched those files/lines. Very useful for addressing reviews, then just `jj absorb` and watch them get squashed into the correct location.<p>This gets even better with octopus merges (known in the jj community as "megamerges"): open up 5 branches at the same time, address minor tweaks in any number of them, and `jj absorb` the content into the right parent branch.</p>
]]></description><pubDate>Tue, 22 Jul 2025 12:27:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=44646032</link><dc:creator>notmywalrus</dc:creator><comments>https://news.ycombinator.com/item?id=44646032</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44646032</guid></item><item><title><![CDATA[New comment by notmywalrus in "Jujutsu for busy devs"]]></title><description><![CDATA[
<p>...no? On all counts.<p>`jj ignore` is not a command. [1]<p>There is no such thing as `.jjignore` files [2], [3].<p>`--no-snapshot` is not a flag, neither on `jj edit` nor in general. Additionally, it doesn't make sense conceptually --- `jj edit` changes the working copy, which will then propagate changes to the selected commit every time you edit a file.<p>If you want to check out an old commit without amending it, you `jj new` on top of it. If you end up making changes that you don't care about, you can `jj abandon` them.<p>[1]: <a href="https://jj-vcs.github.io/jj/latest/cli-reference/" rel="nofollow">https://jj-vcs.github.io/jj/latest/cli-reference/</a><p>[2]: <a href="https://github.com/jj-vcs/jj/issues/3525">https://github.com/jj-vcs/jj/issues/3525</a><p>[3]: <a href="https://jj-vcs.github.io/jj/latest/working-copy/#ignored-files" rel="nofollow">https://jj-vcs.github.io/jj/latest/working-copy/#ignored-fil...</a></p>
]]></description><pubDate>Tue, 22 Jul 2025 02:16:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=44642624</link><dc:creator>notmywalrus</dc:creator><comments>https://news.ycombinator.com/item?id=44642624</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44642624</guid></item><item><title><![CDATA[New comment by notmywalrus in "JJ Cheat Sheet"]]></title><description><![CDATA[
<p>I find it encourages linear history more by making rebasing easier. Definitely  possible, the jj project itself uses a linear history.</p>
]]></description><pubDate>Wed, 12 Feb 2025 05:16:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=43022130</link><dc:creator>notmywalrus</dc:creator><comments>https://news.ycombinator.com/item?id=43022130</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43022130</guid></item><item><title><![CDATA[New comment by notmywalrus in "JJ Cheat Sheet"]]></title><description><![CDATA[
<p>The blockers for many are:<p>- No support for LFS<p>- No support for hooks (precommit, etc)<p>- No? Bad? support for submodules<p>- No? Bad? support for line ending styles<p>If you don't care about those, you _should_ be able to use jj completely "undetected". It does encourage rewriting history more than some git workflows like.<p>In terms of issues in the git repo -- there shouldn't be any. jj uses git as a backend, all commits are stored as git commits, etc. If you colocate the repo, you're able to use git commands directly.</p>
]]></description><pubDate>Wed, 12 Feb 2025 05:10:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=43022100</link><dc:creator>notmywalrus</dc:creator><comments>https://news.ycombinator.com/item?id=43022100</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43022100</guid></item><item><title><![CDATA[New comment by notmywalrus in "JJ Cheat Sheet"]]></title><description><![CDATA[
<p>> > if I'm understanding it right, turns r --[edit3]--> q --[edit2]--> p into r --[edit3]--> p.<p>> You are right with the outcome but wrong about why. `jj abandon -r q` would turn `r --> q --> p` into `r --> p`<p>Well, it can do two things. Given:
`r(f3) --[e3]--> q(f2) --[e2]--> p(f1)`<p>`jj abandon -r q` makes `r(f1+e3) --[e3]--> p(f1)`, as if you had rebased `r` onto `p`.<p>`jj abandon -r q --restore-descendants` makes `r(f3) --[e2+e3]--> p(f1)`, as if you had squashed `r` into `q`.</p>
]]></description><pubDate>Wed, 12 Feb 2025 03:06:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=43021384</link><dc:creator>notmywalrus</dc:creator><comments>https://news.ycombinator.com/item?id=43021384</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43021384</guid></item><item><title><![CDATA[New comment by notmywalrus in "JJ Cheat Sheet"]]></title><description><![CDATA[
<p>You may be interested in the semi-standard `jj tug` alias [1], that moves "the most recent" bookmark up to `@-`<p>[1]: <a href="https://github.com/jj-vcs/jj/discussions/5568">https://github.com/jj-vcs/jj/discussions/5568</a></p>
]]></description><pubDate>Wed, 12 Feb 2025 02:22:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=43021096</link><dc:creator>notmywalrus</dc:creator><comments>https://news.ycombinator.com/item?id=43021096</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43021096</guid></item></channel></rss>