10 comments

  • NichoPaolucci 1 hour ago
    “It never reimplements git — it shells out to the system git CLI and rebuilds commits with git commit-tree, reusing each commit's original tree so file contents are provably never changed.”

    Glad the LLM noted this - I was worried this would reimplement git

    • YonathanTesfaye 1 hour ago
      Ha ha fair. But yeah shelling out to git and reusing the original tree object was deliberate means file contents can't change even if I screw up elsewhere.
    • whateveracct 1 hour ago
      why can't anyone just do things themselves anymore? it's all LLM crap
      • danudey 1 hour ago
        For what it's worth, I've used Claude to write a lot of smaller utility tools that I wouldn't normally have the time to sit down and implement, but which also solve straightforward problems.

        One small example is an extension for the `gh` cli where I give it a PR number and multiple branches and it cherry-picks that PR to those branches, or lets me know if some of the branches don't work. For managing multiple release branches it's very handy, but not so handy that I would have spent a lot of time and energy doing a good job of it.

        This seems like a similar sort of thing - a user friendly way to do something that most people don't need, and most people who need it probably don't need it very badly.

        I haven't used claude to replace my actual skills - researching, solving problems, etc. - but I do use it to replace all the stuff which is essentially 'spend a few hours reading API docs and writing boilerplate code'.

        • whateveracct 40 minutes ago
          but if you were sharing those utilities - even in a github gist! - why not write the English parts for human consumption yourself?
          • gritzko 19 minutes ago
            That is in fact the difficult part. You have to explain it all coherently while adjusting to the reader's frame. No one does that for no good reason. It is hellish work.
      • voidfunc 27 minutes ago
        Because I have better things to do with my time.
        • whateveracct 11 minutes ago
          I have better things to do than read LLM prose copy-pasted verbatim too.

          And yet here we are. I have to read LLM design docs that turn into LLM PRs with LLM PR descriptions and comments and docs.

      • saghm 36 minutes ago
        git has a notoriously overcomplicated interface, so this is a scenario that I can honestly understand why someone wouldn't want to do it by hand
        • whateveracct 34 minutes ago
          but what about the writing English to describe it part? does English also have a notoriously overcomplicated interface lol
          • arscan 16 minutes ago
            Well, yeah, it does.

            Effective and clear communication is really important and often really hard for engineers. It is said that one goal of stackoverflow was to help programmers learn how to write through practice, as it’s both very hard and very critical to their effectiveness:

            https://blog.codinghorror.com/how-to-write-without-writing/

            But programmers are also lazy*, so why put in the effort to improve when you can just get llms to do the work for you?

            * not necessarily in a bad way

      • MattGaiser 35 minutes ago
        A tool like this never sees the light of day without an LLM. Git is complicated and use case for this is rather niche.
        • whateveracct 29 minutes ago
          i definitely used to write bash functions for this sort of thing tho. no GUI, but it was useful to do stuff like obscure my working hours (make it look like i did personal stuff after-hours. make it seem like stuff took all day instead of an hour..like adding sawdust to meat).

          like you said, niche and probably unnecessary. and if i were to have published them (even in a gist!) i would have written the docs myself instead of forcing people to read LLM-speak. That's just lazy.

          • gritzko 16 minutes ago
            Yep, tell Claude to spit out a shell script. Use Python if bash is not enough.
            • whateveracct 10 minutes ago
              It wasn't hard to just..figure it out though. One sitting tops.

              Claude is learned (taught? lol) helplessness, at scale. I'm pretty sure it's their real moat.

    • Myzel394 1 hour ago
      Why would you think such a project would reimplement git?
      • mminer237 1 hour ago
        I believe that was sarcasm.
  • iamcoder18 2 hours ago
    This is cool, but has anyone ever needed to rewrite commit authors or dates?
    • simonw 1 hour ago
      I've needed to do this for a bunch of reasons.

      1. Sometimes I do a scraping project where I want the commit dates to match when the data actually changed, reconstructed from sources like the Internet Archive or the dates on https://platform.claude.com/docs/en/release-notes/system-pro... - for example here: https://github.com/simonw/research/commits/main/extract-syst... - or this project that attempted to reconstruct the history of Tim Berners-Lee's original browser: https://github.com/simonw/1991-WWW-NeXT-Implementation/commi...

      2. Sometimes I split a Git repo into two, and I want to preserve the commit history (authors and dates) on the files that end up in the new repo - effectively replay the history of just one folder from the original to help create the new one.

      3. I occasionally mess up cleaning up and merging a PR from an open source contributor such that the work is incorrectly credited to me. I'll fix the commit so that it credits the right person.

    • xp84 1 hour ago
      Yes, for instance it could be useful if someone’s been accidentally committing with a bogus email address. Or if you’re cleaning up some sort of mess and would like to recreate an accurate history.

      Obviously as with any “force push” situation, the usual caveats apply if this is on a branch others have checked out, but if the mess is big enough, it is sometimes worth it to send everyone a script to reset or just to have people delete and re-check-out.

      • schainks 1 hour ago
        If someone's been committing with a bogus email address and they're still working on the project, shouldn't they clean up their own commits?
        • blazarquasar 1 hour ago
          Yeah, using this tool for example?
        • webstrand 1 hour ago
          Usually its me who has been committing with a bogus email address, because I don't like having my real user/email set in my $HOME/.gitconfig
    • dgunay 26 minutes ago
      Times I have needed to do this:

        - An agent messed with my git config for some reason so I had to go back and fix the commit authorship
        - I created a PR mostly based on work that someone else did, so I reauthored most of the commits to be in their name
      
      I have never personally needed to touch dates.
    • f1shy 1 hour ago
      Yes. Absolutely! Many times I had a wrong configured terminal and messed up the author. Often I work in different projects, privately and in my work, and I use different authors for both
    • icase 1 hour ago
      yes; when i wanted to make it look like i didn’t procrastinate for a week and implement the entire feature in one day
  • mellosouls 2 hours ago
    Hmmm, this seems to be making easy something you normally should not do.
    • Carrok 2 hours ago
      So, exactly like a knife? Generally we don't want to cut people open, but when we need to do it, like during surgery, a sharp knife sure helps.
    • YonathanTesfaye 2 hours ago
      Agreed mostly. The intent is local cleanup before you push like fixing a wrong author email across a batch or dates from a machine with a bad clock
  • f1shy 1 hour ago
    I would like to see something like this in magit. Other there is already?
    • YonathanTesfaye 1 hour ago
      No idea not an emacs person does magit handle bulk author/date edits or just reword? genuinely curious
  • cautiouscat 2 hours ago
    This looks cool! Are there screenshots available?
    • YonathanTesfaye 2 hours ago
      • yboris 1 hour ago
        Please put up this or another screenshot as the first thing you see in the README - please!

        I'm reluctant to clone a repository and spend time on it just to find out the project looks crap and I don't want to use it. A screenshot saves other people's time :)

        • YonathanTesfaye 1 hour ago
          done
          • everybodyknows 55 minutes ago
            Unreadable in iPad Safari -- delayed popup darkens the screen and demands app install.
            • YonathanTesfaye 34 minutes ago
              ah that's imgur. moved it to a github-hosted image should be fine now.
      • no-name-here 32 minutes ago
        Thanks, but is that a photo of a screen instead of a screenshot and that’s why it looks cloudy/random splotches are brighter?

        Regardless, it’s better than nothing, thank you.

      • esafak 2 hours ago
        I'd put that in the repo not here.
  • hootz 1 hour ago
    Would be great to have this, but as a TUI tabular editor.
    • ffsm8 21 minutes ago
      its vibecoded. just point another vibe based harness at it and youll have it in an hour or two. this thing is as trivial as you can get get, scope wise
    • YonathanTesfaye 1 hour ago
      [dead]
  • sixtyj 2 hours ago
    Extra points for the name.
  • YonathanTesfaye 2 hours ago
    I built a small Tauri app that just shows your commits in a table and lets you edit message/author/date directly, plus find & replace with regex if you need to fix a bunch at once. It backs up the branch before it rewrites anything doesn't touch file contents, just metadata.
  • Kerman 32 minutes ago
    [dead]