aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--BENCHMARKS.md22
-rw-r--r--CONTRIBUTING.md89
-rw-r--r--README.md111
3 files changed, 117 insertions, 105 deletions
diff --git a/BENCHMARKS.md b/BENCHMARKS.md
new file mode 100644
index 00000000..b6f8c0e8
--- /dev/null
+++ b/BENCHMARKS.md
@@ -0,0 +1,22 @@
+# Benchmarks
+
+* See [gitbench](https://git.sr.ht/~runxiyu/gitbench).
+* `legacy` branch furgit is slightly faster due to buffer reuse and custom
+ ZLIB. These will be re-added.
+* Alpine edge, i5-10210U, `performance` governor, `linux.git`.
+* go-git may become much faster when
+ [#1894](https://github.com/go-git/go-git/pull/1894)
+ and such are fully in use.
+* These lone tests do not represent all workloads. Test your usage
+ pattern yourself (and contribute to gitbench).
+
+## Traversing all trees in `HEAD` and fetching each file size
+
+Mainly tests the packfile object reader.
+
+| Implementation | Total | User | System |
+| - | - | - | - |
+| Git | 337 ms | 226 ms | 108 ms |
+| libgit2 | 391 ms | 269 ms | 120 ms |
+| Furgit | 487 ms | 457 ms | 49 ms |
+| go-git | 37 s | 35 s | 2 s |
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
new file mode 100644
index 00000000..c0fefe38
--- /dev/null
+++ b/CONTRIBUTING.md
@@ -0,0 +1,89 @@
+# Contributing
+
+Refer to the README for community spaces.
+
+## Repos and mirrors
+
+* [Codeberg](https://codeberg.org/lindenii/furgit)
+* [SourceHut mirror](https://git.sr.ht/~runxiyu/furgit)
+* [tangled mirror](https://tangled.org/@runxiyu.tngl.sh/furgit)
+* [GitHub mirror](https://github.com/runxiyu/furgit)
+* [git.runxiyu.org mirror](https://git.runxiyu.org/furgit.git//)
+
+## Reporting bugs
+
+Bug reports ideally include a reproduction recipe: a Go program which starts
+out with an empty repository and calls Furgit and/or Git commands to trigger
+undesirable behavior.
+
+Please ask for help with writing your regression test before asking for your
+problem to be fixed. Time invested in writing a regression test saves time
+wasted on back-and-forth discussion about how the problem can be reproduced. A
+regression test will need to be written in any case to verify a fix and
+prevent the problem from resurfacing.
+
+If writing an automated test really turns out to be impossible, please explain
+in very clear terms how the problem can be reproduced.
+
+Choose any one of:
+
+* [Open an issue on Codeberg](https://codeberg.org/lindenii/furgit/issues/new/choose)
+* Sending email to [my public inbox](https://lists.sr.ht/~runxiyu/public-inbox)
+* [Open an issue on GitHub](https://github.com/runxiyu/furgit/issues/new/choose)
+
+## Submitting changes
+
+* Open a [pull request on Codeberg](https://codeberg.org/lindenii/furgit/pulls)
+* [Send a patch](https://git-send-email.io) to
+ [my public inbox](https://lists.sr.ht/~runxiyu/public-inbox)
+* Open a [pull request on GitHub](https://github.com/runxiyu/furgit/pulls)
+
+## Licensing
+
+For the purposes of the Developer Certificate of Origin, the "open source
+license" refers to the GNU Affero General Public License, Version 3.0, with
+the above proxy designation in the README, pursuant to Section 14.
+
+All contributors are required to "sign-off" their commits (using `git commit
+-s`) to indicate that they have agreed to the [Developer Certificate of
+Origin](https://developercertificate.org), reproduced below.
+
+```
+Developer Certificate of Origin
+Version 1.1
+
+Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
+1 Letterman Drive
+Suite D4700
+San Francisco, CA, 94129
+
+Everyone is permitted to copy and distribute verbatim copies of this
+license document, but changing it is not allowed.
+
+
+Developer's Certificate of Origin 1.1
+
+By making a contribution to this project, I certify that:
+
+(a) The contribution was created in whole or in part by me and I
+ have the right to submit it under the open source license
+ indicated in the file; or
+
+(b) The contribution is based upon previous work that, to the best
+ of my knowledge, is covered under an appropriate open source
+ license and I have the right under that license to submit that
+ work with modifications, whether created in whole or in part
+ by me, under the same open source license (unless I am
+ permitted to submit under a different license), as indicated
+ in the file; or
+
+(c) The contribution was provided directly to me by some other
+ person who certified (a), (b) or (c) and I have not modified
+ it.
+
+(d) I understand and agree that this project and the contribution
+ are public and that a record of the contribution (including all
+ personal information I submit with it, including my sign-off) is
+ maintained indefinitely and may be redistributed consistent with
+ this project or the open source license(s) involved.
+```
diff --git a/README.md b/README.md
index 38a81ecd..5e9e136b 100644
--- a/README.md
+++ b/README.md
@@ -5,7 +5,7 @@
Furgit is a low-level Git library in Go.
-## Project status
+## Status
* Several years away from stable
* Do not use in production
@@ -95,36 +95,6 @@ over the stores that `Repository` already exposes:
`commitquery` over the existing and quarantined object stores. Some hooks
are provided.
-## Benchmarks
-
-* See [gitbench](https://git.sr.ht/~runxiyu/gitbench).
-* `legacy` branch furgit is slightly faster due to buffer reuse and custom
- ZLIB. These will be re-added.
-* Alpine edge, i5-10210U, `performance` governor, `linux.git`.
-* go-git may become much faster when
- [#1894](https://github.com/go-git/go-git/pull/1894)
- and such are fully in use.
-* These lone tests do not represent all workloads. Test your usage
- pattern yourself (and contribute to gitbench).
-
-### Traversing all trees in `HEAD` and fetching each file size
-
-Mainly tests the packfile object reader.
-
-| Implementation | Total | User | System |
-| - | - | - | - |
-| Git | 337 ms | 226 ms | 108 ms |
-| libgit2 | 391 ms | 269 ms | 120 ms |
-| Furgit | 487 ms | 457 ms | 49 ms |
-| go-git | 37 s | 35 s | 2 s |
-
-## Repos and mirrors
-
-* [Codeberg](https://codeberg.org/lindenii/furgit) (with the canonical issue tracker)
-* [SourceHut mirror](https://git.sr.ht/~runxiyu/furgit)
-* [tangled mirror](https://tangled.org/@runxiyu.tngl.sh/furgit)
-* [GitHub mirror](https://github.com/runxiyu/furgit)
-
## Community
* [#lindenii](https://webirc.runxiyu.org/kiwiirc/#lindenii)
@@ -132,34 +102,13 @@ Mainly tests the packfile object reader.
* [#lindenii](https://web.libera.chat/#lindenii)
on [Libera.Chat](https://libera.chat)
-## History and lineage
-
-* Lindenii Forge
-* [hare-git](https://codeberg.org/lindenii/hare-git)
-* Faster Git library needed for
- [Lindenii Villosa](https://codeberg.org/lindenii/villosa)
- the next generation of Lindenii Forge
-* Translated hare-git and put it into `internal/common/git` in Villosa
-* Extracted it out into this general-purpose library
-* "Fur" is "git" left-shifted by 1 on QWERTY
-* Some architectural elements inspired by [upstream Git](https://git-scm.com),
- OpenBSD's [Game of Trees](https://gameoftrees.org), and
- [9front Git](https://git.9front.org/plan9front/9front/HEAD/sys/src/cmd/git/f.html).
-
-## Reporting bugs
+See the CONTRIBUTING document for bug reports and patch submissions.
-Bug reports ideally include a reproduction recipe: a Go program which starts
-out with an empty repository and calls Furgit and/or Git commands to trigger
-undesirable behavior.
+## Acknowledgements
-Please ask for help with writing your regression test before asking for your
-problem to be fixed. Time invested in writing a regression test saves time
-wasted on back-and-forth discussion about how the problem can be reproduced. A
-regression test will need to be written in any case to verify a fix and prevent
-the problem from resurfacing.
-
-If writing an automated test really turns out to be impossible, please explain
-in very clear terms how the problem can be reproduced.
+Partly inspired by [upstream Git](https://git-scm.com),
+OpenBSD's [Game of Trees](https://gameoftrees.org), and
+[9front Git](https://git.9front.org/plan9front/9front/HEAD/sys/src/cmd/git/f.html).
## License
@@ -176,51 +125,3 @@ under the GNU Affero General Public License, Version 3.0 only, a public
acceptance by the Designated Proxy of any subsequent version of the GNU Affero
General Public License shall permanently authorize the use of that accepted
version for this Program.
-
-For the purposes of the Developer Certificate of Origin, the "open source
-license" refers to the GNU Affero General Public License, Version 3.0, with the
-above proxy designation pursuant to Section 14.
-
-All contributors are required to "sign-off" their commits (using `git commit
--s`) to indicate that they have agreed to the [Developer Certificate of
-Origin](https://developercertificate.org), reproduced below.
-
-```
-Developer Certificate of Origin
-Version 1.1
-
-Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
-1 Letterman Drive
-Suite D4700
-San Francisco, CA, 94129
-
-Everyone is permitted to copy and distribute verbatim copies of this
-license document, but changing it is not allowed.
-
-
-Developer's Certificate of Origin 1.1
-
-By making a contribution to this project, I certify that:
-
-(a) The contribution was created in whole or in part by me and I
- have the right to submit it under the open source license
- indicated in the file; or
-
-(b) The contribution is based upon previous work that, to the best
- of my knowledge, is covered under an appropriate open source
- license and I have the right under that license to submit that
- work with modifications, whether created in whole or in part
- by me, under the same open source license (unless I am
- permitted to submit under a different license), as indicated
- in the file; or
-
-(c) The contribution was provided directly to me by some other
- person who certified (a), (b) or (c) and I have not modified
- it.
-
-(d) I understand and agree that this project and the contribution
- are public and that a record of the contribution (including all
- personal information I submit with it, including my sign-off) is
- maintained indefinitely and may be redistributed consistent with
- this project or the open source license(s) involved.
-```