dulwich
go-git
dulwich | go-git | |
---|---|---|
5 | 20 | |
2,006 | 5,498 | |
- | 1.3% | |
8.8 | 9.0 | |
5 days ago | 4 days ago | |
Python | Go | |
GNU General Public License v3.0 or later | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
dulwich
-
Show HN: Gogit – Just enough Git (in Go) to push itself to GitHub
> It seems a similar story with the rest of git.
Dulwich[1] is a pure-python Git implementation that's been around for many years, meant to be used as a library. I used it a long time ago to make a git-backed wiki. There's also libgit2 which is exactly what it sounds like and it has mature Go bindings[2]. I'm sure there are more implementations.
[1]: https://github.com/jelmer/dulwich
- DIY Git in Python
-
To the programmers in London: There is an open-source Python package named after Dulwich
It makes sense since the package is a pure Python implementation of Git. Here is the source (official website of the project): https://www.dulwich.io/
- TIL that there is an open-source Python package called "Dulwich", and why it's named after an area in London: It's a pure Python version of Git, and the name comes from a Monty Python sketch, where the characters Mr. and Mrs. Git live and occasionally attend to cocktail parties.
-
How do you guys do version control when you don't have access to the proper tools like GIT? Multiple files? Multiple functions? Some other obscure workaround?
Pure python implementation of git. https://github.com/jelmer/dulwich I haven't tested this, but git is mostly just a data structure and can be written in any language.
go-git
-
Show HN: Gogit – Just enough Git (in Go) to push itself to GitHub
I interpret "aims to be fully compatible" as meaning the operations it implements are intended to be compatible with how Git implements those operations. I do not interpret this statement as saying they implement all features of Git.
They offer a document which directly shows what is and isn't supported, and it specifically notes quite a few things that aren't supported yet: https://github.com/go-git/go-git/blob/master/COMPATIBILITY.m...
The godoc also says right upfront it "nowadays covers the majority of the plumbing read operations and some of the main write operations, but lacks the main porcelain operations such as merges." - https://pkg.go.dev/github.com/go-git/go-git/v5#pkg-overview
> I'm saying it's not a reasonable choice over just using git directly, and is unlikely to ever be.
OK, that's apparently true for your use-case. But again, what go-git implements is directly useful to a number of very popular projects, as well as literally two thousand less popular ones.
I find the exported functionality to be high quality, at least for my own use-case. I'm not commenting on the code quality. If I need a shed for bikes, and someone is giving out free but ugly bikesheds, I'm thankful. I don't complain about the color of the bikeshed.
- [Golang] Ejecutar comandos Go-git sobre SSH
-
Git framework/library for Java
The go frameworks has some particular limitations at the moment (merge, rebase https://github.com/go-git/go-git/blob/master/COMPATIBILITY.md) but overall great framework.Used for some go tools..
- Go-Git: A highly extensible Git implementation in pure Go
-
Auto fetch config from Git
You can monitor the sha of your config repos main branch with this I expect. https://github.com/go-git/go-git
-
Is there a way to clone remote git repositories programmatically with go, without the need to import a whole dependency for that?
I'm remaking a package named owl. One of the features of this package is the ability to clone remote repositories. The first time I affront this problem, I solved it using go.Cmd and git command. Is there a way to achieve something similar without importing or using a dependency like go-git. Something like download files via http, ssh or something similar.
-
Git as back end for applications like Figma and Google Docs
I think there are already some Git SDKs out there. For example https://github.com/go-git/go-git
-
Kitsch-Prompt - golang based cross-platform shell prompt
I see that you’re using go-git, which has a problem with worktree.Status being unusably slow—and in a prompt you’ll most certainly need to use it. I know because I tried writing my prompt using go-git, and had it hang on a work repo for a good minute. Eventually bit the bullet and switched to git2go (libgit2 bindings; uses cgo).
- Ask HN: Is there a good tutorial on how to create a GitHub clone?
- Small Side Project On Sunday: Small Tool To Bump The Version
What are some alternatives?
Samosa (समोसा) - Enforce a triangular Git workflow. If this is not possible, explain why.
watchman - Watches files and records, or triggers actions, when they change.
giftless - 🎁 A pluggable Git LFS server written in Python. Highly customizable and easy to extend.
sapling - A Scalable, User-Friendly Source Control System.
git - GitGitGadget's Git fork. Open Pull Requests here to submit them to the Git mailing list
git2go - Git to Go; bindings for libgit2. Like McDonald's but tastier.
Git - Git Source Code Mirror - This is a publish-only repository but pull requests can be turned into patches to the mailing list via GitGitGadget (https://gitgitgadget.github.io/). Please follow Documentation/SubmittingPatches procedure for any of your improvements.
OS-Lab
build-your-own-x - Master programming by recreating your favorite technologies from scratch.
scalar - Scalar: A set of tools and extensions for Git to allow very large monorepos to run on Git without a virtualization layer