Skip to content
This repository was archived by the owner on Sep 11, 2020. It is now read-only.

Commit 5c2966c

Browse files
authored
Merge pull request #690 from mcuadros/readme
README.md update
2 parents fbe632e + 110e701 commit 5c2966c

File tree

1 file changed

+14
-18
lines changed

1 file changed

+14
-18
lines changed

README.md

Lines changed: 14 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,19 @@
1-
# go-git [![GoDoc](https://godoc.org/gopkg.in/src-d/go-git.v4?status.svg)](https://godoc.org/github.com/src-d/go-git) [![Build Status](https://travis-ci.org/src-d/go-git.svg)](https://travis-ci.org/src-d/go-git) [![Build status](https://ci.appveyor.com/api/projects/status/nyidskwifo4py6ub?svg=true)](https://ci.appveyor.com/project/mcuadros/go-git) [![codecov.io](https://codecov.io/github/src-d/go-git/coverage.svg)](https://codecov.io/github/src-d/go-git) [![codebeat badge](https://codebeat.co/badges/b6cb2f73-9e54-483d-89f9-4b95a911f40c)](https://codebeat.co/projects/github-com-src-d-go-git)
1+
![go-git logo](https://cdn.rawgit.com/src-d/artwork/02036484/go-git/files/go-git-github-readme-header.png)
2+
[![GoDoc](https://godoc.org/gopkg.in/src-d/go-git.v4?status.svg)](https://godoc.org/github.com/src-d/go-git) [![Build Status](https://travis-ci.org/src-d/go-git.svg)](https://travis-ci.org/src-d/go-git) [![Build status](https://ci.appveyor.com/api/projects/status/nyidskwifo4py6ub?svg=true)](https://ci.appveyor.com/project/mcuadros/go-git) [![codecov.io](https://codecov.io/github/src-d/go-git/coverage.svg)](https://codecov.io/github/src-d/go-git) [![Go Report Card](https://goreportcard.com/badge/github.com/src-d/go-git)](https://goreportcard.com/report/github.com/src-d/go-git)
23

3-
A highly extensible git implementation in **pure Go**.
4+
*go-git* is a highly extensible git implementation library written in **pure Go**.
45

5-
*go-git* aims to reach the completeness of [libgit2](https://libgit2.github.com/) or [jgit](http://www.eclipse.org/jgit/), 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.
6+
It can be used to manipulate git repositories at low level *(plumbing)* or high level *(porcelain)*, through an idiomatic Go API. It also supports several type of storage, such as in-memory filesystems, or custom implementations thanks to the [`Storer`](https://godoc.org/gopkg.in/src-d/go-git.v4/plumbing/storer) interface.
67

7-
It is **highly extensible**, we have been following the open/close principle in its design to facilitate extensions, mainly focusing the efforts on the persistence of the objects.
8+
It's being actively develop since 2015 and is being use extensively by [source{d}](https://sourced.tech/) and [Keybase](https://keybase.io/blog/encrypted-git-for-everyone), and by many other libraries and tools.
89

9-
### ... is this production ready?
10+
Comparison with git
11+
-------------------
1012

11-
The master branch represents the `v4` of the library, it is currently under active development and is planned to be released in early 2017.
13+
*go-git* aims to be fully compatible with [git](https://github.com/git/git), all the *porcelain* operations are implemented to work exactly as *git* does.
1214

13-
If you are looking for a production ready version, please take a look to the [`v3`](https://github.com/src-d/go-git/tree/v3) which is being used in production at [source{d}](http://sourced.tech) since August 2015 to analyze all GitHub public repositories (i.e. 16M repositories).
15+
*git* is a humongous project with years of development by thousands of contributors, making it challenging for *go-git* implement all the features. You can find a comparison of *go-git* vs *git* in the [compatibility documentation](COMPATIBILITY.md).
1416

15-
We recommend the use of `v4` to develop new projects since it includes much new functionality and provides a more *idiomatic git* API
1617

1718
Installation
1819
------------
@@ -23,6 +24,7 @@ The recommended way to install *go-git* is:
2324
go get -u gopkg.in/src-d/go-git.v4/...
2425
```
2526

27+
> We use [gopkg.in](http://labix.org/gopkg.in) for having a versioned API, this means that when `go get` clones the package, is the latest tag matching `v4.*` cloned and not the master branch.
2628
2729
Examples
2830
--------
@@ -108,20 +110,14 @@ Date: Fri Nov 11 13:23:22 2016 +0100
108110
...
109111
```
110112

111-
You can find this [example](_examples/log/main.go) and many other at the [examples](_examples) folder
112-
113-
Comparison With Git
114-
-------------------
115-
116-
In the [compatibility documentation](COMPATIBILITY.md) you can find a comparison
117-
table of git with go-git.
113+
You can find this [example](_examples/log/main.go) and many others at the [examples](_examples) folder
118114

119115
Contribute
120116
----------
121117

122-
If you are interested in contributing to go-git, open an [issue](https://github.com/src-d/go-git/issues) explaining which missing functionality you want to work on, and we will guide you through the implementation.
118+
[Contributions](https://github.com/src-d/go-git/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22) are more than welcome, if you are interested please take a look to
119+
our [Contributing Guidelines](CONTRIBUTING.md).
123120

124121
License
125122
-------
126-
127-
MIT, see [LICENSE](LICENSE)
123+
Apache License Version 2.0, see [LICENSE](LICENSE)

0 commit comments

Comments
 (0)