Live data from Hacker News

Grit: Rewriting Git in Rust with agents

blog.gitbutler.com

121–130 of 318 posts

Re: Grit: Rewriting Git in Rust with agents

#121
post #37

pretty dystopian to ask a robot to recreate your favorite software just so you can relicense it for your business venture

We're choosing a license that is usable by the entire community. Our goal is a linkable library, which makes GPL impossible. If we had chosen to go with LGPL or GPL with linking exception (like libgit2), it would have the same issue of changing the license, so we went with whatever was the most permissive so everyone could use it for anything if they wish. This has nothing to do with business - I hope I can get the project to the point where Jujutsu or whomever can use whatever is valuable here for whatever they want.

We clearly learned from how Git does operations and emulated it in order to function interoperably, the same way that Gitoxide and libgit2 have, and released it under a license that would be the most valuable for people wanting to use a linkable library, the same way that Gitoxide and libgit2 have.

Re: Grit: Rewriting Git in Rust with agents

#123
post #11

> In looking at the code that the LLMs have produced for the project, especially given the pretty massive and widespread architectural changes needed to make the implementation libified and memory safe, we decided that the codebase is not a derivative work that would require carrying forward the GPL license and have decided to release the code under the MIT instead. Hmm. That's going to be interesting.

I'm not a copyright lawyer, but it seems pretty clear to me you can't wash a license using an LLM.

[US jurisdiction]: Anything in the result written by the LLM can not be copyright by anyone.

Anything in the result written by a human can be, and if it was all emitted by the LLM then that portion originally written by a human carries its own copyright.

As a work of an LLM, the entirety presumably can not be copyright, at all. Portions written by humans presumably carry their original copyright.

Re: Grit: Rewriting Git in Rust with agents

#124
post #33

Earlier quoted context omitted.

they would be just wrong. I hope someone with standing sues

I don't think it's that clear cut. The functional parts probably aren't copyrightable, only the stylistic ones. It's going to be a mix of courts applying laws in new ways that hasn't been done before and fact specific questions about what actually persisted through the LLM if it goes to court. I'd be fascinated to see what happens if it does. Both in the analyses that we'd get of what the LLM did to the codebase and…

If feeding the source code through a complier yields a derivative work, why wouldn't feeding it to an LLM give the same result?

Re: Grit: Rewriting Git in Rust with agents

#125
post #5

they still haven't explained why I should bother. Is it faster, easier, more efficient, more capable, more scalable on large codebases, supports better workflows? In fact, I would rather it stay C for 15 more years.

I'm assuming you didn't read the article, since I'm pretty sure I covered all of this, but I'm happy to respond.

Don't bother.

It's probably not for you. It's slower, more obtuse, more bloated, less capable, exponentially less scalable at any size. Canonical Git is better in every way, except being a linkable library.

Even in the arena of being linkable libraries that can do Git stuff, both Gitoxide (Rust) and libgit2 (C which has git2 crate Rust bindings) are both better, they're just not feature complete. That is the only point of this project.

Re: Grit: Rewriting Git in Rust with agents

#126

Earlier quoted context omitted.

But libgit2 exists, right? It may not have 100% feature parity with git, but that's a linkable library that gives you a lot of functionality when working with git repos.

the author of this post (whom you were responding to) made `libgit`, the library that preceded `libgit2`, and contributed to libgit2 a long time ago as well. Here he is in 2010 writing about libgit2: https://github.blog/news-insights/libgit2-a-git-linkable-lib...

To be clear, I 100% did not make libgit. I did help the libgit2 project get off the ground.

Re: Grit: Rewriting Git in Rust with agents

#127
post #33

Earlier quoted context omitted.

I don't think it's that clear cut. The functional parts probably aren't copyrightable, only the stylistic ones. It's going to be a mix of courts applying laws in new ways that hasn't been done before and fact specific questions about what actually persisted through the LLM if it goes to court. I'd be fascinated to see what happens if it does. Both in the analyses that we'd get of what the LLM did to the codebase and…

If feeding the source code through a complier yields a derivative work, why wouldn't feeding it to an LLM give the same result?

Because compilers and LLMs do different things, and what is done matters, so you can't reason by stepping from one to the other.

Compilers don't axiomatically yield derivative works, they simply in practice do because for non-trivial programs they preserve copyrightable elements of the work in the output.

Re: Grit: Rewriting Git in Rust with agents

#130
post #127

Earlier quoted context omitted.

If feeding the source code through a complier yields a derivative work, why wouldn't feeding it to an LLM give the same result?

Because compilers and LLMs do different things, and what is done matters, so you can't reason by stepping from one to the other. Compilers don't axiomatically yield derivative works, they simply in practice do because for non-trivial programs they preserve copyrightable elements of the work in the output.

Well compilers are a mechanical transformation and if that were sufficient to free you of IP law then IP law wouldn't work.

An LLM is also a computer program which takes input and produces output related in some way to that input. However I don't think most people would view it as a "mere" mechanical transformation. One could tautologically argue that an LLM blends the user input with the training inputs which is a sort of transformation and further that the LLM itself is a computer program thus it is mechanical in nature. However it should be immediately obvious that such an overly literal interpretation is in danger of subsuming human work as well. Where the boundary lies is an unanswered question.

Related, compilers can pose a problem depending on what the output includes. For example common lisp compilers that aren't under a permissive license are a minefield because regardless of what anyone might say the image that gets output includes (approximately) the full language implementation verbatim in addition to the user's program.

Post reply on HN