Skip to content

Commit

Permalink
Обновлены ссылки на go-git
Browse files Browse the repository at this point in the history
  • Loading branch information
Morganov committed Mar 21, 2020
1 parent 82566a6 commit b3d018d
Showing 1 changed file with 8 additions and 10 deletions.
18 changes: 8 additions & 10 deletions book/B-embedding-git/sections/go-git.asc
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,16 @@
Она не имеет собственных зависимостей, поэтому не подвержена ошибкам ручного управления памятью.
Так же эта библиотека прозрачна для стандартных Golang утилит анализа производительности, таких как профайлеры потребления ЦПУ и памяти, детектор гонки и других.

go-git ориентирован на расширяемость, совместимость и поддерживает большинство подключаемых API, которые описаны здесь https://github.com/src-d/go-git/blob/master/COMPATIBILITY.md[].
go-git ориентирован на расширяемость, совместимость и поддерживает большинство подключаемых API, которые описаны здесь https://github.com/go-git/go-git/blob/master/COMPATIBILITY.md[].

Вот простой пример использования Go API:

[source, go]
-----
import "gopkg.in/src-d/go-git.v4"
import "github.com/go-git/go-git/v5"
r, err := git.PlainClone("/tmp/foo", false, &git.CloneOptions{
URL: "https://github.com/src-d/go-git",
URL: "https://github.com/go-git/go-git",
Progress: os.Stdout,
})
-----
Expand All @@ -38,7 +38,6 @@ for _, c := range history {
}
-----


==== Расширенная функциональность

go-git обладает некоторыми дополнительными функциями, одна из которых -- это подключаемое хранилище, что близко по смыслу с бэкендами Libgit2.
Expand All @@ -47,17 +46,17 @@ go-git обладает некоторыми дополнительными фу
[source, go]
-----
r, err := git.Clone(memory.NewStorage(), nil, &git.CloneOptions{
URL: "https://github.com/src-d/go-git",
URL: "https://github.com/go-git/go-git",
})
-----

Подключаемое хранилище предоставляет много интересных возможностей.
Например, https://github.com/src-d/go-git/tree/master/_examples/storage[] позволяет вам сохранять ссылки, объекты и конфигурацию в базе данных Aerospike.
Например, https://github.com/go-git/go-git/tree/master/_examples/storage[] позволяет вам сохранять ссылки, объекты и конфигурацию в базе данных Aerospike.

Другая особенность -- гибкая абстракция файловой системы.
Используя https://godoc.org/github.com/src-d/go-billy#Filesystem[] легко сохранять все файлы по-разному, т.е. упаковав их все в один архив хранить на диске или держать в памяти.
Используя https://pkg.go.dev/github.com/go-git/go-billy/v5?tab=doc#Filesystem[] легко сохранять все файлы разными способами: упаковав их все в один архив хранить на диске или держать в памяти.

Ещё одна продвинутая возможность -- это тонко настраиваемый HTTP клиент, как например вот этот https://github.com/src-d/go-git/blob/master/_examples/custom_http/main.go[].
Ещё одна продвинутая возможность -- это тонко настраиваемый HTTP клиент, как например вот этот https://github.com/go-git/go-git/blob/master/_examples/custom_http/main.go[].

[source, go]
-----
Expand All @@ -78,8 +77,7 @@ client.InstallProtocol("https", githttp.NewClient(customClient))
r, err := git.Clone(memory.NewStorage(), nil, &git.CloneOptions{URL: url})
-----


==== Дополнительные материалы

Полный разбор возможностей go-git выходит за рамки этой книги.
Если вы хотите получить больше информации о go-git, воспользуйтесь документацией к API https://godoc.org/gopkg.in/src-d/go-git.v4[] и примерами использования https://github.com/src-d/go-git/tree/master/_examples[].
Если вы хотите получить больше информации о go-git, воспользуйтесь документацией к API https://pkg.go.dev/github.com/go-git/go-git/v5[] и примерами использования https://github.com/go-git/go-git/tree/master/_examples[].

0 comments on commit b3d018d

Please sign in to comment.