Live data from Hacker News

Git implemented in Rust

github.com

51–60 of 122 posts

Re: Git implemented in Rust

#51

Earlier quoted context omitted.

>It's so much fun, but not that practical for scalable websites. Git based kv has a bit different purpose than the regular kv storage. They are intended for communication between entities, running in parallel, sort of transactional memory. They are not intended for users' data storage.

That sounds more like a tuple space than a KV store?

Not sure, but the idea is that you could not only read and write, but write in parallel so the keys are merged according to the merge rule you've provided.

Re: Git implemented in Rust

#52
post #14

Earlier quoted context omitted.

> Implementing git in rust for fun and education! Also, not having a license file isn't a messy situation, that means “this project is protected under Berne Convention copyright“: the author is the only one holding every rights on the code and every use that is not explicitly allowed is a copyright infringement (unless it's fair use).

Arguably by downloading it from github you’ve made an illegal copy.

By making it public to view you agree others can load the page and view the code. Loading the page and viewing it is downloading it.

Re: Git implemented in Rust

#53
post #2

I don't see any info about a license. Strongly recommend using some standard FOSS license before plenty of people add commits and it gets a big mess clearing up the licensing situation later.

Easiest way to fix that is often just sending a PR with whatever is the “default” license for that particular eco-system.

For Rust that is (afaik) MIT. Why don’t you go try it? ;)

Re: Git implemented in Rust

#54

Earlier quoted context omitted.

> at the moment, even forking it is a copyright infringement Not that it changes much, but from the GitHub Terms of Service: > By setting your repositories to be viewed publicly, you agree to allow others to view and "fork" your repositories https://help.github.com/en/articles/github-terms-of-service#...

Yes you're right, github forking is allowed. Pulling the code on your computer, changing it and contributing changes on your fork is still illegal though.

Not illegal, but rather not granted (and not denied either). Only the author decides, as it's his right, not someone's else.

Re: Git implemented in Rust

#55

Let's port already portable software to non-portable languages! Yay!

Rust is pretty darn portable as it is though. It runs on the major platforms. Are you thinking its Assembly or something? Everywhere FireFox is compiled to Rust has to run on, which is a lot of platforms. Maybe it wont run on your toaster but if you are making git commits through your toaster you got other issues.

Maybe he's a plan 9 user.

Re: Git implemented in Rust

#56
post #12

Earlier quoted context omitted.

You retain the copyright of the patch and can re-use it somewhere else under a different licence. And in turn, the project you submitted it to cannot re-licence that patched section of code (e.g. become either GPL licenced) without your permission, as it does not belong to them. (Edit for clarity)

One issue is under the Berne baseline, even given github's license grant[0], there is no license to make adaptation, arrangement or derivative work. So it's unclear that the patch would even be legal to start with, in the sense that it's either a modification / adaptation of the work or a derivative of it. [0] https://help.github.com/en/articles/github-terms-of-service#...

Git derives patches from files on disk, so the patch inherits the file's license. Logically you commit files or even the whole source tree, a patch is an optimization detail, which is used to rebuild the source tree at a given point, so it's a matter of what license the source tree has at that point.

Re: Git implemented in Rust

#57
post #2

I don't see any info about a license. Strongly recommend using some standard FOSS license before plenty of people add commits and it gets a big mess clearing up the licensing situation later.

Easiest way to fix that is often just sending a PR with whatever is the “default” license for that particular eco-system. For Rust that is (afaik) MIT. Why don’t you go try it? ;)

(MIT/Apache2, yes)

Re: Git implemented in Rust

#58
post #46
post #43

If you're interested in this, you may enjoy "Building Git" by James Coglan - a comprehensive book that takes you through reimplementing git in Ruby. https://shop.jcoglan.com/building-git/

If you have read this book, would you care to comment about its content and quality? It is something I am interested in buying but I have not been able to find reviews of it.

It's pretty good, I'd recommend it. I haven't finished the book yet, but what I've read thus far has been good.

Something I'd wish I'd known (although it wouldn't have changed my decisions to purchase) is that it's not an exploration style book (i.e. "Let's cat this file and find out what it contains and why.") it's more of an explanation (i.e. "When I cat this file, it outputs XYZ which means ABC which I know from my research of the git source."). So the author isn't taking you along on their research, but rather coming back to you after the research is done to explain their findings from the ground up.

This means early chapters have a lot of, "You'll just have to trust me XYZ means ABC." But this is also understandable given the complexity of git; there isn't really a square one.

I also would have preferred the author use something like Python instead of Ruby for the reference implementation. IMO Python is a little more ubiquitous and easier to install/setup than Ruby. Ruby also leaves Windows devs at a disadvantage. But that's just me being pedantic.

Overall I'd give the thumbs up.

Re: Git implemented in Rust

#60

Let's port already portable software to non-portable languages! Yay!

Rust is pretty darn portable as it is though. It runs on the major platforms. Are you thinking its Assembly or something? Everywhere FireFox is compiled to Rust has to run on, which is a lot of platforms. Maybe it wont run on your toaster but if you are making git commits through your toaster you got other issues.

> if you are making git commits through your toaster you got other issues.

This made me snort out some coffee on a Monday. Thank you!

I think your point is also a good one I don't see represented often, portability for portability's sake is kinda silly. It's use that's important.

Post reply on HN