Fast implementation of Git in pure Go codeberg.org/lindenii/furgit
git go
6
fork

Configure Feed

Select the types of activity you want to include in your feed.

README, etc.: Use proper unicode hyphens :P

Runxi Yu c874533e efdfbaa7

+20 -20
+2 -2
BENCHMARKS.md
··· 2 2 3 3 * See [gitbench](https://git.sr.ht/~runxiyu/gitbench). 4 4 * `legacy` branch furgit is slightly faster due to buffer reuse and custom 5 - ZLIB. These will be re-added. 6 - * Alpine edge, i5-10210U, `performance` governor, `linux.git`. 5 + ZLIB. These will be re‐added. 6 + * Alpine edge, i5‐10210U, `performance` governor, `linux.git`. 7 7 * go-git may become much faster when 8 8 [#1894](https://github.com/go-git/go-git/pull/1894) 9 9 and such are fully in use.
+2 -2
CONTRIBUTING.md
··· 18 18 19 19 Please ask for help with writing your regression test before asking for your 20 20 problem to be fixed. Time invested in writing a regression test saves time 21 - wasted on back-and-forth discussion about how the problem can be reproduced. A 21 + wasted on back‐and‐forth discussion about how the problem can be reproduced. A 22 22 regression test will need to be written in any case to verify a fix and 23 23 prevent the problem from resurfacing. 24 24 ··· 52 52 license" refers to the GNU Affero General Public License, Version 3.0, with 53 53 the above proxy designation in the README, pursuant to Section 14. 54 54 55 - All contributors are required to "sign-off" their commits (using `git commit 55 + All contributors are required to "sign‐off" their commits (using `git commit 56 56 -s`) to indicate that they have agreed to the [Developer Certificate of 57 57 Origin](https://developercertificate.org), reproduced below. 58 58
+2 -2
README.md
··· 3 3 [![builds.sr.ht status](https://builds.sr.ht/~runxiyu/furgit.svg)](https://builds.sr.ht/~runxiyu/furgit) 4 4 [![Go Reference](https://pkg.go.dev/badge/codeberg.org/lindenii/furgit.svg)](https://pkg.go.dev/codeberg.org/lindenii/furgit) 5 5 6 - Furgit is a low-level Git library in Go. 6 + Furgit is a low‐level Git library in Go. 7 7 8 8 ## Status 9 9 ··· 14 14 15 15 ## Goals 16 16 17 - * General-purpose Git plumbing library for UNIX-like systems 17 + * General‐purpose Git plumbing library for UNIX‐like systems 18 18 * Aim for extremely clear and modular architecture 19 19 * Then aim for high performance 20 20 * Expect familiarity with Git internals
+14 -14
ROADMAP.md
··· 5 5 * [ ] Includes 6 6 * [ ] Writing 7 7 * [X] Object IDs 8 - * [X] SHA-256 9 - * [X] SHA-1 8 + * [X] SHA‐256 9 + * [X] SHA‐1 10 10 * [X] Object model (incl., parse, serialize) 11 11 * [X] Blobs 12 12 * [X] Trees ··· 32 32 * [X] Pack index lookups 33 33 * [X] Delta caching 34 34 * [X] Delta application 35 - * [ ] Pack-wide bloom filters 35 + * [ ] Pack‐wide bloom filters 36 36 * [ ] Multi pack indexes 37 37 * [ ] Writing objects 38 38 * [X] Loose object writing ··· 50 50 * [ ] Plugabble compression algorithms 51 51 * [X] ZLIB support 52 52 * [ ] DEFLATE optimizations 53 - * [X] Adler-32 SIMD optimizations 53 + * [X] Adler‐32 SIMD optimizations 54 54 * [X] References 55 55 * [X] Detached references 56 56 * [X] Symbolic references ··· 103 103 * [ ] Revision log walk 104 104 * [ ] Topological ordering 105 105 * [ ] Date ordering 106 - * [ ] Path-limited 106 + * [ ] Path‐limited 107 107 * [ ] Diffing 108 108 * [ ] Blame 109 109 * [ ] Annotate 110 110 * [X] Tree diffing 111 111 * [ ] Similarity/rename/copy detection 112 - * [ ] Multi-way diffs 113 - * [ ] Patch-id 114 - * [ ] Range-diff 112 + * [ ] Multi‐way diffs 113 + * [ ] Patch‐id 114 + * [ ] Range‐diff 115 115 * Blob diffing 116 116 * [ ] Word diffs 117 117 * [X] Myers 118 118 * [ ] Patience 119 119 * [ ] Histogram 120 - * [ ] Tree-way 120 + * [ ] Three‐way 121 121 * [ ] Format patch 122 122 * [ ] Apply/amend patch 123 123 * Branch integration/rewrite/etc methods ··· 133 133 * [X] side-band-64k 134 134 * [X] Ingesting packfiles 135 135 * [X] Quarantine areas 136 - * [X] Un-thinning thin packs 136 + * [X] Un‐thinning thin packs 137 137 * Version 0, version 1 protocols 138 138 * [X] Server side 139 139 * [X] Reference advertisement ··· 148 148 * [ ] "Upload" 149 149 * [ ] Client side 150 150 * [ ] Fetch 151 - * Protocol-independent logic 151 + * Protocol‐independent logic 152 152 * Common 153 153 * [X] Progress meters 154 154 * Client side ··· 188 188 * [ ] Filesystem monitor 189 189 * [ ] Worktree 190 190 * [ ] Common directory 191 - * [ ] Worktree-specific references 192 - * [X] Worktree-specific reference name validation 191 + * [ ] Worktree‐specific references 192 + * [X] Worktree‐specific reference name validation 193 193 * Research 194 194 * [ ] Dynamic packfiles 195 - * [ ] Compaction; page-sized hole punching 195 + * [ ] Compaction; page‐sized hole punching 196 196 * [ ] Dynamic indexing 197 197 * [ ] Linear/extendible/spiral hashing 198 198 * [ ] Dynamic reachability bitmaps