| ▲ | tomjakubowski 5 hours ago |
| I really don't like this. The code I write between commits is my thinking. I think by writing some code out, deleting it, writing again. The code I write that's shipped in commits is written for others to understand, and is a product of that writing for thinking process. I don't want my thoughts to be serialized, version controlled and publicly accessible. https://www.nature.com/articles/s44222-025-00323-4 |
|
| ▲ | subygan 2 hours ago | parent | next [-] |
| This was my problem with JJ as well.
I don't want everything in between to be versioned. I'm not even sure, every intermediary state between a commit is relevant or useful. but feels like, I'm in the minority. |
| |
| ▲ | steveklabnik 2 hours ago | parent [-] | | To be clear, while jj does that, it's entirely local on your machine, and not shared. |
|
|
| ▲ | hinkley 4 hours ago | parent | prev | next [-] |
| This is why I use rebase before PRs, and despise squash. You are not going to remember why you wrote that code that way 2 years from now and all we'll have to understand bugs and identify Chesterton's Fence situations is the deltas and the commit history. If you squash them I have 400 lines of code you 'wrote' all at the same time and only have the feature request it was assigned to as context. Thanks for nothing. The worst actor would write a new module and check nothing in until it kinda worked. I think it went along with the fragile ego that had people sneaking around fixing bugs in his code without talking to him about it first. He wrote convoluted code that exhibited Kernighan's law and he was about 10 years too senior to still be doing that shit. He bragged about how 'powerful' his code was as if that was a compliment instead of a harbinger. Many times I found bugs in code from the initial commit. Just... give me something man. Anything. Fuck. Just because you tried random shit until you found the problem doesn't mean you have to fess up to it. You can tell any story you want that gets us from point A to point B now that you know point B is attainable. You can rearrange the commits the way you would have written it if you knew exactly what needed to be done. Drop 90% of the code you wrote and immediately deleted again, anything that doesn't support that narrative. In law enforcement you have something called Parallel Construction. You can know a suspect is guilty by knowing facts that are not admissible in court. So you need to rediscover those same facts by the book. Grab his trash on trash day. Interview neighbors. Get enough circumstantial evidence to get a search warrant, then go find that evidence again. |
| |
| ▲ | sharts 3 hours ago | parent | next [-] | | Squash smaller commits? | | |
| ▲ | hinkley 2 hours ago | parent [-] | | If it's part of the rebase. If commit 3 in the chain doesn't compile and half the tests fail, that's not very useful for someone trying to figure out how an ancient bug nobody noticed for a year got into the code. If commit 4 fixes it, then 3+4 -> 3. But if you add a function in commit 2, then realize three hours later than you just need to call another function, I don't need to see the function arrive, get used, half the tests written, the whole thing be deleted, and then a couple commits that do it the easy way and only needs 3 tests added. That fakeout will be in the code tree forever and each new dev who is trying to grok the code will see that the line of whitespace on line 35 came along with a function that doesn't exist anymore and only really ever did on David's machine. |
| |
| ▲ | giraffe_lady 4 hours ago | parent | prev [-] | | Probably coulda used an example that isn't itself a fourth amendment violation that essentially requires perjury to accomplish. Also less euphemistically called evidence laundering. Not really a neutral example. | | |
| ▲ | bonzini 3 hours ago | parent [-] | | A more charitable case is that the source cannot be disclosed because it's an undercover agent or informant. What the parent describes is indeed evidence laundering. | | |
| ▲ | hinkley an hour ago | parent [-] | | I was in fact thinking of informants but was a bit fuzzy on my facts so I demured. Sorry it came out a bit of hashed. |
|
|
|
|
| ▲ | fridder 4 hours ago | parent | prev | next [-] |
| The collaboration part I’m skeptical of but I get it, as it sounds like a feature made for business consumers |
| |
| ▲ | sdesol 4 hours ago | parent [-] | | This sounds like it is more aligned with what I have created which is "We need to capture your conversations with AI". If you look at https://github.com/gitsense/gsc-cli/blob/main/internal/cli/r... you can see that every file has a code block header with a UUID and the AI that was attributed to it. With the UUID, I can tell exactly how the code came about. What they are working on will be more useful for AI code provenance. It is only a matter of time before you are expected to show your chats with AI as part of the code review and for performance reviews. So I don't see human collaboration being the main use case. I see tracking, studying and improving the Human-AI relationship...and seeing if somebody should be promoted or not. An interesting take I've heard is, we will have a token/impact stat where if you spent a shitload of tokens to produce the same impact as somebody else who spent a lot less, you will be the prime candidate for layoffs and/or less pay. This is why I think AI code provenance will become a serious thing in the future. | | |
| ▲ | selicos 2 hours ago | parent | next [-] | | Audit purposes for sure. How was this code/concept generated, what were the prompts/requirements, what thinking did the model complete, can this be replicated or repeated, etc. A vendor conference I was at a few weeks ago focused heavily on this, for most of their Agentic workflow items. How can you show the AIs work, prove what it did was within guidelines, then audit the process and result. Like, if your system has an AI backed federated search for documents and you ask it a question about those documents, you need an audit trail of the ask, what documents were referenced, and what was returned to the user. Then if wrong information was supplied that can be pinned down and explained in case of lawsuit or other need. | |
| ▲ | jorl17 4 hours ago | parent | prev [-] | | FYI your link 404s. Seems like you copied the ellipsified version, so what we get is
https://github.com/gitsense/gsc-cli/blob/main/internal/cli/r | | |
|
|
|
| ▲ | jcgrillo 4 hours ago | parent | prev | next [-] |
| Fully agree, very icky surveillance vibes. In particular: > DeltaDB breaks your work into a stream of fine-grained deltas. Where Git captures a snapshot at each commit, DeltaDB captures every operation in between and gives each one a stable identity. I was curious about giving Zed a try, now that it has an emacs keymap. Not anymore. This is such a horribly invasive feature, I absolutely do not want my colleagues reviewing every single intermediate edit, down to the keystroke, that went into the commits I publish for review. Before I put a PR up for review, I'll sometimes edit my commit history a little bit in magit to make it more linear and digestible--maybe update descriptions, squash some adjacent commits together, etc. This just throws that whole aspect of the job out the window and says "hey, colleague, hoover up this firehose of deltas and enjoy it". And what the hell does this even mean? > What we're really after is simple: the conversation with the agent becomes the only conversation you need to have. Lmao. No. Wrong. |
| |
| ▲ | fridder 4 hours ago | parent | next [-] | | The more I think about it and your comment the more I wish it was local only. It could be useful to analyze your editing habits and interactions with AI but I want that for my own benefit not random coworkers | | |
| ▲ | slackpad 3 hours ago | parent | next [-] | | Yeah I really would not want all my convos synced up like this. I've been working on a personal version of something like this but it keeps all your conversations and notes in a separate Git repo that you control that's totally separate from the project repo - it's entirely designed for personal use: https://github.com/modulecollective/moe | |
| ▲ | jcgrillo 2 hours ago | parent | prev [-] | | I would probably only use these data if I had some script I could run in it for analysis, and even then optimizing my AI chats is probably pretty low value.. certainly not enough to justify the cost of analysis, unless there's something that provides actionable insights with almost zero time investment. Producing code edits itself is such a small fraction of the job I'm really not convinced these are valuable data. Mostly the effort and time goes into reading and understanding code, not producing or transforming it. |
| |
| ▲ | selicos 2 hours ago | parent | prev [-] | | This seems like a perfect audit feature to flip back and train a model. Or ensure your human worker is working during business hours. |
|
|
| ▲ | 0xb0565e486 4 hours ago | parent | prev | next [-] |
| Aren't you paid to think? |
| |
| ▲ | NewJazz 4 hours ago | parent | next [-] | | A woodworker is paid to work with wood. But the finished product is the worked wood, not a detailed summary of how the wood was worked with. | |
| ▲ | pdimitar 3 hours ago | parent | prev | next [-] | | No, you are paid to deliver. Whether you do that by thinking + hand-coding or just vibe-coding, or handing the task description to Cthulhu and waiting for him to materialize the solution on your disk, is immaterial. Unless of course you also have to explain your thinking and problem-solving process in meetings, which happens quite a lot the more senior you get. | |
| ▲ | 4 hours ago | parent | prev | next [-] | | [deleted] | |
| ▲ | bauldursdev 4 hours ago | parent | prev | next [-] | | No I'm paid to write code. | | |
| ▲ | malyk 4 hours ago | parent | next [-] | | No, you are paid to provide solutions for your customers. | |
| ▲ | NewJazz 4 hours ago | parent | prev | next [-] | | Does that... Not imply thinking avout what you are writing??? | | |
| ▲ | oriolid 3 hours ago | parent [-] | | Everyone probably has thought "what was the person thinking when they wrote this". Now you know that they probably didn't think (and since 2025 or so, it might not even have been a person). |
| |
| ▲ | muadddib 4 hours ago | parent | prev [-] | | and you can do that without thinking? |
| |
| ▲ | sieabahlpark 4 hours ago | parent | prev [-] | | [dead] |
|
|
| ▲ | gmueckl 4 hours ago | parent | prev [-] |
| Don't be afraid to show your thoughts when asked to. The best developers are those that can express their thoughts clearly at any stage throughout their process. This is one of the skills that shows to me the level of experience a developer has. |
| |
| ▲ | hinkley 2 hours ago | parent | next [-] | | Nobody needs to know quite how messy the process of making the sausage is though. There are steps that provide information, even about how the bugs got in there. But not every thought needs to be expressed. | | |
| ▲ | aeonik 2 hours ago | parent [-] | | Disagree. This how people best learn from each other. It's also nice to audit your own thought process objectively. It makes one vulnerable though, that's for sure. Psychologically I mean. | | |
| ▲ | hinkley 2 hours ago | parent [-] | | Whether you realize it or not, you're insisting all the neurodivergent people at your job unmask themselves, and fuck that noise. |
|
| |
| ▲ | InfinityByTen 4 hours ago | parent | prev [-] | | One of my professors in undergrad said: the most dangerous mathematicians are the ones that begin the proof with "Consider a case ...". He said that these mathematicians are the ones who don't share anything about how they got the case and they end up projecting this sort of "magician aura". I don't know how accurate that assessment it, but I think it captures something that never sat well with me. In my life, I've never liked people who deliberately polish up their articulation to the level that it obfuscates how they arrived at that understanding (whether it's academics or engineers). They might not do it for attention and they might not be doing it knowingly. IMO, they are taking away the opportunity of learning from the people they are talking to. For me the conversation is one sided. I'm there to listen, but rarely can I ask questions, give feedback or grow from where they have possibly reached. | | |
| ▲ | ozim 3 hours ago | parent | next [-] | | Ugh, let's take a step back and make a distinction: I don't need your fluff. No one cares how you arrived writing another crud line to save an object to database or sent yet another AJAX call. If you wrote some genuine great compression algorithm that's a different take on compression, I would like to see step by step reasoning and eventual dead ends. | | |
| ▲ | InfinityByTen 2 hours ago | parent | next [-] | | I shared my thoughts in the context of someone saying that one should be able to share your line of thinking when asked to. Whether "when one asked to" applies to keystroke by keystroke blockhained versioning isn't my point of discussion. I get it, that the overall discussion is about DeltaDB. I'd say interesting concept to toy with. I'd pay more attention to "micro commits" as the idea more than the keylogger. | |
| ▲ | hinkley 2 hours ago | parent | prev [-] | | I think a good argument ad absurdum for this is to look at how some recipe sites give the entire genealogical history of the author and an anecdote about how their gammy met Theodore Roosevelt and he stole her pen. Three pages later I discover I need to go to the grocery store because the recipe requires sour cream. And the store is closed so I need a different recipe. Don't fucking do that. Do something way less than halfway to that line. |
| |
| ▲ | ablob 3 hours ago | parent | prev | next [-] | | I personally stumble upon many topics where I only care about the what.
In that case all the theory is just a distraction I'm just wading through to get to the point.
If it's optional, then looking into the how and why is certainly nice, but it should be part of an appendix or a commentary and not interspersed within the proof unless an uncommented version exists. | |
| ▲ | hinkley 2 hours ago | parent | prev | next [-] | | "So I was thinking about #####'s Law this morning, and I realized that #######'s Theorem might apply if we do this and ignore that. Then I went up a blind alley and stopped for coffee and realized I was overcomplicating it, we don't care about negative or imaginary solutions." They don't need to know I was brushing my teeth and thinking of bacon and an argument I had with my spouse right before I thought that though. Or how rude the customer in front of me was to the new barista who was just trying her best. | | |
| ▲ | rdedev 2 hours ago | parent [-] | | The example I had was of Ramanujam. "It was revealed to me in a dream" | | |
| ▲ | hinkley an hour ago | parent [-] | | I love that man, and I hate that man. For many of the reasons already listed in this thread. He is smarter than Feynman, but also dumber than Feynman. |
|
| |
| ▲ | jcgrillo 3 hours ago | parent | prev [-] | | OTOH polishing up the presentation can really improve the experience of a first-time reader of the work (e.g. your code reviewers). If the polishing is done with good intent and proficiency you can make something that was very convoluted and difficult to arrive at digestible with far less effort. It also aids your own understanding: "If we can reduce it to the freshman level that means we really understand it" (or similar I didn't look up the exact quote, attributed to Feynman). If you're polishing something up to make it understandable that's totally different than polishing it up to make yourself seem smart, right? |
|
|