From 3642936019d66be988f9e71eca65f256ad1c3346 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1ximo=20Cuadros?= Date: Sun, 13 Dec 2015 01:23:46 +0100 Subject: [PATCH 001/143] remove some comments --- blame.go | 8 -------- references.go | 17 ----------------- 2 files changed, 25 deletions(-) diff --git a/blame.go b/blame.go index 66224fe3a..fa25922b6 100644 --- a/blame.go +++ b/blame.go @@ -1,11 +1,3 @@ -// Package blame contains blaming functionality for files in the repo. -// -// Blaming a file is finding what commit was the last to modify each of -// the lines in the file, therefore the output of a blaming operation is -// usualy a slice of commits, one commit per line in the file. -// -// This package also provides a pretty print function to output the -// results of a blame in a similar format to the git-blame command. package git import ( diff --git a/references.go b/references.go index 0c57df939..c69917d23 100644 --- a/references.go +++ b/references.go @@ -1,20 +1,3 @@ -// Package revlist allows to create the revision history of a file, this -// is, the list of commits in the past that affect the file. -// -// The general idea is to traverse the git commit graph backward, -// flattening the graph into a linear history, and skipping commits that -// are irrelevant for the particular file. -// -// There is no single answer for this operation. The git command -// "git-revlist" returns different histories depending on its arguments -// and some internal heuristics. -// -// The current implementation tries to get something similar to what you -// whould get using git-revlist. See the failing tests for some -// insight about how the current implementation and git-revlist differs. -// -// Another way to get the revision history for a file is: -// git log --follow -p -- file package git import ( From bef437a3a8deea4ab2ae7549c6420521eedbb8ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1ximo=20Cuadros?= Date: Mon, 14 Dec 2015 02:08:32 +0100 Subject: [PATCH 002/143] idx writer/reader --- blame.go | 6 +- formats/idxfile/doc.go | 129 ++++++++++++ formats/idxfile/fixtures/git-fixture.idx | Bin 0 -> 1940 bytes formats/idxfile/fixtures/git-fixture.pack | Bin 0 -> 85474 bytes formats/idxfile/reader.go | 235 ++++++++++++++++++++++ formats/idxfile/reader_test.go | 45 +++++ formats/idxfile/writer.go | 129 ++++++++++++ formats/packfile/doc.go | 128 ------------ 8 files changed, 541 insertions(+), 131 deletions(-) create mode 100644 formats/idxfile/doc.go create mode 100644 formats/idxfile/fixtures/git-fixture.idx create mode 100644 formats/idxfile/fixtures/git-fixture.pack create mode 100644 formats/idxfile/reader.go create mode 100644 formats/idxfile/reader_test.go create mode 100644 formats/idxfile/writer.go diff --git a/blame.go b/blame.go index fa25922b6..fe6119247 100644 --- a/blame.go +++ b/blame.go @@ -3,8 +3,8 @@ package git import ( "bytes" "errors" + "strconv" "fmt" - "strconv" "strings" "unicode/utf8" @@ -14,7 +14,7 @@ import ( type Blame struct { Path string - Rev core.Hash + Rev core.Hash Lines []*line } @@ -65,7 +65,7 @@ type Blame struct { func (c *Commit) Blame(path string) (*Blame, error) { b := new(blame) b.fRev = c - b.path = path + b.path = path // get all the file revisions if err := b.fillRevs(); err != nil { diff --git a/formats/idxfile/doc.go b/formats/idxfile/doc.go new file mode 100644 index 000000000..b5392e2d8 --- /dev/null +++ b/formats/idxfile/doc.go @@ -0,0 +1,129 @@ +package idxfile + +// == Original (version 1) pack-*.idx files have the following format: +// +// - The header consists of 256 4-byte network byte order +// integers. N-th entry of this table records the number of +// objects in the corresponding pack, the first byte of whose +// object name is less than or equal to N. This is called the +// 'first-level fan-out' table. +// +// - The header is followed by sorted 24-byte entries, one entry +// per object in the pack. Each entry is: +// +// 4-byte network byte order integer, recording where the +// object is stored in the packfile as the offset from the +// beginning. +// +// 20-byte object name. +// +// - The file is concluded with a trailer: +// +// A copy of the 20-byte SHA1 checksum at the end of +// corresponding packfile. +// +// 20-byte SHA1-checksum of all of the above. +// +// Pack Idx file: +// +// -- +--------------------------------+ +// fanout | fanout[0] = 2 (for example) |-. +// table +--------------------------------+ | +// | fanout[1] | | +// +--------------------------------+ | +// | fanout[2] | | +// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | +// | fanout[255] = total objects |---. +// -- +--------------------------------+ | | +// main | offset | | | +// index | object name 00XXXXXXXXXXXXXXXX | | | +// table +--------------------------------+ | | +// | offset | | | +// | object name 00XXXXXXXXXXXXXXXX | | | +// +--------------------------------+<+ | +// .-| offset | | +// | | object name 01XXXXXXXXXXXXXXXX | | +// | +--------------------------------+ | +// | | offset | | +// | | object name 01XXXXXXXXXXXXXXXX | | +// | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | +// | | offset | | +// | | object name FFXXXXXXXXXXXXXXXX | | +// --| +--------------------------------+<--+ +// trailer | | packfile checksum | +// | +--------------------------------+ +// | | idxfile checksum | +// | +--------------------------------+ +// .-------. +// | +// Pack file entry: <+ +// +// packed object header: +// 1-byte size extension bit (MSB) +// type (next 3 bit) +// size0 (lower 4-bit) +// n-byte sizeN (as long as MSB is set, each 7-bit) +// size0..sizeN form 4+7+7+..+7 bit integer, size0 +// is the least significant part, and sizeN is the +// most significant part. +// packed object data: +// If it is not DELTA, then deflated bytes (the size above +// is the size before compression). +// If it is REF_DELTA, then +// 20-byte base object name SHA1 (the size above is the +// size of the delta data that follows). +// delta data, deflated. +// If it is OFS_DELTA, then +// n-byte offset (see below) interpreted as a negative +// offset from the type-byte of the header of the +// ofs-delta entry (the size above is the size of +// the delta data that follows). +// delta data, deflated. +// +// offset encoding: +// n bytes with MSB set in all but the last one. +// The offset is then the number constructed by +// concatenating the lower 7 bit of each byte, and +// for n >= 2 adding 2^7 + 2^14 + ... + 2^(7*(n-1)) +// to the result. +// +// +// +// == Version 2 pack-*.idx files support packs larger than 4 GiB, and +// have some other reorganizations. They have the format: +// +// - A 4-byte magic number '\377tOc' which is an unreasonable +// fanout[0] value. +// +// - A 4-byte version number (= 2) +// +// - A 256-entry fan-out table just like v1. +// +// - A table of sorted 20-byte SHA1 object names. These are +// packed together without offset values to reduce the cache +// footprint of the binary search for a specific object name. +// +// - A table of 4-byte CRC32 values of the packed object data. +// This is new in v2 so compressed data can be copied directly +// from pack to pack during repacking without undetected +// data corruption. +// +// - A table of 4-byte offset values (in network byte order). +// These are usually 31-bit pack file offsets, but large +// offsets are encoded as an index into the next table with +// the msbit set. +// +// - A table of 8-byte offset entries (empty for pack files less +// than 2 GiB). Pack files are organized with heavily used +// objects toward the front, so most object references should +// not need to refer to this table. +// +// - The same trailer as a v1 pack file: +// +// A copy of the 20-byte SHA1 checksum at the end of +// corresponding packfile. +// +// 20-byte SHA1-checksum of all of the above. +// +// From: +// https://www.kernel.org/pub/software/scm/git/docs/v1.7.5/technical/pack-protocol.txt diff --git a/formats/idxfile/fixtures/git-fixture.idx b/formats/idxfile/fixtures/git-fixture.idx new file mode 100644 index 0000000000000000000000000000000000000000..5c3d21cd3b1ebf2a890c74533cb93134fa243ad1 GIT binary patch literal 1940 zcmexg;-AdGz`z8=v;vGkgXxJuet}_TAe)+)1!x{JW(D$z#cV*eAk0o>%mFly63hwI zPYmV)szb-zKrv*@1LPCJyg)TD%m-v+!~8&T5Eekff+Krs;lSQIEv2#W#L zh~vN#Kyh4H5-5j^rGR`8md1f)fa0WLS)d*mmIJaW!SX=;C|E4>&O?ivI~ZS7Iqi^bMeo5D*)hM1Oy>SI|3M8- z=f;AB>s#)v*}mE0&#_m^K`VVZWC9)q{4#pgEi8P#d;6iaW$J$;vc9HY*d13c=ehT$ zvws}__FUCpQSEhE6SCBu*XFt2oFhItMQeTEt-SMmpAOysU729~bb*rO`nETzEl=wr z6WA?Jrn-q)7%Tdixz024Udz?NbJ3~c%g$|YE!(c8%TK7SIka#_@427dvOywta=Lq5 z`~O+|RISMVG_l8HhxLWV7sD%8{_E>;Jq{(`*80PN#+k*91`9MrLgN&U ztFG70$_%+`^yB}QGEuQP{rBfuSV?Wr46ILPICP8OJ5{>PDIn+CsxPrSo)muVK7A^A zL-j3%CmND0oQH0^ADpx|OXZc+2HA>?Jja^uJ2keF^@lF=uXwM~Ch;vk?`@t~A8(*X z+m{m`Zyb}KyFA}#%lsS3O52{b-d-7Y-fQvZ&XV7?ji1vGH1pS1T#MR~effXzgD|i8 z?KfU{=V?4;;|na{SatQlm(`6D(@))JUUxWRUBV^#iAQ;FUrv!W7f|`)%jY(0PJc-F zhBV%XFE0OI9jY<);OzP5s}`kPDnI+!qVe@|XXi&BW0Tgt{oB)F_drcMra|#{QD)ET zGVwKzNhyx;!b-k>tHk1NI!!T?=Me0w;PbY-$no&TqdWWMo>l$yGV64m^_}g0#Mv1Y z9(D?!Wp7IuEfsR^a4Vj_WBzUbb73u&to!$!zvt%|TdJ?N-rZD_b#c#mKc|K}5+?p< zL^R&kwyQlX6tVR>Way>0{@(Q+VuqLW9ZdE;T*bc2Tju$~A3s&%`+!wLIjP5Ie za&&2C^iLXCJ&H)1;ouEyA#d0Hr=|o m__521v-V9pJOX=m?OwTkWoNib<0RDuE+@h-Pux8>@g@M6xvTO3 literal 0 HcmV?d00001 diff --git a/formats/idxfile/fixtures/git-fixture.pack b/formats/idxfile/fixtures/git-fixture.pack new file mode 100644 index 0000000000000000000000000000000000000000..3e36d57532aabf36047bd41432cd314fadc4b47a GIT binary patch literal 85474 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

L`2N_yqX|VzNImIJgoe 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 literal 0 HcmV?d00001 diff --git a/formats/idxfile/reader.go b/formats/idxfile/reader.go new file mode 100644 index 000000000..150bd5b57 --- /dev/null +++ b/formats/idxfile/reader.go @@ -0,0 +1,235 @@ +package idxfile + +import ( + "bytes" + "encoding/binary" + "errors" + "fmt" + "io" + + "gopkg.in/src-d/go-git.v2/core" +) + +const ( + IdxVersionSupported = 2 +) + +var ( + IdxHeader = []byte{255, 't', 'O', 'c'} + UnsupportedVersionErr = errors.New("Unsuported version") + MalformedIdxFileErr = errors.New("Malformed IDX file") +) + +type Idx struct { + Version uint32 + Fanout [255]uint32 + ObjectCount uint32 + Objects []IdxEntry + PackfileChecksum [20]byte + IdxChecksum [20]byte +} + +type IdxEntry struct { + Hash core.Hash + CRC32 [4]byte + Offset uint64 +} + +type Reader struct { + r io.Reader +} + +func NewReader(r io.Reader) *Reader { + return &Reader{r: r} +} + +func (r *Reader) Read(idx *Idx) (int64, error) { + if err := r.validateHeader(); err != nil { + return -1, err + } + + flow := []func(*Idx) error{ + r.readVersion, + r.readFanout, + r.readObjectNames, + r.readCRC32, + r.readOffsets, + r.readChecksums, + } + + for _, f := range flow { + if err := f(idx); err != nil { + return -1, err + } + } + + if !r.isValid(idx) { + return -1, MalformedIdxFileErr + } + + return 0, nil +} + +func (r *Reader) validateHeader() error { + var header = make([]byte, 4) + if _, err := r.r.Read(header); err != nil { + return err + } + + if !bytes.Equal(header, IdxHeader) { + return MalformedIdxFileErr + } + + return nil +} + +func (r *Reader) readVersion(idx *Idx) error { + version, err := r.readInt32() + if err != nil { + return err + } + + if version > IdxVersionSupported { + return UnsupportedVersionErr + } + + idx.Version = version + + return nil +} + +func (r *Reader) readFanout(idx *Idx) error { + for i := 0; i < 255; i++ { + var err error + idx.Fanout[i], err = r.readInt32() + if err != nil { + return err + } + } + + var err error + idx.ObjectCount, err = r.readInt32() + if err != nil { + return err + } + + return nil +} + +func (r *Reader) readObjectNames(idx *Idx) error { + count := int(idx.ObjectCount) + for i := 0; i < count; i++ { + var ref core.Hash + if _, err := r.r.Read(ref[:]); err != nil { + return err + } + + idx.Objects = append(idx.Objects, IdxEntry{Hash: ref}) + } + + return nil +} + +func (r *Reader) readCRC32(idx *Idx) error { + count := int(idx.ObjectCount) + for i := 0; i < count; i++ { + if _, err := r.r.Read(idx.Objects[i].CRC32[:]); err != nil { + return err + } + } + + return nil +} + +func (r *Reader) readOffsets(idx *Idx) error { + count := int(idx.ObjectCount) + for i := 0; i < count; i++ { + offset, err := r.readInt32() + if err != nil { + return err + } + + idx.Objects[i].Offset = uint64(offset) + } + + return nil +} + +func (r *Reader) read64bitsOffsets(idx *Idx) error { + count := int(idx.ObjectCount) + for i := 0; i < count; i++ { + offset, err := r.readInt64() + if err != nil { + return err + } + + if offset != 0 { + idx.Objects[i].Offset = offset + } + + fmt.Println(uint64(offset)) + } + + return nil +} + +func (r *Reader) readChecksums(idx *Idx) error { + if _, err := r.r.Read(idx.PackfileChecksum[:]); err != nil { + return err + } + + if _, err := r.r.Read(idx.IdxChecksum[:]); err != nil { + return err + } + + return nil +} + +func (r *Reader) isValid(idx *Idx) bool { + fanout := calculateFanout(idx) + for k, c := range idx.Fanout { + if fanout[k] != c { + return false + } + } + + return true +} + +func (r *Reader) readInt32() (uint32, error) { + var value uint32 + if err := binary.Read(r.r, binary.BigEndian, &value); err != nil { + return 0, err + } + + return value, nil +} + +func (r *Reader) readInt64() (uint64, error) { + var value uint64 + if err := binary.Read(r.r, binary.BigEndian, &value); err != nil { + return 0, err + } + + return value, nil +} + +func calculateFanout(idx *Idx) [255]uint32 { + fanout := [255]uint32{} + var c uint32 + for _, e := range idx.Objects { + c++ + fanout[e.Hash[0]] = c + } + + var i uint32 + for k, c := range fanout { + if c != 0 { + i = c + } + + fanout[k] = i + } + + return fanout +} diff --git a/formats/idxfile/reader_test.go b/formats/idxfile/reader_test.go new file mode 100644 index 000000000..0a73352df --- /dev/null +++ b/formats/idxfile/reader_test.go @@ -0,0 +1,45 @@ +package idxfile + +import ( + "bytes" + "fmt" + "os" + "testing" + + . "gopkg.in/check.v1" +) + +func Test(t *testing.T) { TestingT(t) } + +type ReaderSuite struct{} + +var _ = Suite(&ReaderSuite{}) + +func (s *ReaderSuite) TestReadPackfile(c *C) { + f, err := os.Open("fixtures/git-fixture.idx") + c.Assert(err, IsNil) + + idx := &Idx{} + + r := NewReader(f) + l, err := r.Read(idx) + c.Assert(err, IsNil) + c.Assert(l, Equals, int64(0)) + + c.Assert(int(idx.ObjectCount), Equals, 31) + c.Assert(idx.Objects, HasLen, 31) + c.Assert(idx.Objects[0].Hash.String(), Equals, "1669dce138d9b841a518c64b10914d88f5e488ea") + c.Assert(idx.Objects[0].Offset, Equals, uint64(615)) + + c.Assert(fmt.Sprintf("%x", idx.IdxChecksum), Equals, "bba9b7a9895724819225a044c857d391bb9d61d9") + c.Assert(fmt.Sprintf("%x", idx.PackfileChecksum), Equals, "54bb61360ab2dad1a3e344a8cd3f82b848518cba") + + idx.IdxChecksum = [20]byte{} + b := bytes.NewBuffer(nil) + w := NewWriter(b) + size, err := w.Write(idx) + c.Assert(err, IsNil) + c.Assert(size, Equals, 1940) + + c.Assert(fmt.Sprintf("%x", idx.IdxChecksum), Equals, "bba9b7a9895724819225a044c857d391bb9d61d9") +} diff --git a/formats/idxfile/writer.go b/formats/idxfile/writer.go new file mode 100644 index 000000000..86f87aecb --- /dev/null +++ b/formats/idxfile/writer.go @@ -0,0 +1,129 @@ +package idxfile + +import ( + "crypto/sha1" + "encoding/binary" + "hash" + "io" +) + +type Writer struct { + w io.Writer + h hash.Hash +} + +func NewWriter(w io.Writer) *Writer { + h := sha1.New() + + return &Writer{ + w: io.MultiWriter(w, h), + h: h, + } +} + +func (w *Writer) Write(idx *Idx) (int, error) { + flow := []func(*Idx) (int, error){ + w.writeHeader, + w.writeFanout, + w.writeObjectsNames, + w.writeCRC32, + w.writeOffsets, + w.writeChecksums, + } + + size := 0 + for _, f := range flow { + i, err := f(idx) + size += i + + if err != nil { + return size, err + } + } + + return size, nil +} + +func (w *Writer) writeHeader(idx *Idx) (int, error) { + count, err := w.w.Write(IdxHeader) + if err != nil { + return count, err + } + + return count + 4, w.writeInt32(idx.Version) +} + +func (w *Writer) writeFanout(idx *Idx) (int, error) { + fanout := calculateFanout(idx) + for _, c := range fanout { + if err := w.writeInt32(c); err != nil { + return 0, err + } + } + + if err := w.writeInt32(uint32(len(idx.Objects))); err != nil { + return 0, err + } + + return 1024, nil +} + +func (w *Writer) writeObjectsNames(idx *Idx) (int, error) { + size := 0 + for _, e := range idx.Objects { + i, err := w.w.Write(e.Hash[:]) + size += i + + if err != nil { + return size, err + } + } + + return size, nil +} + +func (w *Writer) writeCRC32(idx *Idx) (int, error) { + size := 0 + for _, e := range idx.Objects { + i, err := w.w.Write(e.CRC32[:]) + size += i + + if err != nil { + return size, err + } + } + + return size, nil +} + +func (w *Writer) writeOffsets(idx *Idx) (int, error) { + size := 0 + for _, e := range idx.Objects { + if err := w.writeInt32(uint32(e.Offset)); err != nil { + return size, err + } + + size += 4 + + } + + return size, nil +} + +func (w *Writer) writeChecksums(idx *Idx) (int, error) { + if _, err := w.w.Write(idx.PackfileChecksum[:]); err != nil { + return 0, err + } + + copy(idx.IdxChecksum[:], w.h.Sum(nil)[:20]) + if _, err := w.w.Write(idx.IdxChecksum[:]); err != nil { + return 0, err + } + + return 40, nil + +} + +func (w *Writer) writeInt32(value uint32) error { + return binary.Write(w.w, binary.BigEndian, value) +} diff --git a/formats/packfile/doc.go b/formats/packfile/doc.go index cb3f542a2..f5f57dcea 100644 --- a/formats/packfile/doc.go +++ b/formats/packfile/doc.go @@ -1,8 +1,5 @@ package packfile -// GIT pack format -// =============== -// // == pack-*.pack files have the following format: // // - A header appears at the beginning and consists of the following: @@ -36,130 +33,5 @@ package packfile // // - The trailer records 20-byte SHA1 checksum of all of the above. // -// == Original (version 1) pack-*.idx files have the following format: -// -// - The header consists of 256 4-byte network byte order -// integers. N-th entry of this table records the number of -// objects in the corresponding pack, the first byte of whose -// object name is less than or equal to N. This is called the -// 'first-level fan-out' table. -// -// - The header is followed by sorted 24-byte entries, one entry -// per object in the pack. Each entry is: -// -// 4-byte network byte order integer, recording where the -// object is stored in the packfile as the offset from the -// beginning. -// -// 20-byte object name. -// -// - The file is concluded with a trailer: -// -// A copy of the 20-byte SHA1 checksum at the end of -// corresponding packfile. -// -// 20-byte SHA1-checksum of all of the above. -// -// Pack Idx file: -// -// -- +--------------------------------+ -// fanout | fanout[0] = 2 (for example) |-. -// table +--------------------------------+ | -// | fanout[1] | | -// +--------------------------------+ | -// | fanout[2] | | -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | -// | fanout[255] = total objects |---. -// -- +--------------------------------+ | | -// main | offset | | | -// index | object name 00XXXXXXXXXXXXXXXX | | | -// table +--------------------------------+ | | -// | offset | | | -// | object name 00XXXXXXXXXXXXXXXX | | | -// +--------------------------------+<+ | -// .-| offset | | -// | | object name 01XXXXXXXXXXXXXXXX | | -// | +--------------------------------+ | -// | | offset | | -// | | object name 01XXXXXXXXXXXXXXXX | | -// | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | -// | | offset | | -// | | object name FFXXXXXXXXXXXXXXXX | | -// --| +--------------------------------+<--+ -// trailer | | packfile checksum | -// | +--------------------------------+ -// | | idxfile checksum | -// | +--------------------------------+ -// .-------. -// | -// Pack file entry: <+ -// -// packed object header: -// 1-byte size extension bit (MSB) -// type (next 3 bit) -// size0 (lower 4-bit) -// n-byte sizeN (as long as MSB is set, each 7-bit) -// size0..sizeN form 4+7+7+..+7 bit integer, size0 -// is the least significant part, and sizeN is the -// most significant part. -// packed object data: -// If it is not DELTA, then deflated bytes (the size above -// is the size before compression). -// If it is REF_DELTA, then -// 20-byte base object name SHA1 (the size above is the -// size of the delta data that follows). -// delta data, deflated. -// If it is OFS_DELTA, then -// n-byte offset (see below) interpreted as a negative -// offset from the type-byte of the header of the -// ofs-delta entry (the size above is the size of -// the delta data that follows). -// delta data, deflated. -// -// offset encoding: -// n bytes with MSB set in all but the last one. -// The offset is then the number constructed by -// concatenating the lower 7 bit of each byte, and -// for n >= 2 adding 2^7 + 2^14 + ... + 2^(7*(n-1)) -// to the result. -// -// -// -// == Version 2 pack-*.idx files support packs larger than 4 GiB, and -// have some other reorganizations. They have the format: -// -// - A 4-byte magic number '\377tOc' which is an unreasonable -// fanout[0] value. -// -// - A 4-byte version number (= 2) -// -// - A 256-entry fan-out table just like v1. -// -// - A table of sorted 20-byte SHA1 object names. These are -// packed together without offset values to reduce the cache -// footprint of the binary search for a specific object name. -// -// - A table of 4-byte CRC32 values of the packed object data. -// This is new in v2 so compressed data can be copied directly -// from pack to pack during repacking without undetected -// data corruption. -// -// - A table of 4-byte offset values (in network byte order). -// These are usually 31-bit pack file offsets, but large -// offsets are encoded as an index into the next table with -// the msbit set. -// -// - A table of 8-byte offset entries (empty for pack files less -// than 2 GiB). Pack files are organized with heavily used -// objects toward the front, so most object references should -// not need to refer to this table. -// -// - The same trailer as a v1 pack file: -// -// A copy of the 20-byte SHA1 checksum at the end of -// corresponding packfile. -// -// 20-byte SHA1-checksum of all of the above. -// // From: // https://www.kernel.org/pub/software/scm/git/docs/v1.7.5/technical/pack-protocol.txt From b32241e56660f86cf539ed018820a57748531eb6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Thu, 12 May 2016 10:44:06 +0200 Subject: [PATCH 003/143] Shut up ssh tests, they are annoying --- clients/ssh/git_upload_pack_test.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/clients/ssh/git_upload_pack_test.go b/clients/ssh/git_upload_pack_test.go index 4b50c4c82..07aa816ef 100644 --- a/clients/ssh/git_upload_pack_test.go +++ b/clients/ssh/git_upload_pack_test.go @@ -1,3 +1,5 @@ +// +build ssh + package ssh import ( From ef1878b80ae71e7b719c79c173aa38d2e270321f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Mon, 23 May 2016 19:16:41 +0200 Subject: [PATCH 004/143] Add file scheme test to clients --- clients/common_test.go | 34 ++++++- formats/gitdir/fixtures/spinnaker-gc.tgz | Bin 0 -> 1316901 bytes utils/tgz/tgz.go | 121 +++++++++++++++++++++++ 3 files changed, 151 insertions(+), 4 deletions(-) create mode 100644 formats/gitdir/fixtures/spinnaker-gc.tgz create mode 100644 utils/tgz/tgz.go diff --git a/clients/common_test.go b/clients/common_test.go index 88f66abbc..b53d8f2d0 100644 --- a/clients/common_test.go +++ b/clients/common_test.go @@ -3,18 +3,41 @@ package clients import ( "fmt" "io" + "os" "testing" - . "gopkg.in/check.v1" "gopkg.in/src-d/go-git.v3/clients/common" + "gopkg.in/src-d/go-git.v3/utils/tgz" + + . "gopkg.in/check.v1" ) func Test(t *testing.T) { TestingT(t) } -type SuiteCommon struct{} +type SuiteCommon struct { + dirRemotePath string +} var _ = Suite(&SuiteCommon{}) +func (s *SuiteCommon) SetUpSuite(c *C) { + file, err := os.Open("../formats/gitdir/fixtures/spinnaker-gc.tgz") + c.Assert(err, IsNil) + + defer func() { + err := file.Close() + c.Assert(err, IsNil) + }() + + s.dirRemotePath, err = tgz.Extract(file) + c.Assert(err, IsNil) +} + +func (s *SuiteCommon) TearDownSuite(c *C) { + err := os.RemoveAll(s.dirRemotePath) + c.Assert(err, IsNil) +} + func (s *SuiteCommon) TestNewGitUploadPackService(c *C) { var tests = [...]struct { input string @@ -26,12 +49,15 @@ func (s *SuiteCommon) TestNewGitUploadPackService(c *C) { {"http://github.com/src-d/go-git", false, "*http.GitUploadPackService"}, {"https://github.com/src-d/go-git", false, "*http.GitUploadPackService"}, {"ssh://github.com/src-d/go-git", false, "*ssh.GitUploadPackService"}, + {"file://" + s.dirRemotePath, false, "*dir.GitUploadPackService"}, } for i, t := range tests { output, err := NewGitUploadPackService(t.input) - c.Assert(err != nil, Equals, t.err, Commentf("%d) %q: wrong error value", i, t.input)) - c.Assert(typeAsString(output), Equals, t.expected, Commentf("%d) %q: wrong type", i, t.input)) + c.Assert(err != nil, Equals, t.err, + Commentf("%d) %q: wrong error value (was: %s)", i, t.input, err)) + c.Assert(typeAsString(output), Equals, t.expected, + Commentf("%d) %q: wrong type", i, t.input)) } } diff --git a/formats/gitdir/fixtures/spinnaker-gc.tgz b/formats/gitdir/fixtures/spinnaker-gc.tgz new file mode 100644 index 0000000000000000000000000000000000000000..9b1fc475a33ddaaa462fbf9de2bd47088555ff9d GIT binary patch literal 1316901 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ªErh!QvigGo$J_j2m)9rG-`8;{N3*{Pu(RR?K*6cD;pZbugLuKjCR{;n4$Fr zVOF=@jW3+aTnf`#4nh4x!TB46kiIv-pyeC%&SC_|Hu8wnxoP?c401o=-rO-tDI0ji z9;E3YOqUc<1bgxIkCgqrPl-ME`mIR0C^1}+^vVT1vI;yGDzG385w1CN#z2_#aM3J= z4v;qRXi;LZWq1GjmcUM~6SPz!7Xl7gUU@L`ROXyrU-e$w2Lx^_)pL#G9WOiA)0vXAKGbb#$fxug0;Q%dk4XcT-p6xeB zVxV$n3Pv-K2H4{!<${HW$%b$Er7aw3$r0>k!)oM+fQ(N-J7GH<9nO<1yV%jV$>p{)%p=`OfQ>_K>2;bho)~&fh zCH}Nnd$A`*xFE`SU2&8 z)i=FHdYXqgA8iH1aDdlIsT+cMUNZ2#K+Z(usE*c<+;_TuJoqT%xmJ+POaXSQg+n-2 zFgdn6?quTW<1-l8K2%?oDRmAoWYMcOakVy^Y){&b9_c?!O)>wga{Tj-l8b&_F-BT~ zCzvN?6mx63q2h3Dj;sMQWNH9Bf1^a@pB`(BW|qSFo5~QyoTlJaDY~1x;fLCC#Fa z3{kBedSBiw9>dh!50}S7aNiuu@yVQXvUE?J-$DGg>np(N^4IeAQXXlaB>eCV^w{NP z$a-GNyEi$O*&#)TZmNO)(70OQZMj=&W3aAVy#E*iJ&1tD0bA_`gdewbO#89(xT&9V zM$olKL>C(N`kfv@(yui%GiZ*Q0|jbAErA4NuhRxKNScQY9_k6kZF*@afOMN3$%*;| zROJaGS4CCpbvB+B#Xk`$z$W9eSseNjMUqOcQ?v9H39uGKnVJS>YXVEji;Aw%XZb}t zEHb>aTD2K)tb!b};ZLn!TQg$Uv2ejp_sA-%`0r1#I6O)2!e7&@Bp=%XokmY+QAIC7 zwO#!;XNts$N?q8zCqXn&w;Tik)ew0%g=~E@C^Ie^Hu`l_F(}M68l~BKBMd82(@i_g zz|z0bqQ%YosSC(5%^t$qDmk#^2NT8)%=e(L2s0QJH-t|77?v$oMaDsu)}~b(9JPj# zR)f1;K=t;oV*g=kNa{qS^#6E@r)2&KU-Y`#ka!yUDe5~8p#Y$Du6Kn?qcS>Cp9@q0 zIvO#k8L;}=Q*PUgP#?&m9-}Lo0pwD9JSSKI99i2Tq<~AyR>6A17$ffC;au~m$Q>zb z)G)zJhnP8u!ZR~~xc!w@gV<>FC5Zv|QDfe?a%@WkPiHb{)ng>$`L>SLP4E0!Ep)lQ zcR`)%xs94Gb=;(T#?l+ik(&UN8G;O_Q5C$(1m;!j&sLERNV9iN{@5|CcdyQ3EPYdx z;P!a^jmnzP>F0{9&>8DJLh%>CMlbx6ugOr{f62Mb4~YKZQ;&xxPs|-NCfHLcIYoh% z&|0T(^9tPAnrd--#oZLCB!VaSm1{UH?8lxo*pEAk2zMel%usSNHQYgM;jRB%#XxEZ zMbz$7xVVeJJqAJ{Ic)f{c-*d~gN5g;dr|e^OX%%UTL6q}MxNR*Ss zQ5Yw8=R#=ma3ApCygX@_G<_G?L&T8e)BMgb4RU^C%alnbzjn;FoNh{*+5Lks!Xt z@Ha^!JCxzwuof!ePGJhKsO9U0`pSsdxzjnxT$fdtC3>Ll?PCj_l;uQ(l0_^NWHHXO zCYAu*2L#tiVU+(jW~F=&n2R+_s>yZUGf#mUjMXA#myRvUnRJ_%Q3)ff^=+|2Uv&f zzLzVUOBS3rOiQmwX*#R4Sy{SaC8Y(rV~MYD1#&S{U%d=6vB$dElwC0fc&?#e=)x_> z+lQ_Xwq8#4=Zk_8-=GIwWoYY>hlIU5jpAxK!-Iz$g#%IIzLHxhA??? z@dDpv>%nOgq*wGHS#Hler4umD=0Gs87$rZp6S&Joq5bqLq*)gZaPP)QUSZR;Ay@^C zYNg<8_G4e8<8sUqHab^ppKH9o|GSI+ldhb=kdR{e!_WvNc$ZJf-RMjA;bV4c9md3+ zXvujXTo=5*ZsW3M_H}~Djhu|PH1eg^)VW;4pqH)UYH+hAtFn6nN`IQkKii$jQ8Us`?DXBlP8|R&&z-18PwKc05b|fm-G%x-f|OKz!XrK-~m2SY{dX z+#Sy8JwwjGWq4jqgf^xyiSd(Oq0~-UMC<~4gv!S}V~}`3EYwVczVKGD#y^QmhUi&$ zOQEuX5_2$tNuuVa*qju^fn+>q{WVQqTU309;kM z)d^PQq)7YuC_APgAzn}2PG(ZO^U=HkomEA3eo~9<=>MyefNklClS>k0Mt&Mswmi*Q zM;jive=@k8c;w@EHD$(Jqk>qwMJik}`;6!vYb7kNRXR#_s3Vy%#Ll=mtg-~=4^HHU zioAg^8n;XdsWX?bL<%Ak6*%AJagpu;g`}i!I%`qFjxgkB(Yr-D5KjK$)`WxiLxyM( zbCc}~$@3>HgkJnX10JKtNBX$cn3aTWm}np_J5Aa z@xuf^J3?K@Q_kp>2te5T|B1Bo^FTTlV;(cxlehOo5=P`AR&Cz)+-@-beN$|UI5t#J zR!1F2&4h{9NYz9uw2oAI+={|H#c7=)xQ1w+80M|1UC~{X+brtI_3~hiUO?Wu#^- zWtPSf@4;DTox?f~R6JIhr?e{s#oblhG)gMlO3d1B`F@5Quh0Ao@9W=QTD~tj_CfY( z{Z;Un>`cMC>_1^f$^6Xf20wd804-Y_)+G9c<(&+31QMVAK^J!&mc~4OfrE1caE*QL zevXy}DJ#knVN77b;?YVc_Ph>)rOY_VN}eMnapMe;T?fEwxRU|KrONc4@utJXylGPlexY%!SW)EW6F*#N!9~f|em1}F# zKBaAXL=0kGDyUT)purqGov${5d0Tepl%D|^=~6v;Xj(AujdsRuZ9zTh$Rb~ge9D=4 zEo{!3NGUyS$};zF(PQ9VZl=5O*~D*(mfG?}FSh0zg0jx}-(bl4e;tMGcT{jMRYwQ- zFo;4J-UqA@ZCS&7>tW`h?UqSDyq)#mbxT*#5Cy7P9EA-KkQ)7!;z(fribuVLd%BP? z=phxhjV@tj)Tz_LvAkA8p2b|c71*bo<>;53&zfW` z{mm~?r%T~mUwcTy90GIy8)ch_0Q%pdjx~4~9d~C;FhpVFU)4IL^M9@Jv&E^?xA71^ z0I$#N*tJh5<2n}xnBRtGqXwcPjV8pws&vH3N(-69#m|0msrd)dnsG%-WOCqpW_3dT z3LH5gM5bYeSQHg7z(Kz67Yk>Vj9IzhU7n&2gC^ z{CEv~t8xu5?mboM%WoWkIaY0G%sGc@lMGzgg>a9gs_>1IRCZ1OnHr3mk`!V<5Pf!! zScOg)^W~3_UzB;SCTmMXZ|#a_M)UqiQN-(Qcw_g<;z%PnB&UcIMx|i1?^BQHE8-D( zh(TQ~iXgj{32cGHu$Cu%t9(F;!x1eF?AxK&+Dn3x6cv$}~PZ9B-V zA8?@q%T!D+CYqJTLR*^GdmN^bf|Pq@aYrIlmvfewE|s0m@-{KJg$)fFcDIsZ$VcHt z@W>Q&l|&@j1E(|3!UtJ54MbS|GR8E4PGS8o=*jZ}1<=5_pPH1Nu3vkwy7N%6mqb(fO5f_*1WIW=1$0&{TtV^DK|k-*m7w+H^4Q@l48J+^x>7 z_lcqE6Hp)7m`cN2cn(mVEVv;pOcDNQ4olsZ`Zn^SGE_;nN`sFF~z;Ir#eMDVV00%%I^*c?%XCjZ1t< zPRwi1a`3lK6K0kC_B161K`LB5;llSY)PQJrs0@yyP;D;A2c;|y0nn^q4MRj9sXX3< zuP3%-aEzD~+K3aEv|NCCpxb$~e)LR$n?Q#M!P0#e+h&`?d}knSqpeBFCC> ze1#zohvyH!CZ|jh1=8?3FGl%aGuXQ%7*Q-9oiB4C1LgT5;&?^rm>|7(G3#1O$Drre z$^4hC-S{4xSB~WjXj?;_9RAfl9a&DuXNNdN?KP9D>~C8H+YQD6a~e=g-)gTbyJOLy z#WNt^l+cPp1Sy?Tp>mFy5$eGS=Dx4g-lx#s^JM;-+U+ZSU9Y1lHa#0>j_jXWUL1qm zf4gK~P_g)V<4vhYlmsB0*){@|lQw%#)WtFq+Oi*>^H8k67)h>qxN>RYA!aeX?Pyf2 zjgl-gruC1{BHq?8m7C|@+d0UqA~1+#fUK?S&y@8z_LZxidCHqrFLhm^${UiMJN_`r z_(y6B1}PasUuTuwlLN&%eRlD|6Tsw1Vhxk6Tskjg2x5 zknd&>H?0K}!%GdPJ3xQK><7Y*C)Y~^r){m*Ba&L=W^5I7z z4X|&O--d2;xC7@ln%1oTEjaa`CHr6F11c|!fT=Y>#ZZdY4V$X;tw-uj2u6!^IZBJdy&HY`=N4q9`$Nq$P^I z!j_=X(wyc^V`#|y7}dxesjjg@c=8fkqRR@|VVz&Nti0=cZg=>hgy_4L2HuBe_o7&y$dO<-e}^3zpNx zoY5)jGa#4a+N3zZ}-n|pzgYTu_bZ6YTim`y94u7>KB8nno6nzu}UDPt0Y?*_RfVK7SJKj_6OHvwh}753 ztrCyzvgnEXyoc17GX_@Iue7Uxc3 z1QsR4iA0zVb8iTssW$vW#uu#ANtkY@f7vZyjLnsg({{JSMAqDG708d>W-}W2dWfP$ z*`bCDkmq6Mvf>EMCIlO`-Gb4<=61KL+j_B5pzzXwP~9}UuMSLVlr3@{@~t`E%x#u8 zA9-tLdW$iGSya_q>4(%^|D11Ne)5%jmNFt*z1Q>S&tzK!hR)fAk<=hKWY}<&PCTwG z7;!agcU(Dtg>VIP046(ZH7HiGD+D|8eWY;ZD!${XFnCZT{iJj=QWpOrA;@f(>>OHH zyr?e(L8QJzv}y%QPOo?%v5=RiTrb*a{jZv`jBJdk6bekV#0e5Kva0xDqa9_!!-8Z9 zXif77_FBhm{*cONI3}^DCu0Fb)CpQdkwsRLGd{+$BmczAMzNdn%tj zf2Vz^^K)==qplbMaCloraf-6bcUH3R$PN>Cd;3iv1Kt=`{fgeMTrL+}U^QGnmI1wQ z_utxs$otKT5b^(IbpO}22h-a9o*)EpKUl0Kmku7}_?7&9n7t=q2-)6hiHmU=q<*Bg%hFPjbi zFPnW{E1JR!JJC(u<77&I___2DzPG+k^#;=4%Yn_?T^@{4x%dlla|a<=#2|R?H$F*v z;XH7@3V~#i&3*7Pl;DuAxQk{5xd)SGtfFLsaabcR_;vF6``pLvFl^`;9uk%)^3)>` zrqtxP0zYDMnE0RjDqRPEGCdc!N6Q@`*VFq_?#Ap1A6>^?8t?4VHeJjd3c6=}QInwA z@o2jj5Bd^j*%?!HKvbDQ+ z_ICi=4L@?T`YsxzW5A8dvq`2>Khq&^HSWHh#vV9jN0i~uG-dREce4;gJ#!6dd-r@z z5d=}R=9OYc_DR;PIvucEc@fuuXT3c9+ zZqH?@z>gx*VBRK42{cA{Q6iDm#55B`lu$1BE1X~Qy8FngL^wNX`F!_3=hsZ) zkz3ZW(DA&o64)T*IL)fyJTgb(zMCYts&w2M&$iZ|z078od8G7AMxTI8%Nyx{TctR7 zCmXG95F+0|UGo$vvj2De{U@~wdgd5PR4@JSI%lMfXP9ZvF#<(&V4c7PJ1qD`9SPgc-Kj*r$YFXHyHdL!`gw<{t zQyFW##1B7U=GEyI53>9eqy=Hno;w?dzbWC#s+k71mQg8toPBI>cDe$!CopV~W5tHFt0cJM8VSKa(K^0M}Nic{G*%Ln1*t-VVRV z#rLx7Xx$9wxYykBp;a5uszPwEY;m&4AuA~~Q5B+I_|xjMMbS{}>{ZF|l8W^7;+3Z3 zMH8j5smZdXGw97p?x|rosRCY=xguCgE?6Azgl8Pz~`Y2A>C9Xllv%Ux6!b zUJ~2^zD$X1iKo#RS&m_SvZdk_h1reHY3x+2Yw(uYs!Ai*X8jCe)u?{BlO1@W5NvUeQRO6=!o%|2KT{ zFC2jWuf3YPDl8ZV#%VD=`g8>*<-W^q$CtaVJ+}}&jr}t~PGOm96(bv^k3@j!rQg4W z5owm-Bpy<=W^~x(KOHX)1Xe(;pd>e{BRH+fHPV+UT{nSl<9i`UPhh$aMtZC3X&@?- zeyM^H&&wgDsm#58th(Ej0)uzB!#uLI6YgvC!DzkCd@r<>VoJ~J^qH59v7-xK_19TP z((>awz~h*c;o_KE=&&X+7R)sauE+-ZLj|{3dpLYOZCuhM8?Jb3JQ(t8t0;z$ahj zbUg6g-UY9Zx;ZU96;yT2uo zlhJ;UqhTY#X2NHu;kjL)>Nbjk+*!q%Mx>Jgei z&I>64^Z$3?5oNiz?sz4Jh(I{DjGSD~($u?7{9*?$#?w>r7O1iCwL3i{-9Xr+Q>@ri zEKx-2b7xN6q!N3M9*GkZ{Gub8aRka(1CypQao=pteHr?)si89K!X6zX_&MT0PjA$G zem?J10xrN+^WpcJ1a`4Jap!GN2A74i?EiHKYi#-lM>8))v@E_C;6!&b=;k{+4Zds69p_YE14$O4e zAgS=CEjAv^yWlIwS4si*t4GDd9qpL@4|-@uqDcOd3v_Hm&i>%2czKG!g-C-;4QncW;@ncd zMk!#jd76a+ODZ*)!(?(dx*F7Pb+IM=!|=3jCW)n3tb>%sQ)*JuBcQ^CgyN%O9)?i) zJJs!DXt@qJ`%ASupfo@?$DglZwz*vbum-p{0$9XRtC&D+kSUd}oX;hrpIDV!Kz zFhIs{tHw0;ONl|rCkTHvZQDp36Oi&&l+w!<-Bg}_2kqXy0{#O3`EvQGc1ot6=9~Gd zbN{sGg#Gi!riWW{(pP3MCG|BR2Hx$FyAxWGc&ev{kUT4NPGdsn@m-^AJRD~nY^#$v z1?j{JwM$n;2v8E0S0|#z@s#SOpT-y`uH=uvV}H)2ED>tUjO+kF>60W3zQTDP?Qs-@ zOGG!!SQe(FNjDqrl$3X)jPNjbrDp5NzUJ&iPZ{1@)aXs) z_DM^mduTXWfxj{0T5gPCh}(#!u&Etxi6MQzQ&(K^8RFsw9)yMikZbI-*k#_8gmnmn zN3vbft5Nj+6_5Ybw40Ls#+CR+_BilYWHV3035H98_l2094(pQDVska-%y;udkcR`M zUE8!g#F(;z5U!qpkj)jG-dA3>Ba)LGi^#-GcT_$rS9V)yPLV<%A|495v7i-Fk)$-M z#UR_LI34QDwRYQTDwG3qjoHfv!QJlb_}y>!Z7_1VE3Z6ZkR=0Md7tLt(}}2{l$3)Q zckg9O@WqmnbVAe#y9}*Wb?|GF;`OnI18G1hfHIYUpCVHift=;A@|YV@T%&VUC)x$l zCYAzQ;LmPrep+b5Z6j2FuyxUF{0>Lq#Eqj4aw*jpg`NO6g&qTq*W@w2|%MRvzze4Bn%4M16p(o4PRPaTIxwTT#(-j$X z-Dyw3ZImYs&7La>Eki)4b>zc`1yF*ET3Nju(Vd5Qs z!H~IauH=qg=JQ!8D}KY*iu2O|wx;};cqN!cq$>Q;(Pco9Aoa~vMd zZ{VB-dY}RCo(ez)MpLe;!NKInyZ+XEqU<8W)U`%67!ObR1+OrC^d2X~kRB*=rNaD- z*|*CE^k$)eLg~j#Et`6Co2q_6v$Cwq+m`d+Cw|L8&l_Yb2Uw9rFP-q9y8KRz- zJr|#7r5Aq{1HhhO#@+i(dL4aW!?|!E@rpQScGeGJqGT0+Gk(FYzqsFe{9|K3m-bW}akxd)c)HUT zIXC*;tw?gg_VdLpmKWTMlzw2!BNo=b6-d)p+8)oLY zWl&*cZ=G8-(lKc*X*L!vkd?YN!oU7tu-MZwm>%@-BF$x)*Bl+>a_kNhYue?ldKZp82qI-ZVSR8qkabV=g z*z;Z-D1aJ|j;mmMdm`Dld>8mp!grW1(q}7t6b9CUuSdGX#mXGq7x>B?E3e<1L*%x#O+c z`nLp!1cgzzArN!eE*|CMWN<>0aZhlW=3Y4n&OqxG$_@5*8=n`lJy~pwQHpeV-?hYd z+Y01`Q{<+xF=KheQUKgRbqxzIU+i48F9QzKBVj|#?Y1&MAGeMTp&omlWbRVkXfarV zkOR;0uB2SMQBfj-I4dWs8mCa?g3zQYH}QZ&c*yZVw z4JL=lbehq4usd*x6gp%CzC4v-6ghg?v|1-e$!x^N3U@bC=vy3huNY!U<-%f zTT<{-^W!5ZB{<+2xaL`1K(gvYbJta#`rx(VeH|}?z`?uHPfS3KEcM%&d+H0w9Q^G| zyj#C0kyV-iFQ^r<5ec-Z;CpFPz$ca2fB$Tp;0_R*+wcpcOdNP{8az>VDF#Zh(mzmz zN;60mazVXljG?NOeNEgcP}G7ZT%<-@q+CMTJjc$;wH!ky%4I4y3`=74m>$e#B_+8M56TxVL@{lk=O^Y!MTUYN_4 z_(Uan=k~N1B>d>F0s6WzQ)D`$QJ;ChBS*=jA*y%g82b?W)|H2V|?Ha<}p4}uix zuX;qzDu^F`=wAfpKto*ADH4R>d7L$Z=$T;W!i-u=*kU2s`B?=M@)$pldouIh!-j;- zglwYYT0EblsI8FZPzhzZpm+s2>0BYzPgu90!&qR1mA?SeDsGXoOtDn%ypcGMQN=nT zlYuqlA*-wgF}+6)n>+M;Lx`$N+Y}<^M3ZMP$a$}-{VPlwEu^;43?>U)7AbMT0zBZ8 zLJrpYZV-MIOmGG_ke>}0e58&veigoMjdV=QdhT+0!?Y{C)@Xp9PLM9a=-2`q94O0< zm>Sd<>nJE}1*m;#t`0UQy2u;46|4u{MFA`IT-9qT`OhSB!4EjADvlOCKWF?rNzQd>YJG6vVW@n7~3zjKiALbX_NX!sdUZxfyK4OsMvFYNH*mKMNww{ z;;nb-l&8jQdSES5CEn-x%}nMT8AT*YqqI5F;le(|uxpd1&@rI&7Lr!dQgYAGHo-*R zxD1Sz8~~&_cxFp?f&QoN&UybQz4nV{!NbUO8vtA`cySxlVqH7Rb)3uAHe3-7^^$E!s}B@Xz|0`}a;*bL zUlj8JqEKgN)a^go~ z-^#2|Ouj>@@P+}aPtbG3xMczo+S*_(ZDb%00Io%!PZpL40j(xR&5)$bjXc?{@Hq+Y1HM3Iv;oIwdz&4(R0wu(;-gX!i1sHs4Xo1(~i+9XbBXo+f~VU4Mi*X%~&- z9}$Hfh9LI|sabN_#pphj0^WP{lzzpuQL5U}%1WAblQBPhLrWk~fB`);%NPu+k^b9N{ zNdRLfEFUt1wMNM@fOXZgO+uBJvt(Sxxb#&r$(;ixsLjMyMip?z9m3BQ%L_`cqp_-6 zz-$+c^EJjnw5585-Vmkb{ASo~8preFDVA94;Gr|wtkdT%WO8Ug<#k@v?78ZRnEj-r zTv`7Onq=w4kI|!)z{;8Jl+ApE_WH5b%CH2Ls-UWxjO3nO6WjN7gM@G1B2(IX3nH$D zTZjrE$p!c2YqQy&ZIf7Aiv|IB@gCqdMIS`vlF$fGOOz+?^+6=Xsx=9!<5izR6&h~m zv5vIX)R<_Inao!(gvTOdY$~Xdf>1S`#7ZBmU!te=qty3O!Fkr^78!3m7=c{<)a&0@v(1_+5>M~(xkA8_Sf+steg*JF#8Rr;(|%9I~qjh7Q|4C zQ3k;-^K;cHkaVi!&1foq0Qkl3K&}8P`l53#N8vr}9PNox7bmS2;NMMAmHD#U?YU5c z|Jg3W1~t-k(GpN-p2=Ds)XGt8GmXrVs4i73sHpn9^D-shxN=s(JBG-CXSeOu#DPdr zROeQg#dCE&aD9FK`?$RBO#jrqUaZDyUdD&}I%~j%Cx7 zpWEt|_EyDB?XBA0)vjadC)(a|d)FErLZ#bvR3y1*#%|37t-G(KHkZhWR)`-Knv$vu zct<5~0wx730jwm|g`zJ@jLl+d@&lzC@d)zIDq&EBdkK+wiq~cpKUZ3U=S8iQC!oDS zB9X1CzBdY`b>(DHM%kASi8JE4&3r9I8)zp*ii_Oj=Vy+`@}@KLv4EQ25%Fn<+nUPs z>=?{57&Ar&^;AyTd)lD}mH;%k#if z5P4?eE+Y?iepO+_EsHQ_T((vkquco@3Aqks01xW*CkRp`>eX~GGlfOr z82u2MWdvt<#z#%`xow8l9dRvm^b+ls)pfi(z3Z?DnemsA;qCe>@@v!Tpj!&ZO+nvH zBXfZ#-BgZB6U)VqL)?79Vh42>-VM5ksjS9xp{%#P=&*!_+d^+H4FL>W4+?fpECFknB_%)@gh)z z#vUbMXh$#IL&BzkB^OJb1t(7|8821@li@T9`_idcexz{%ubeEffNVXK{+ePi^qPX8 zlbyE!>b9UOCQ5FE0zBhpT?3F}p^6;OE6RZVG4C#gG>)WG4@yInb1*f@JqQzl40fx) zVBkVX<85QGg|%?;=^`J!3K&1+c!Jzus<;ZI5_7YrC?RIM8GTotda#o_Wi|S2y&|~L zy{Z`07z0E!dFw))a*iG+l9h!vQ2)<57Hk-M%p6@!(;^+XroSwc)-#k5gQk_hKp(yC zOgaXu9t=gzsJ|%mI5{B|(7ZN6Q-s z!+ps_DM@}EFl9UzKyYXh2UmOLXpnV@9j;Su5cOnG({zDMvqYSy%rr!(eA=g&*OFM$ zehW+1cR2(TEV_hk0HCeLV4g6Bfo)lWb%m2Ii-d~s67cHm#WxW`kL4#kXld&{J#;-a9^0lMoThy~Ob zfxPom;}B5i=g`YADd4g@sa%tK+EZ|jap2Bl0SNh5NvX z;!$g@3G^GBSzQ^L+RhPxmlnwI+y-n(|F%@k-HXTNNKJ9lZy;n)8I$a9_QC(-KQ~ja z9;gu#0E>r5MjBo;@Jx$3CJs3?@83kY`~28i^2y$yWHP>iM>!9^jCX=AuAk_LlC+BC z#0M*hf!mi(IRV|)oUU*yCJ~8~EMV+}n-{GCI)D|=5d3{ncG{hq?L|za!D&YbYQywrJknU3_K%UjK%*f2k-(ad8r{9KKDT1^n*inW|G;Z zQFlfXSP^1Jn7wD}@%5>#{8Qr2Rhw$0aMa~<_h{7>e{WCzG6Yhaw*{O|ZoSGDJMH|M z4)dklr1dQt^XU|+%|CYBfF&>}bO`8SZP}NZSQ^;YrrTE+fMM!vS}{Mw6>Z+mDLrJV z-&OZV7p zs!iGogKxK7jf@=cN$V!Dy4f6(XFS~|`jTMa437vv;dUn%wtELkax-!BRhp|%<3o65kK#$Mu z3eD!?RP~+N7WG>J8Hmy`ka9~VDlub^-i0fOCOH%DRby-S|LSIomM9^zqM;OIS!V$0 zM-GXvCT=n{L2+$vv!b=9bhSUQ za9Z}UQHUS_6C>g=g}6)*rtx21M8pA!VHgTiv@BknDIXo9$2|=j=h&{x$92Ll+!zD zPNOScbh*j--s!O~y|}FxD%$p1x+(jl!0+y}uqML&qP z(O$pIQW9fMv4`bS40jG+OHn-LS-(hIkg{L23KYIbcJ#&^V+uxc9XfHqb}4rLaeaF9 zc&-}Ld1*H0vPs^%djd%X%H+3L+c4{yWENAxk4Jg;QT;mONSLfJ~iS(Zs5HJDq zrV}J>J`6Lrxly#P0GY$oY@974tMe|yN!nV6tI99sl5#>vkapCI)mQUw7Laf8+0B=XH+i>uX0~*7MsfvyBl*6da_;muf(wquJ+roSMkveaa;3R&5b-Mj*vuFTEW|DHA**V=Z?$@{# zc9_-cOATfG##yZF?jTNo)ZE{+_XJUvW7VGLJaJpbzpLmTl|eB6vpDbR&U*bKyA=?6 zVl(p?#t`!84-|N~Lrx0(f5N>$4A3GkPLMkJeMy?n=#u|}(gcXIhNO&{XiyEZ=R2v| z=?=I1?XDLZK%|RkEsNoA>Pbz<3OSPr?k)J z1u!2d`WOMPD`1t_CEvCa2d?flUVnX?fr2afn2|F$XbPp}RE%%sE!&{4O4fTwk_XJF zS6@vj!P^2_oKx2VOQmsq3&Dc`SrBZPm<9zDW`C#^Wl@Qf^O39dgUl1E8n;T~E z)-><;z*T4SD{P~R&5DYs1-o)*B_vkb(24Y?6&iL@%#lxqK|g|beL{wHDAu$ZU|WnK zrcYoYyMwm=xQ9%gV75JXGnQ3v5=>h(T8;A9%CaJ6E(g z%lu2z&kwK$M6zE1fh9C(*?dtmBasKbX>$D&YD%9!GAqJ@6aHPllo%D|JQr{Um<3o=`tKG!SFRg zhw#`BZs>!-paXg>*?~TG2+?q;dg_YpszdN!6N5_E8EWi5e@^7E2N{}E^+6w7^fj_*>m9KJ!}Y5J z1&O>oBr;%iQ9UKsjJ8g7DS3YWowpeu0XrAPO_^K9v`kT`bgoZ>6snJMlzvr-eKa7==sbr1o=7?-itn9|IcA=$9qoEviJ@wi4BBu***e)dzU zmYGWEE^$b%4i@=P-|DvJZRT%P&HW>O!InP^ZQLGYrU5cTiKRs!L8M@-h zxJE#Uj--~$VrS|z9Sjg8YMX=8ILs-Kax7r(Q(V8-5c+t0|31bUQ5;0O6;Q+VhG0{x z2|n6S5F6=8rAY^WvN_YKiv?e$o0Y%%?#kMiWcVvj0Q#jWji0nd7F1Kji4E0yO`ApA zJ4~>(Ptoo^!N^+x;kbZwTHAc=9hU~5n_J4wAF7I%gm%Z)E7_QQ0-BrqTju_M#ci=$ zo3PCOqok9|S>2GLQMhqni;?}!mH)xBbvl(*F$9f>8H%e#Xn-cq?j;y$nGtxC-6X1HbPvHnywYf%pU>wzkpnt8&QN4ZFvZc4+|>uZhL~lz za`P_Q>Zu9YolG(C-mIBfqUzqfA?J&mW|DmspZ0*{Ud$@$ioCa-;4~#Wqg3Vya%Or;`y2KT?qdlaYF2iyg^+Ef-k8Xxz?s>4feY|_Wh>@U^3524Id`1 z1xhC2C~m5;z~IzjFz9)4E05?%BFsnKr0CIsC6#SVX;MnWLmTKobJDUhf9e<`f*MEF z{9y%x?fai)fo(zn+51m{mlJ&WhDB=izH8mp0qqIa zgBMl>VD^;;kr+7`+@7!z&c<=9M$4oIkk!d<;!4S!NsFSOclpy7KkAxAFkD3APU$g3 zQ&mN#Vq+v+A(0u3iB36eYX&;fFltQ>)GeUdZ!b>DzUFhjwl75atmEyw%KlrA0^a96 z(S3e6*)EV|FYBs!{lA=YhH3miqS+v2l zne!L<6q(oKzYWoxe^Co6OW*sMX1sy>aKN$FzVkZ~*MH1G4YB~h9iH-u@dt@%W|;MYGbDhl9bJ%23DTb_ z{>hq^ffsehcYr|&2bf&AZ)X?Tf2rn=8;=k^`9soaQYr%BI_!ynCY&z#)h*?<$Ilvg zyj@nzsc2hJ?@5N@{fKT!!9ENQd2+#U0bmZX=-?rpjty3PrCV~e7&H~4g2SbKZV19M z>IdnD^wDITonf_$+hMPbU2PS#pc6aY)V~vTc~mP$70pi|vB(3-illI0(c#wyE1aPp zW-~}3zqWFe_a5(H*T>_Y28udcxAJY@PumzRH(cGodi-QX622IQQBsn?|BloP$55Al zV%l^W5Mdx!+V(DqhsD7mQ!&%z6V4z|J5^*QOGY2LBl?Rz%CPaA#G>>X$Vm;828a{~ zm8+(VklGRvQ9j?4a;=zDxK~s)7q%tU!MV!XJcrps9K$J{S>+fq zgl@Q;H$w&aSiMYfZLCNyErvE;^u*-C{IO-m&mnV8cOF#dT8wjW1|D!E`E-EnW~*-7 zuIGTS&a0XfN0iI+SIdph>zYJnLUo~9Jgp63(DdUW!SUrb2!Wzv8v6f}Ec_Oj>{`A1 zmjnVzT8^jiV2~|yI@n{Q{>^2k@~rf7ady@u0i+5#6vZ&hIc$I%5g*AGQ9R8!a|u5z z9I<^$Nd>jV43eorr*U^j|=v} z&Tc#O+J5ViDe2de0mri_iubX)6>fX?!;r#Y%4wLK=`BGF)EZ{bPB*OPI?dKB`b6t= zt0d~{Jb_N(bz8^eHYdYhW*pEvav+!LN~Wu9%f!_2J>GPw0}E1h&G!GfusqM$-&$&N zr&d{}J$v#%ASj)&%Q^@6&Z)|Wy-oL<)pt4j+ezg+sTcmj4-G&s&nOCkYZy<*yJ*?2 z5jGkdXGqxM**OL*R=Oj{oyTB+o|!5ZF%uQGodQv!am<^C`uB;UtjaP=G$nBABqYtF8%tnbb#`p-DuCRez*AD!s==~?P9?g(vd^J7-E zG{cIyW7LL6*;csy{UzYNcwtv(rXKKXVNOY7cU6hvap)@5D&PBajd3s;BbN$|{iS5i z`)ZJmg;G-`9rZuN+Dn!b|+%~Z%bZ?GFH3aiu; z^=CGD<7QQJQxGD|!Gfmu<;*`++}XvofGb31<@Y|LHGN4gkcu>1qc^Te@m^O^X1sL_ zX+bl*!;aeP^xpIXIYAEH5+7@Y+{&k5uR6c0`S`KyJJP=OHNPxyzkP4StD%zCjp9gx zJM}l1@*8+$sYr_1W7~Nn;L-G7c2?ehv8mk3f-oey30EM`=r+=u7^j{(&GMhGMtX=Z z%)mxgv%(f=3XBNUObw+~KV4Q9sz9a();yjt4H3g~oNQHdFAh$FnN&)XAma()Kc86} zU$m9u@qG#Zm6kgGrTZ1u z5Cp8&YmK#oDFTxFqpqEGa{T8&_3ugBb|S!k%7GXy(`FlSc|c`o8={Oxdg6#lN#z8p zf}$>AL?u(J6Oge*VhKR{+2ip&@POxj3zG)x-mM*L?>12bdDE%TqJB43Lv6ZsArwbI2+e*rhb<)v`Ynq;QuaxwOAU1zcEJzEOp-e+) zm#UE3HsEXf>)Ev~;YzVtd#8T?%=Q~(a}f?+L!a?Kc@TmBXd1jBw6g+ZqYcm{%~@+t z&_k-p5d^Z)2Z@i*GI6s@e%$WAR8(%!$#4^Le#a(+)WmQO5=hz+5kbu5&wD5dF0}-> zF(+V=DmV1S5h4>6_Atc=`}XU1{lo*xxZOIg=^rVpm2-!Q%4N`d{X0oO!?t#hs?}0#gPv{RqVkCCV0H6UBC3onC-do}MAHkDiX8 zNcqGB7APb!N@gY*k}bvY(dpC}YhuW}k~gt1EUiQK4hRQY4QceIMxrv}SoEYjV#YAX z$Cvfpb=8oSr|Sn*&oHvjzZ-N?H512hnlEPV(abSKO2X*z@B?qxRyTj`1YXs^(U{bo ztHS!|H+y_)&h126aLqldsz>? zmX$8Mxyg42NCQ!kFG3Pvfb|iKbG%Qj5oFB`8cRe0&B>8*Rb=3pGc5D*Um<8J(np~X zL2!xZ5P@E9=MNu7yOENAJ#o5cH2}{{6y~uwiiDfQY>{1-Hg1BFm6aHD@?M5*Ygee_ z+C-CF+{^TPi}8Eq7*UfS=Cyoz4T^eHjMQ$k!3g@R76o_CB*3+T!s(Oa4DH^y4Diy~ zw`qZEwxh?W=eXsO0Y|Vc6|jL5+tjiS77bam0@_{e>*R4gNe8Ch>$I=G1&X)WL0j?S}=+*srmRYS5&|hB9OVaUOz}Ab)38 zfD9){Bv$sgIa%LrnF7XpNGT(EftCC7k)|ixl8fq_-^q)oX=doWEZV*zYvnTQ@}<-v zf3qnIo#vyFe|Ivy0_(<0C|*UiNgWrn@_UGAsRj>jq%%g9tYrIM6*bgi+jD}?zFrSJ z*3LbJ_TTAC6o|{BhYz{=i{f-yi2wo^EM8TaCOOqXb=AQ5jK0av+A=bByyKQ#tm35| z91oNGvdso0A}qg3S<>2Rv9Uh7?)+iy98@Dv;_9{e5`@vI`)rtkz$37buDO?g(KCOb z?>fF{6c&W(*-fs{cR}X_-ZUT?vS4Q3`SWVn zcf<9z;aKW+BZ;KnjUxKMwG9gwazE>Foj`h7DOv6Gya&Dx%2WN}&|0%PZ*Lb#;^b%D zvX{r8dI<>mpBe^+Z2p6{h2)wAzInb8R(*+8U|x7*y?szUNi*X3A!zzxcq;ZE4NDE& zNVhx%i5vts9q)ZgXO)`8c?rKv5Y3{;8dGP=BGU2)rVfOjjkjtnWA?}>DGgs+Ijg8U zsDz!#knxdWpKyl5gHKxsj6I4GbDsBd4=Uu-v@aqlZh_CU#Xp`uM?I>mg5Z8h4KyN%E?K-6_m*70B2_!u3Bekk&L1gRCK!a()JPno+JPv4%FG`40F+!lg-K z+bZ{=r`KNE8oL5ha1Txx-})WvW#q^Y49)lRo4}e}E)y-xq`bnE@P6v1qJ4LIzil*c zJch)x(Xv+$1`!3Z+pmd84;;dm8-fnRdoLQ)?*ME|RNFc&5dbb@)DBl0@H~S`-H4mQ zQ|M(U_Zjk=FgrFX#4G9F<}9nqc-f1Z)#cdX86QSNTk69FSr|W_mdyWfb6q?ci-;G% zVQw)uoZ?#O&y$Y}oF00-6m1!H8=@dNMeZsV@ zzxAw5DSwZj_bVL;`#lqJD|1fMgv<8_QIR|8e{<`;FR<2+UOp9Tpa_4HfFwdHh2nMq zwq6=5urb!)4XKZ}Rggorx;YBKRCdME7F7p|ItsdwIWcW+#M(Y1WDP4<(_{*_5N)Nw z@U@&YeFa0BLnsEP{a$iv!!c6Y(#zjlWY}feyUjE2Gux~oZBe`*yz6!=jy^UYKWKxK zt?@N?heWMlUN&kf#`!?+=Salf7}Dc3_a2~HeWH0$ng`N-dOLJXnEbrS<$ zDPRU@|2;21k=`b&-#j1)BHW(O} z4Ak#>6rkmgY9^`nOE`NM^9pfh3hG-R1l%4b`0b0#X0YKE%Lp8{FuDj6`17iRsJp9z zqkOcK-v*iM4INz!m9Fm&dBp$Fhb-EMKdfhDb+*KU?p7pZkE_m+lEHhjg|<;G8t*~U zqhrYD1Nfq=)ddI?%FY}itFu-^!&kehsz;!+Q-zA~|2) z!^bzm z0yo`63I8gZIRQ z_WMWOW2)4U8Q`X})_-g`hax zRlzw6m_T=_E;w~P$-#c56}8a$MgMUGOPBRZ5xh3e{;lSoGAW z7vRdFJ`N<=)5Z(?0`U7i_ZSWlMu8{qD}RsYu^q&R5Al*^01IdH@6)GU6-6Bh+ZF z;5^M=*0X$`u#JlF8?E|zWy-m0SG7KcHaA=8d_lJW{-9wTR&kHnH^3R(8$fo(%2<@+ z2{skyx`tHx0`3y*Au;WQf{CT`4`5T9`E4%B|5x)L&uAn8zAzv*6EWuMu9n0M2V3m& zBqopase^5+G$^c~U&#*gAO$H6c;emN8hfdhw01_YgTqxxB}a_$E2+ zR09d=J)dGQIXbiZ*V}0^Tsq0o>1Yy#|-NPGCkz_NQaC26-mF?8oM$k zQ10t{tDbC44kh1UD|e6}RScVHsy$sz^1gc-Bk1QZ{OyiB^yMDa(?2Z_th>`P;2mus ze<|ZSwE5Zud@ift?T#RS{b&)Xl&1w-`3)4cZZn$sUuyZ^)#4SAs%CmkawS6)tX^%% zf_hzmog;Rz$40l63mgPlRhE#eE3OQ|_&qw^q)1^vC?#3&WJ9&4J`*8re87wV+R)iA z1+s(GsIV<2=<<3xCKfAR%`;(aeVGCw@b?X;B7WU`tUlTYi`pw@^$mHnU^w3gUvvSY zZRJIKS99~Ey^m#P16Hmj_k;0}TiP4K!xwa^klEOCepWnL5!)Hp>gdyY2rDhXV56*k0E`s{7B6lmZ+4 zZ?@^brH1e$3!hZ)lgb|Tl=|@-Mq}AOBaVD@pm74md@yi2vCvMYfCI7ZmM11DrBFg3 zc*+^C<&(U$9>|(kML5x*O9TX3>`0ODTx4w#Z$i$Ji#Fc}7e^cW>>zkNE@K@NyRDmiE}m2w*EsR z9U6K<;H*eLmj5!xPT%}|rRLd?;i&AR|>e}i@jtIuK8R*F9IQ$+R3E6Q z6ka_q^3M-57_4#Cr$BR`wjoNZpd^$oYnm#6jAn;KLsBE-oUBT6z50f(FF4-5iVSmPy!zgZ51JMfamszs8yyjd z^op)mGayC>oOg7n>;Ub4bh6{Sqq#w;S8-*Rk4hC2J1)^KPF0fbOlNfaiL1S+*%y_K zu&?U-8q7^%NmMN#>!e>p#yz3z1>H{Mb1+Hr>CY?p{CFZy#JMgbYy?ICe z32fo~A;n1?yo(dxE{jywk~*ZcZ?nF!V2dPZj%J@WxO2zhN=y*ww9E}xI%I2ZbK_hW zTKOOo7F0!5)n#z%VwXbmOlp8EA7kZdlX8xw_vEr+fsI+VHM~?)=e%WGU#DUN=@cJ< z)E<=P520%t)|TJ_t**J&82fi|R1`md z_(o6v{B9@33P=urvGF*Dw0jeabEN&?9rje&a`8!%SZ7HIWS6$LE7{vPO@|OHq8xjWHMNo4QGty z-;LunF2l~~0_VmOW4X1*`Q5fJc3N`>ck=mX$j8B&S?$RdEuS}fq3-z&owqoQo&o>0 z)PmK}e=(Q}5tts1uazo5y-Pcjw>*3is6aag*FJBkhF=HhWAiH^^RCs-$16E({NZQM zXY$dfS$k*4=MCi7YF?M{ZE^Iiy(aR)^KWsCW5)By!rI|na12+{Dzl=7!aY4GcDu(9 z9)Dh}7=RcgA;v;^E$y(wS%^~;;uA+^i!2*sOFASPIsm<%bg(nH_zX_Sg|WItWzNm} zPt7&BT<1rNavcML79qPvl<8FUYkoEI9D8@Ga~)rRYU>w=2LM&aBV>i>&a|xSIX3bA z;?H$Mk2*_ydk(!Rm|XY$;jJdVo{ao|^0u$X#q752N*ugFf5Mh_w{?RclX#jP_Jj=F z0YJ4x%~Pd^L8w9XEFGgsh7^S-Cl)7~;J9v~(;i$O2j{UV$cLu<53H-GYKUUyj;tw*?p4o3RC!pMY!=g$G(S!=Ai zoxG-NY|};*xNZcy^M3rY{{S^BGeQ2wYyF>`v>IdG){i7uy}^hL?R53(-`ZefgLa=M zsoQ^4QSvNRZ43L8(4WOqTV$M`8ER#ha&xAUXELr^Uy+9XGC>*+{SPhj$+?DWqhLjbO>{^Knu7^H#5KY7~S6M>-bT!1oCX7 zsrFOS>zq#uC$#Mh>-y>uYCc^5I1%|j;34pTs>OgSOvfKT5Y(r5^o!W=@NX%L`jeRgsLJ)vF0kP@Kj{o1{aVdVPLA1EdAuO@OBT zwB_QSd`psB*{+M3E~$&luTJ6&*(J_CWT1iVq;;D2)4mftkhI^>3KF>CvO&7;hU+b= zlXuIF8UAnpR^#-kkqJLJLUOnGb@&H{M!|^tkiqGu=mwIQ4&C4l@MNZdf#%fj+$F*s1ez}PNj+A9@baTrz+&p{ z?#%JnbVaPng5U{84VRf}`DsNV}$J?yx zT4?T9GDkeVKZmXtRtD@ z0w?VW!SiIwpP&=GZ5V68XTiln=JRv5$2PLnHfy>Xksvy>VFSQ zfu%*G6cfj8C$-30=8XU;4wn-qN+d?_y1%rz5I8Y!XQrn-EypDWMyI0?mK-*x5{O~` z+2*qfT2UqRPL3Hk{1+$x{ya&Os!5BOX_%hDXWnyILI)!w9^A`!I?MU|Mc?hzMPL2S zEO1bl(*_GS41cIMqng+}tFBe(`;2`CriJ-dx<9>4AE)bd>+UK?wYnQ)EJUllz|ub;0n+SX;W?8Fx0qh@b=fcAnB*KxH{k&mGkafFwa8 zK~c0)2~bDYLPka?)=Py*Y-3i%4uhAJHc$`4nb5=(0HsoNiY|2dBvY#da&u-$&p!)9 zBKJIjipGMj3{~Rm@S4ZSjjc(of57ncwQyglbPfj_}%L`JMbupWZ~RJ-F8D zj$?FMouF*>jLsMG71Y5()Xcif8ee*pMjFpG^BWI4kvg3m*Ve-AgSIqdAp zbBWR%D}ju_X702pZ0~R?%|@b?K`6T>R*&Ic(O^RJqUfUozA>~Zyf9)4pGZ>0ttvo> zQ|g>J74y3IoH_-l4F|jzW(k3+Yjj+9+$NX}3nkiG1w3{qevSgqbKe1uLYFR^^P(1| zJ=`5%{C z-Mujmn1*7MXKp(zA4d<~4Gx==JXfiflI*PGpa(%9A-76c-(%09YlI8^ZTvEX>9KpS zH=ye*hqcUaIIqsP0?Up|WDoz;`1~+xa$?wg8?GTy4PpQehR0UkhFCn-p-uXmDY^|I zKLZ59u=z-Gze!|KmNtJ@kCRhmK%K4XL}3AoG?^RAsj^tKJdZqhFQ$ z^(=7;&Tl8(k{g)eY?X^nyn34cF6Z5{(VN>JbIXcbnF#*@k-yv1oj(Q2mWz z+D>Co+zFyxpc{(K2h?vq&~E~^TOw%9tO%nKH7Wx(j;k+manM^Fxg~ zy`F+-f0)_b1q7MNwop~x(yV!lYq3F0Yh6N53fb?5M5$+lMhm8ctgO5=p~HyfZLxH^_WXr_T3hd9$g@@-G< zUXQm-&^?gVUh2jDp1nyr%YUGl3k~kdG1 z3OAUK8QuEvFmMUc?j>wubT2ACA%^Vs(M`;<#6WF$I275 zytd4bY!2cD>8ayq|5t^4je>vN_=fP#651hC1T;Qw8|mS1FzT>cg$WxN=6=E7CjL9x>aO_L-*CpPNnvkap|K7BVx!h76)ppbB*;3mwmi ztG9#l{3)}$wOQY-va^NZeSXLD-md9s?m79}E?9iWt(Xk4Ee}6nfyd_dE{7G{QoaGZ zZNRtuB%S|grqzi$tGc`Fx?%$H>mE;bGwU0#`5ml7-?I&YL6$(t?vw<>LlZ+ozj}G3 z{aAF<#%j*lp+OFafrGmKmZpD4%Jw9I5rUL+N73mdvWz*A$HwEK*T{=*N}wfSDmV;F zG6YN>sON6=)W#|f<`ik0I>4Pp99u;lU;8r~@%xC*O z_As?Qs8Mh)katZqN6m~wxj6Nn!+a>-rESQ=yiSXqRi!py>X9VFO_kt~m_G7mxfQmM zuvfAR=HDfu23k}x6=}f2t@fp#QfGqgxbz_DwC~!pj%{iK${6Xe3bVo8iQ7H4&($$_ z$2AQwC{9{!>ULjbvWfD45!an_{u1SEnRqqx^Yi`q@%|Rll<{TZB=a>{hTl3t9HR`v{QNYAqa-f5KYGqjP^V%=jhHxiwcQ2V2nc6_y`x@cb+$R&uSKI1DJNr~8c-u!q$dTMevcwml-rt@bCC<>!nxTJaW`g15Z5f_{5lw^ic2v}zwCIvU8#5EnCIOcm#a1aS8Q38*pNimvri2bGqb1~@Jtg0Nv z0Ktiw>Z*)*hDObyV1X@VU!tM9ZU3=Pa{nq=C*UCS%{N zcI9?KBK=8=0I0oVLH2ALj@$Qf4(fM?%&gzCfL}z5_Y`o-UF9$7ayO7xf#Xhi;l-Br}(&iEbdl z&_GJe<{gJ0t=$eP^dtgAo%PCLPKzaBoQ9H`CT138>M%zzLWBmA1!JYeNoD|O5gHpx zY)1=DaEg+&te|io(qIlWO23`EX%VPx5&rEj)ozr1@Tbe}24lqsmPIdsszv<--R!oX z+GxT3VV#S`orwBYQ>zRx&B?3ZrszKAXval!L*%1l;f|#c#IuI0Sm7nkCx``a0E8Oh z^dW+!&!f8JUo~!3<}J%drmuYcg+|SpmiaC~zWK6?@_$Q-huu-AnIaX<$z>j&UH2e1 zeaED9?S%a`HzX*IvK^|45*<{n!X~lTv{=B9k{?v73lz@$MH68Y)+X1-$KKtAgolu{ zVjQ9wJ;j(b5uX2+!#KXm7qQQZatvfVo6)S`oX6_sd}Cn#FLk>J4^H|=r!y< zhGvgbrEtkxjR?}zFV_fBYQb?t(ZMN84<>(43%*_KLB3t=0qU;UTZ7?2dSgIYvs`|P z7=n!;Jjp}FBuv=(Z!DZnHB$l}g0gPUL{Ed60O>$IG2=rfDy*v;RU_?ODU+~;uPe-s z`bHO_@}b{=ni;028xEc>a(5*V?R=*BAO!V^;r53Q?-z@XFg7wKEo>7Ok!;Pa*_QN+ zt@--Fx=Uf?YOS5BEBWfMN?s79U4hK5?>4h)3e|NhZi%!lX8sYn+Ag65eDA20Ke|XR z>I-VZHKf79_8QONE#ciV`jCyW<8jrgkiL}xyCgYEy$7t}*OdGKf`Pa2&-yM1w_y75 zk@@#tWF63E?cX~71#Yn0IS^Y4-wj?@^o{%5X!&FvgamG2bv2lVN z7=!-R!OEHxGJUXEZStJL5|_lDT*C^WR>>qnl$~Qv(dZJBOfkH_1N1&Lu(&P%`ntCN zJ36{dH&&EwBu<($KaZ*Mmt%{S!|f4O!}n&hJ>mSSg=}*7rnszGQgX)udjvHt-vNR+ z#eaRn=VCczznU2jydn~VK)7}$Qs4-P{KFvK$!65u%(iXpaAtdk&HUQ_kH3CR2>_Qj z$3{Yop-9-sC#^7IL`;h1q|dG=)o0UHVJ(sZ<8=4ygFs5pky=e_JII}~XNFUg3~eer zpS&3RFeZQ;5QP%MM`$|=SPaiGNJ!>_gfzGN=)U`}=>FnmbDxH}HmkFx>fq6>oH$~A z{Qbj>f+h`du0H}}I8~^|L-x0rvqymgf%=Q0{_MN#Mlco)O7R?(wUzBu&s;kdPrKvz zl8(7nYS~|arl1|Ch})oDv;ZrF;cb20ivGKOb)9$7otAiq)1iT$Qe{P?Wshw)#& zXz39LFZq$nyo*FV#2}d+SROJguDQ!KA6-gE0kK$&4_wzHK(S_wQFK&oylj0)LT1HZ zp�&HNOdxpoU(2B8o^#kCCk%-@aP#=M>ie2c1XGpyI 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 qHFKG9@wYn zt={$8ZsTomu??mA;?9f7BBtv~0~pK8h%}LZioc_x6;71d&kQTUe|qkW5qvak3YbM$(*975ok}KC>XscDsQK z-jn~{*3RT=T6D$fU2lxz%r)0QBfHP~D?PW_p6AKWt5Q?bQk(sQ%vF}kWSew?p&1dx zPs`;v#mJA;{GC@+pHR@|7iDmK`OV^K6~oa6=Hhm>`mj72&ymj@F7ZZob5GqSDI?KX z)pX&CY;-^Eyyjd_;_Oi|k&Te4P#4$@uF%c2Q}3|m-3>#Jy}N-_UF}#T-*q!WI$*{n z8GN$gYR!1B=w(g0`YXeP&AhD`$*S{|7M<2u_EpLEDy7My9b#B3hdXJtW*uL?Ak#y* zAB+|J48bjtPY~4pazURjdra_e9RVva&0Bf_hTXFPMX0J;y~XGn$kH92ND1)SgI;4?#( z6j^!58;;Cvx>&@#XwAi^z;*$!nc%2GWX(Z<}5A)HbAzTAuwE7}j z2x(&GLpdpDwg5GSBHO(Xo@cy~jmT5(QRV1C64aFQdUBCYMQc3N5lWbMa%ye&9y~aeLJlZU^L2p>P=c z@E498q#T))@5nj)@6m3S2=jIzQL?r5N8C8g@ zZ!d1Ywz1x3?)%s=9l1PvP7J+$j~_N7WE0~B0->#6Yi8WZvwn>CMN09s_E0UQ+K)=& z`q^e}liWBQfXZ zFiqdyr>p<}(M3N#k>-=!oH3HSirn+(mauP4hZ$Gnr5qNAAAg@#`MBZMUz z&JBRe$qdZv2%(}~*6O8|&S@d}tomgxe3>HP)r^%(5sHq*<{m$#_XlQ_E)oWHm`|VM z|Ff8R;`&TM)E{_S!4ZJ>=@Dxkb`2u*;Yg-lEoKxt+=Ee>2tQabkI5`+u0#a{gT^Lk zA-G7bWy<-gn%h`_*2q3;^4vAWfz|dYV)73Z4G9f~k-UsAZW1btLlH;LON>rSwKDd_iCf-a zGcN^R=;$u&LF77*g( z-*I%k(KY?6o0bMGrC70uJr|&uS#nSeWF`U|@D1v>k7V;C5UX)+qPz=1(ykVVm1IXA ziQ-&$uW=%0e$x5nG#BnOQ_r&_v#trOd()q;S4WG}x@B9-1rS1{=hJ(8&^MerMcbqZPJ|5<3vTa8% z!EUYKp!U=^7k2(E^dteM02FR@7-7i7QfZbd$(%6I=sQE|)k%&<@UnRx3s6ar@Rm{4 z_Vh1X6-W!!rwVC}m#Sh@(_8h(L&mY3ZP*ox%h}WTj@G=! z;*#)njb+tegj7CH{Ksui5LvT?iR~ zlgz&jwqH^pjHqJw9+B-BWb97Y%nFf#r$VS;<+`adj?CcSlM)B#huqjY{mpK3>>RXA zz?oap!-K?wYL6kJ%)<-MRTO5N=6FMm5eG)pb8$c&qsH{OsccAdo&>6Bqt+QIS)8kcq2H*|e=ar5Zt?y~}j(wFm8uK0BBij)1DY{LfM^M;Vk z3uNbgPsl}tX*x%g+e((Qxt742kSFa2Ta4lPvxsjop6@hGmfyD%zn_>EjaukBVR@=6 zBXu}XkWmW3$_J*>vxC9yg~q6~a3~fJ%Z5&r!3KBnw_Uz8=zR zsB<@{6~$-Cte7^rydg(?F&%ZXx{>NP@T_&*b}jvL2q(W0|M!-&zu9hb=HShu$bl-Q=<|Ob@hU23u>}7hTzYOS@hMiJh=6>v1c& z4-aDLIi+v%qB?yB^JAZC3Ly8vTivGU(t? ztY}(&+ZD(9FqcssJ6+KKw^+{l#mr# zD{wY5$N;6%=&?O*bfZoI*1VY9ZnqE;PxDlP4jgY%2s6a7*CyLCNLU*5ysUnb1DxmT zmYu)4u`0t&Wm29nW{H~U1$w}4M_rBtg`k%qZA zuGqx;*x(Wx7Jw4)wBkerDWHNgRNbOfQ^6H^ILAhzxOY(>^`z(KXws%NWF(CZnr`-S zvVcns38fUxwpk+1Nl3IVsig8U65@q1?(aI)TKeZVTqY|eLYUuU(;Re%h)WwLCiA0f z1q)7*@Z(V1gC>-%uBuzwCGfy(y{Hs+jXvP*4!k>U6NGuQJ(d35Y5wfbg-k))e!{;+dUmhU!YLx5K=IF`!Xw)W2Bse4 zLLwrtnVSbu7+wm^n1>Fv zniE^ekHK>Jnz8}!A}+`ECr-*ahx8Z3`;;^axC!ii6N*yH#5zeb(>zP)ZJW3?ZjXKS zLh@#GWA6~YWif2^o1J@}QYJAV+QK79j>-ls4d8FK?liINnqgJqm$8&_B~o+BDD=HL zM=GTBdqDgwu=99`j`iYfM`|RaUTo{_>TwC1iQ$RU8xcaB(bAsFfVMP$RRfy=DJ>|U zqD5EB7JJW{+Y{J5mB;OeSSw}nlcfZ@!B^_eJG0fr(G-mM%MncK##){YUC#>*Cv`gs z7`|Jjh>Fi*5Pm9>%tB5|d-Dr_bwZAVh3u#mcv!yCRp5a0HlE8AG40Ag+i!a5hI%$B z&?aQTFc$Hm;<=jM(g^;cc~`D;&Kd19$dI9Yiq-e0v64pV9;&8eW=SLX-_$k-g18y6 zx0yrTU7!@NCok0ufIU0X(MAONUBDm5$`=R!d$<%=RC|b$P~X+%2N;$qaldTeFTX=H zXFk{>B{9F``UyV;lvypVprc@!nA__uOb$ll!FkeQ5*8&4gU!t_KEP@FJI@mqDUd=n zz2b56_5-|Tz27#v3@pYby)+I9rOw*B26r!-Q27J)CMF`U#mE@HP9EL1f zub23&TN1^|4%wIflz`G7SWdm%F-2EGv25^7&0|`dCDSR;JSAXf_i+vOREtJ`%Fasb z)RwRAE#yvT)<&wwKIX%KC3_nBOa0z)gGgxDkk-LNQb_~C6E;JX)9OCY17__T&9edJp zyTKz{mpFr#e(vWf{7ZmX%FoXlX1dCMRu^j-{YosQ9S1A=L`%^e#OF`&!MtjcCgTWw2I7 zryP4XaKiguYdJ`tg4ozT!p~XxeF8Bo8vzyeFH^@5P4=lp33!bb@sZ0gS^9V_-rrkg zk=#fJ2eMc6mUzaonxg}B$VfH{(o9UhD085fqCmJ+!LL|KB+N02^Hat+7qf>&MVB;+ znBdcds4n7~=Qm5!AiH*pYe<+^4<7f<8yj6pt*qm|rtd9jRCeTU5R3Pl6NF^&v4?wk zC;}h(j4#%F2h5@6hOnDMq^UWC$%%8rH0vD%FJs2a?YDTKy|d5i^yPdCdjESAJ0MX( z)wErU2StPkqn2HO?L}@Aj{-4db9hQ6@qtKrKL6@lPP`!_RFq6H*ke`BLBwVBv|){y zEV4dg?)ke?#l&JmvD{Z62{o~9nyVVh%ZJ$qcbeRYX8`qKQazJc+zR}L{5HbE0J=9e z(J>+(>lY$yW~|()26YFm&MvTBYj#O5i4U&t?6u){s&l1`JOS-vohfX*)$)85x1#I0 z%on>gfHW^;MQL`y=)PnVxZAuYrd5U@{VX}7vK7MiP2+xIQ8LZ8J@gf*!z8@%u84izZ*;Sz%&s_C z9pXctQljv2^iWssQRTnMj&#KYBhs)zLPdZ?C*A-o@@=FNnfgwlVC4LFQf!v$ti*x^ zqr*`S8Ne_kw8~1DdNpk$JW79Y3@0E+ter90qJ<_zf!k!~rB97}@Y)YlK*PqAB9dQ? zW^7JYJJc0tsye7-TUgn%kd6c!h$ZI+*O8K*uPW{*Z&q$$*k0hOw|pgV*p;doDl(vd zO=UV8bMuRJ;qxY#dHSM5Wz=9Y(@QrS?GmGFRQd2;dDNAAqt(T;9hfN?PZDnX1igj(w> zfV6sR<6a8~3(G5x6kXlDswORHaGfhm?|3l@yQEPM4tg3iF)_MHq6hlEN}1lCo~oO! z@+7ZHjpO2OdzN?qIjKEfUtD33P|Ff~aRhyOS^a0qJA1hF)0eavF>91b1~c~xkIptO zK`le7jwa!p2VmSRg{;qUR8)`6$9C0wZXirUJgsJ(Kk>mAA5)-6ViclUl|`1s%kAj+ zKWjjxG|Z^@Yq-N?=-i&lh1VIdFuTH>r)oc&b?CVy~09uXnKXYj)8t204-x`oQ$F0Zh=SqHF?eE+B zGOV*r!H>#^&l~(e z4SZPwFkETocPZ@d)o^lGQTNMwUuhPelb@e}jVtdbewlAz zkrZ;BXo-%#%exe_$HUwC&{-towb0p@0sk?vZe%avyZV8!WN>&YX>h&`?v-+^FQS}1 zj-U{$jFj-%+4~RhZFiO5{NL;ij*PX@Z@yJxg!2J+<5JS;s{lLpFLvglDF5sE8fhI$ zFbvB0UIXDK#nKaD7xU;Q8Q)I_YLPVO2+4-M=vQ#A4;5hHs z*1RyK&2&K5hH6*e!=5#krW0*`Gj2HF)C!QHqR^#E=oZiz;n4SA1n zlhoNJ5mY`n&CETp5HW#5-1{_#OxyVVNymxn8tJktuH5-L)h)Z@Op|fu4Ly33UrI-( z7hp(&{ zyj_;_Yw*2`pLrO@+e6fXY-QEyaqG!FP7CG`(sV1NyhM0k^?Fvun-f8m@S@6wfwo)? z-smXcw_S~Bfj&<5GC}15l-c2F%_c+{l?wBx6;JGcI3Oq9gNWRWIa$}?X#cQ*D!Y3? zkK6dez`y`t44N1K70R$o46z>F0hn2g78qZMrYLkUQL0(o0OqG~qJ>m$IcR}3yltDy#)+{~(+;a{ zqeAz$eNrb_%|ab*`poj@6&OQTbE{E7O;QSDZU<7qa^@8ObP@~Hz9PRoX{rZ|#A6->Y`X`8=Oddeu+c;~GC`U+E^1d@*Q9{}r*C9s0ZcL7Mo z*!rJ8>Zo&Dzlea50MhV92vN-wbb{BN%d``QH3`v(9wg;$ z)A4LXm9%VN6EM|W@deg0gCLJT=tBG90lN}<)8`#`KomcjJcFu<%VFKOU;N|9neBGp zMgg6DJzD4A7`S?2#6%ibwDywCyj&70nPmgC+$W#a_RvfrTK^a)xA7Oi{UFOv-iQ;U zIfbC#-`>C1dQ5XM2%|!oC<|jN4^`sq21WLYxU#Uhz@=aQ7Ucm7=oU^y$r~6#_ zbVg6f08O<_4d!lQ{Y*O5VM^+OB7`HC7+XYtK+f?O9abzc3p@xTV9n}6nSi}t&gM$d z9j0^_e72Q+Xl`efz3Q98c=X8xyG2*S+K)a(OK8xO(*v@hiW`;9ozPL0b|D)@*|_W{ zc)5>n3;JnVX)#|_?lIyA$F(3aaCssUET#ZA6YoqKWUsWoaI-kBT0jv}*ptl=$=mI| zDMkTt1?y+|iPr&)LSuH1hGBEdHvy+;&R1wB%tnJi)rt4SG>$!T^;Mouy9sN&FL z$*6wz#Az_WH|v0=Tt}g*;*GS+eEflN6C2K*Fk-1QI-J+#r z1|`n=kk_&OCgX-p-q26H+#QS#+Df|eT&tB_pa@_SSkw(;K;xc5a~$K1zM<1}C#BB4 zOGuS|`#LyJd>q4lQx9M(K~#>Pc}RS)BeFYZb>hz)yD?M})_>6s1Ykv3bO$q< zKTK#@Smv&4`oc-;Wypn|??DS*fvB~`@9~!aNP>0i)EJdgMZ`#qiEzN0h0e5+WT(QY zK)3c#G4t?x?b8gkDv82Eb3z8h6iFt|J50MfBl+#S$_7clBy63zXtouKMwcR{rEEB$ zZx}tsc!B|bbKqYqN!`EV3~=7SBi#6`vNh=PLWU`b1u_9 zY}6&PMkFNYtqavVg7)@)vKnoc((Dykd4%9{2$27PAjC|3R>q)Hyrl;)G9ozR;@F}i zXnWvrEbvm+#H*U)r$bTWeC-b#m#8NrRSC!Iq1AoJupn^`0{u zvV;?cjw$7}-<8C&8wbaGjP)7qDRmr;!vv?LZG8khR6Q>I&)r&R0bddLb~|%{DqYx) zHgLTUjU@3-mqi{(!aO7GN~=l)R`PGW`QxWFG<+YH?#X>#fKLS!+|!y88af4etH|1% z9w}@}Lhh5EKu%xOH?z?GaRfd$j6Np!K-{+Pq#wOrPT?JSFQ!o$Tu&b2Reb4in3{5G zRbEvyVu@O{r`_!)3w8LKxE=1SZg#A2w7=#=5ei zyO7f+rQg*2UQtt`zhjomH0CNPjP7U@Qma8&*syqhsR?hncQWD_T;KGm_8|&QyP{eD zKL0%=*HK$vkVp%6KRHC)q8OD#cYpm*-^hV97t;2*?#t}HoOT!l3pjN%+JV(NB^}7K z&i->m8I#Ta?7Zs)Y5$OSDKN$p_&5CheVVyJs}ue#PV1e_G%(eVZK>e})oMIAEB zBOww2(a(3C*f$XTW*qJRCn*%6=Jy18k&P|u+1g3(a7W31kT?l$@mE}Q`LwhNs?iKPPhcKg8xaxfqPIh1Fu@_))#{Ag;Nc_eHtnPL{G|_lFZ`^XIQuX!9)e{N{>g z+}Zy-V))lk18P29tYs0R)u_o}j$S@dktk5~hX`K9HfZ}dVPIVsK6_VO(_bMMe$P_UNmJ2(&C!10$76^^ze!qyQDLcn4 zm|k(7(}*~RKC&;@3z;#u=`1wzF%D zo}%6kA)fu-8s#kCFWYIh4%we#jQ=);9aw=$WU=5Q+!DJ0uhQ4kTNbd9&fK~^6++mk z2-TD+|69G29|3d0Qo9@3kOvO}0460eNYxR-K-@iZ$?zcO=ph3jWlo;*D ziYDyN#rKz;>b(2H0gAi?gQk*li!(ETrp0pdV}FCR0a3TSs#fi-tH5iUhxufv zPGGM(NIHa~5-&Jg?V(=B+;EkT=g+c4TWwgPT4<&N&3&ogefH=Cs&M;vg;*~-MD`zt za$jZb-+-|8e5C&Q*!>6fTG@KYF9C6@yAh)bQq`5mmN=1XG4^LCZz{F>7rFM#M^{rT zaEX`zufE3pq6;QVl%f-EeLk4rc^e!=Ly`UQKo zG+J(%GAWW=JFT8wN;D&d0VO}cVD2D{m&IC!o{&I%)0=^+Z+E&p7|J&rwcnVC075{$ zzqRnz6p}sHs;F5FSyxJ22bh_6`>pw-Pl%DNq^mE1ZIsfaCE%zE#}{kNXd05TRSQZ-Q@Ma)`dsP>Id>2fqclB|Xn*#Y&j8SW)2Zyvch}Fa;#f_KoeocTPY_wM{Qygl z=z#qGvWO#NjqEuTv~50xX-D}qJouE}zlUp7!=2aUN`*EthuvY*Dyy`a>^pF*G0HKL z@HaeQPve;R9Bk$*l-bJf$Ib8P@1N1SplUQ(1XAZ^Rlwy=Q4KeaUxc~GI;VK@Pc3+E zP+Od~-Pbt=WSxMAYtEx-1-K$Dirc3=$LX6-j-4vf^>agHj*p4R#{S_>^oU6REFyJ3 zgjC>vTp|GiF}`X)VM{=@hLsBt0Nq+o*_m95@$8qkD>FDZHkj$t@CrFjI}Xr|a=&*o zqJ*8Xddy7Y7>QOm$hkAiopq9x9IAMp5IJP%rIK~N8M_YDgVaMJce}7T&Q8uB%BmdR zvK>dt$=@Qtm(I)4gw9M%?xZJ~oiEJUcjiwk zzkz*qs=N+_C_84h*njcRu#&$YrDDxK@;t?Rr$)eNz-qu76N1ZwxRZ06h*ifv8DfQjMT)o-!XkpgLSMN|uFiUYHNmGRBK+Wz!1BK2 zkw{F8DMpPE8W~FDFm(1l?P}~1*9PrOTl1Y*Vc=kPC)s=E6ErmTd%_ek`A3pQ+cDdix4I)re`6S`LBx zyiaMA&!S{zF|v>Zq$_T(%jrG!6N&6Og6H3~H!H!^QW5MrcgBE^2!S!O9$wse&#|eB zU=b#2lFz8#X}S@3H#%T&I)anMm_oB+L2i7IQg_figL$BfFJpHCnXFeaFdiw9VE9U6 zo%U_jl6D81@7RXsVl*n%Cgffcg6@K}>+PFc7bHJO2x88;&&AX?A!}pp)H1c#KWpCR zt<)#`Ji^n}%5l&LM5Hx!boM8+ZC9nK;=I9bHZ=NKd#4i&#|{m*gEY9aE&y+kCrI`#J|EOf5`?7!VN6(;7>^uTZ!UC(fqq&cB?^X*r(j)3+dh)Flqn&jTrW@oW8r&Mz~ z^l0>mic?Ry-b6|yHJtM{4p3riAu2`MLLzaZS~+b-8cnTU>wZ+n0Xx4+Zk{E)GrMa^ zx0Yo6)le5aa^4XxeIgdwSSlo>xkW-X{Ty+(SF0-gu#4{uhYoXZTVSyc8gc|!Y!U@2 zpA$L22OB=**(VZ+28OjO3seNPXJWM1lPTi_ZdJBwsbcc{=L2x+pUoG0F*9(C5zxG# z%Te$&j&M!#0@+l#$;9cb^lVuU-5Mu6e=4ZVoK$qx8Zi^49av>Y<^tGxu`B@7=Hz*} zBKBOOq_W(Wf3$cdOOGg8lEI#Nah^Rv>HH>^`dMYK^yV<$*Hn z-3{!!%vd^0)-;pzKg+YvIMy;n4NqWb9dFBifLx(@Q8mQM;jm!Ja}$1Nyl1uNL=FNtTs^e((zVkb`6l9kPU)$Grj{;HX7p zW&3_UlqW53$seLhv?ol{QZAS2aPQ;QKHX(wQ~DhG_wDc;SGxp!?Gv6hal%W@2=?LA zVTj=yYvfkHW^HZcd>Gj$CDF|BFq>T48+`-VuOadRB)mVBxY3`jT(Qp+0Xy+wRULS0 z-SWi|xl~1pf=qVvNd(&gXeZ{?XR?~zR6?ns*PoH3=+bmznv@+TPbIT4-yx!yQihwg z(?ubhs#PL0L?JbBhLo0Dgg}9qIzVobWt$++sG;|O5Q0RRG-RSanjR|>)s%)5n%}gr z-ftdU{RnS;ViktnUG9F@rObuOJHo{asGuTRcjshJ;I_a5xK``p6oeC}Tg5s9!>z6K(zhGi#V7=_sY&{b zAs<}&5A#vc(~tt?q)~+7jX{_eha44Zn|v>(Vrf7p+!mO3`OxlaVw1UafsmjMeYSV`uc6`I*pe$WDjkd@{#zp%_ne$f z0D)3d1@z?A>;Bhc%wuv4{AaidC;UorA$Kjgan1WG>UTc|ySliqWelT?Y>EMYIB|KN zg`a%@=>*nUiv6F3(j@QS@*EX(W4+WJ`4+tT^foRS5zcvT?(UjH8;z5%01_e} z#|Jxxr3fTBNgayoAzK3+vvR4_q*ja@OapHt(inaVms>8#8!FOfIw6TAqq2E^a>^lM z20~89+S$q2@7%0^%R517Wh37}MvhFPq?_$=iHH_?83*b9vem`&H07{JFJ22bDEGo= z^6QWdHyf_IcAf>>;Lj!Z<|)#ckcp&fki0235Qyz9PT%E2u;JlbcWj8h@9cj~3 z1kwPx5;hq;u;wsWqV=N`-u`L>t>lW4p0!+i7guwr$&XW81cE z+c-_XJu~|{|KP=14{y9%7XPE^M*Tmw6k|zwI*Ry7>DRQQ6p$E|Ue1&?><90+7E=Uu zo&-rU2tndFNf?;UD1J`xN+_OSYPoLIX=ZDCP!R^UeqjH~bFXNK0f@Y45P@-3icxxs zBKzPUN6jd9=9AY~|F_xIx{-d%F4HqE_A?+APr6Ms$5l^kfzOM1{g2~TtGqTvHW5{l z2M{!A!S0xU;MoqVemwX9_bk1_dFLJDT0V9m(>Q9!Q;?syah6ySiSF;sEvTX_X)lav zCz0rNhQTGswUdPQL}wl2qtKHPp=9DH!z6mOa(fK|l2P?C?2)SnCUMIC;yq%C*nv3$ z^Ckv$d+{v(Fr=g}aRr%$De zribPgW0++9eAyI*{^5e;11Hpl&Y#}?&%4ZY7DJo@d)fX^urwhUcI8k7gion!=G4(+ z!XKSbH>xOyTBmLwKotn4ahd-ZVE@N6ScqCDm2t~2gyM>hA$6YDlBi(&=Asv> z*`3qnS{QX^K*DYkEulpaLAZ-jHUeg3Fk)B-+*4T2`n(QK(?!}u|CZa9M5aH6%%F%k zq<=Uo4}#98SD#aT>4i)`zN(t1xw^74U2RPVur(ZzEWxHog*jepI7*fZ()GBQr!eM4 zT1f1KCC%w;uM}8(KR3Qie+n6L5&pmDhNa6H73r#g*<9{$AKEr2+Nf*jbG;e?YH&?cdD>TR)c*9E!7FP!okT_oZIN=Yd6m=;a)X&QGejI zlK7fpbzOX_NDMX{D>1d1FLTvl>vhccU372L@=M zIm|!%k|Dp;<}oa=#1wQA_33&@_Z9}=O9csG&E8KD!8<5)C570o{^-}Unn}t5m?S$) zmikC*O|K-c8gNT&HIKZ>;QTH01_jFAh!W|3qOjB6f`amDIBL5edGp+8@Z9Efwu9Y( z$ei+aXZ`oR|1-Ar9uS>xd#1};M&xIlmQ#>9w`G?1``ZIN-MNas0XZDuXl8B-cBl8I z`bYX^NN7adq(&gmt`5c0f?9j*_t^gb?sZpe85JXA_M4<&+Fu=m*Cz!;pfBbz` zOF$U5ezfyp$`#mz2x(?ENqwDAa=`(Su6fXEOX+L6D|+g64$hH>Ng9R9If5g_C1ctU zgGgAModP-Y2mPfM=NE6j4vBQ&ZzuDSC4Bc_FhQ8Y1(aL4SAvV$@us=Kk2;D6=B*rU ziuZ{-mID@}`SibEJo5j_07%C|soXN8GUM%zx<`x@P}LXple>AKI9y%c^u!NV_){gA z+Su}5A)%NH2#oVV#|2&88{>qv4mQPGK7`89^-# zoG?Lgxx8QVV|4Lh@M5v@xd{_rx;L16iwt=Pq;iL9r?GEw;JQ5_iCbxI`Vt zd#@U#vRfN)aS>ux*6|1+)B8u)mg{`l&;JM&eZ2n&6;M?RspC8$Dy!6jt)u)JfgJW% z1-|vA@emI;RN&MatsGdBPYb=!xiFi5n4d{-3y2IA>6J~d0+m*b<}_-qTm0q* zODQ$Xfk1+@JnF>yk>w-;EeR}FauK>ZZ0O|la?uHebRDi23B~R+YKe{YLlO-A&ABE) zU{xs27d1$!uLXIo>BsMAZv@h0rtlgXE5R!fZD{J@CnmB6)n2ss4!aF?nk(jj19^UH z{aQCYz)yYw_P|Dsn!9+Ui`M4SO6Eo>Dl}!Uft^_n`#8JA zG()pN{%0E<@jncw@0rBHyELMTV9y!1zr$>%BOZe)1K0CwRmk>=y4==pVt@2@F*I|V zkwHHLb2)r9Nc6~J!IpXW8DaHe3fN8H61REbqw_y-=d{U;zsu|+0>ddJ2QY9eULV3o zNXTT=;)`h1r? zi536&?*BGc9T9fCBa0cLq52+7U_iaG+M(9jFms|h0lld?j-1*&ku_G=>MrP`2qd;1 zP2KSI{H%X?_n>-|Td`*S(+1%(|JGx5{s>!xI=I&r3zEl>hs(_mo*of(KI)GV9O#JY z%7(s}t+aM)-#PgOcuu!+Tz5roGwy48*iS7Xg-#)VLkD8F;*qFC4aw;|z^-ooyNxJU z@pNz8emphcZxQCKd22GN6m1!(s|o%%)-pFjz_v?%E-ehm8Cn8Ta9Y^;MZt;W@N5tMeod(yO!pU! z^@IPJ0_=EIQ7C@0zL;G54EoO3^-P6}sB+WPRkRO9Mql)(;5wqDCCLSS}mUvk?eOE$tRZGFF^$> zmy3e~B&w5#E*!PEg_`tctPtqRk-oWXv2%`?dA4=mtr(rzXnTJw!)__N{*Vl%)i>~q zpW19|tvqvue%rdxs^~)3crx_0%5L+7X%?g7J6nTnZK_r2IwNUaHT6jMV104}hyD2R zN@;-eKgg*6D2|>34pkPy;uqO48VV=j0I~s5pvmR6Gz^mAGe;QZ>;{kPShF%8lN2%R z%&|?7OV@Xv88)jcH7RiI)VFxm&m4J?7|&-2%B)*Ag`T^39!AuqQgxkO4Q;H>m;-ha z>@ne1dhV#3c+}VMo=e2U&(5qJWVO-6mCjQB2`Bz9+==0x6>mS3ONeD%>A-wKjEmRX z4#+zuXwctUa(a+bUn3-ekp!$U{01Gx4tkTkADt=xaW`l13YL95PBDgCG<=fv;y%tW zDk%j^@0OZ4Yy<-1Llv_i)_n(b33q)-ZK+qG;tggpKOQF$)`riYOuEgwc@i+jU>3&&J~;F4_bWD0@+~*AVQTEjk>q}Zlda8 zPp|1x_DsG!qUPZc@&y8YHK22Udpg)&r$p1^q{r9`h`76J|7xG@cTC-pXSE9~z8|Bx z?K={j%Bg%avtG1&xD5aIC&7-w$z@sA`s_79{OxYJg&4G2S~ z6la=4=5~rxA;=DiI2MDBx6;XN;Jc3F)jkyjt}}v>`k7D$S?*GeOfQcNp;00{$+Q?? zwTEBs3reJIw7^fP;+bM9t}q+n;Hs7|Y1nSW-I5qobm#A>kWPMF% zlzlkG)&nLi=sd5^5bvD%W(ikww3u5dYltboT+mBxWU2W$X9#8q=KKY!EGhMGKXt+&bR!c?r0AE~^Up9+ z{Gk_vp2-J&RI`%`cfXFA;Ehg+nQiIMVFHtnt;>NgT_pc0(=zX~d1KYYy`BCW-P1pt zL={vc>@%`jO7iOBLGJYx0b5=-=Y%TIG_N9VGefV@#-c4-HsZYfMHAS=h2Y>N1G(6U2uXI;!Fy&Jn>LEmkIH#D^cIj6ctruTyu)9yI12n<9*XF>s&>cHfSo z&hxZG^eG-e13HHG8Nw4Q;fGyF`URep|J(Vp4i*MP02-O(aZ#i`2)hugbWxOTSsoG+ z=cb8fP$?{l4wW9Q5E0mkNhUx8Q1_RzxNY9E{(57Two7bhDdRy4YVsPPX-yidQ$;?6TOTVpWtMe3&n6~c4I#;Pp59ub|FE6-P-MGjfsNa~q zN2_o%GUwq0x^!*+Ddk4~-#XIiH+IFIcK|#hA~sxY<5K9rKqyxB_RWYK7T1P}QD^FA z3Ln@2tSMF?yh#G@{GhE)I$bNJf{}k*I}Wp%28T;^;VxR{QfeS^Y(2U_Oo@klFDrlI zbgFx{!s9U;2u)ygTI6&EfqJUw3cNhgiIq2y=36_nOMc**+D-?Sk^fPO_kj697R|vM ze$^NhcwrRwS%MFPTK|qs@+`+!GA?(s6m+g!BtypI^5~*OrgV)_igWI2-r$?<5u}CEZ7h4En@2(Dp;l;{06{T#j$0b_cX^ z>u8Xmmf{G-&4V(k+lq14qyUgnr8r@626{4OWlbc%WPkC7q z>cL>vGh4dYKH!O-x8Y6yi*c`zpybI71FA%=jVLwx4pJ9IH^>_}EqWrWlg;2do_KmA zMJJ4-RGc7Fv{s`hBEPT4jV!zL;5hx(nD=f^Y@$GF_&BD6F}{Z+d;cuyaWJ-5&g@O@ z$&X27b#e+5iXO}U=RxJFiw!+f5bWJDABZO-Bs<S4KKU^ACyH-Jm|jC#bNlhSt1eyS_K{Djh+3TEi@a01<1Y0aUc z?0WurD>^b{h(P!XDMY^?JAIHC22^Ba5t_vA=|JKf_Z#fho5qelw}V<3di(JbZr7%J z7tO22o0~s=KuD^|_;tY2`a{*9)Xy*o$c!}$9k*qGi&Iw*ZB@()%}F7+ zCm`M!In~51fWMEeY-zp54F6fB-2(@NVI7)*x+WIZsKQ*J=>tl(`a_@=29!#U88Z}F zbhPUA>}fsrRwCU|eVU}Pzs>!!<>(SELw@(vF1JdNPBTMWYl<0tCEgDMk6b=b*^ zgOhTJxVUTWu-Zui#BP0trlz*0R_55rz`dK3EeUCI`0i_6Srtuqd3YVAu~`sL>Ur-d zyX~0+zSoi#l^MF9OD=QYQFihowRs|Hqbu zKBMdK<-_bqP9;JkVif})i@2yln0%#@Y2Xs5l@Qg2e5mtP zAf*H+LS2=R3b~v^RH=$XEA`Oovk!|tu;`=>^PT3J8mb*Wj`Aozh?kz zYM=%M`uiOv2j&dh4Eu)YlE~CZI_s{reX$vF$LN|@KUw57=>4&9Jy!~j-%;vz%KJ|| zTSk=~MfEX$0Pap}2NeM5Ve(jFcahg41b#v$*TW0~SD=V{n@e@e2oJ@m+~ZSqu%C1!>DWsQC>jV=iC^G{0a7@plj+SbDt4ws#SjC8e};gB#Oy3G73xdkUc;WblpME<{3!y<^Y5;^T(6c zTIO){5i1pO{$zJER;uY&0EIq91DqcCB`;g{^QWX+gFTg0S1eat+U0M1G#CM@&`V*A zDvxspdEnL~aBodCfuReNHDhztGx?yNj9!*iJP0y;+VMd<-GL1Tc`$lsO_;EsIUyN2 zTV>P^QNoc^1LlG(P692xC>TrRaP|)UY6Cy{Bvchnh*SG>&PkMU#FByfguqH7KYKU& zt1T_yP)tN$-jN)sWvggInu|1uWO^WL7$p=+s~_~%$BH)3jFkm+*RsHkir1<__m1}_ zKGXpOf_;BNk+2bt^Wc%6M)^>?fmg+8Vym#bV7sF|FDVlOt<^WYRtR)eg1?C4=Q+br zN7L5Hlc~h~kOyb)ZsU{t9SsLjQ*`NE5U*rr zZ~!iUTn6bXDw!rEWmf32qT6OEB8lN0(ffxI4l7=Un$RHeKJ6m%XErS?qV$G<2u!)l z?=1fnFJwMTb)EE0vi#IN=RW9lteNSVF%-A5z0NR9BK)mPOkTWDi&AKxrR@=lb-ZR7 zm4Nz>k_K*k9Gb8)`F15ROA((0j;ROev=U1`SW)DZ2)eVkdGpNTQrnQ{XxuNvbVkpt z{LKl%+i-uVtuVVcx~ZYHx`@(AX(f}kh4r;b6i5c;j0{TrEGxQVy7ya<53j)B`p?5f z(}Zg=o=h#i za%VAcn1Z@cGU(TVX7DqLpI~x)HC9=cnbzR*tt+}VIn+5)5OCkxCZqH4x@vV1A@`AY z%c4BaSHn_6&xdMzQLfRcdCq*1LYQ&ko|3>MdiEwjX=>6ksoMM&{(v2)P-Z9A_B<^v z*;Mj3URiH#ZhAClcD1=aUmS!h?{Z&HR30pND~)x5?`=y5@14wL;MHw2^yd}C? zDx=v~!Db}m4)lt<_azp53??{`KA3UDv3}n1N=?p86}W?d z5WD2MA7cw1qmYW0?be2c0q786Qh6Er{GG9|>l z3eba4$aLg(Jv08M5SAIFk@C6FyxY2YmL>;j)TLMXjjS2dQW6JGse_3`YU|06dXt1= z_R+Pok%g6&6{XxT`Q(CX>q)EQT{|aNFS?eL?%wm)isn525@za*WVlU}ml5DJRg`=W zsk5D@C;Owrq`_4s>;093gMBAEFHbj$F0KI{-?`C#(XSyuJGQPg=%4)xijKJ+_zmR} z4AvcCg9~+xNq&?F>2WfVrREI*$$l7Tt&rqVfzQo3ydS}$>S^rqnzH!$@eE$ja;o9R zD25s_8RQ<9;%Ly3ED!BZWSA(Z`i-D>g=UtVu>O7eXZ3Y^RdurgN3iwg&^R`y1&A~o zd`5M4f#ff38R1p}4hvQUaag0u-^A`u46L;0;SOFDwMjoz?D56DV2#_s>6%&G`p^UTSjAAZ{ zwBtKC#4{ZBu}Otj$F}fs*PGP97H--lYU#`K0iXv``!Lbg3ZmNK4WEiHr z(xV*h_86Cu6P`CysieiJZ&i9%s;|F6l=2mYRZx=(!B7vNF;eFa;}8cfSp! z1DBru^)s)yOTBL#MV$!ncW@^oZ?7QpnZsDUp1>fFdD)&m8_?W-Z)IU9mI7MqmCa(0 zmskwk#KKxMci-DDzK#}3^WV5|pum_Vn(x+xEz^<$?=)-u!*3#0)US#tLWh>qn~brM zHB-~fk$16eEOg)jh=x!@8D@SA_S7AU_&)$+eD%hI=bhhK`{)jTiu)Kq3+-tNa63g9 z+Mx76U(!7VJ{!H>%?-5;4aIvr8PF8x^K`mRiCAxSxwE2McXGP&VQRffhQJlX#$3pc z!}~14=1QC?0)(pMpD?94Wf=~$H%V4-E{C7-0w-JCBQ}Y-a5-%Lsfq4{HBvL$2Tcp^ zQ7L|%giftdwOQ1d9jycvTJIW*s03U=2_*DVx>7X6%#@ySEejGp2T|?(u|Nt$aOB2P zl06$v7~{hkGS4JTDvy`ez!Ix+yEA;rcn}p~_sfs2LL)>>%)RuuPr%s~(if=yN2ij# zUZhc7K761dy16leJ$pn{LAfO<{X#s-J~2pRF7@&F=-fH!m8D6GdY>-#umnBH`SE_c+f%w zxpC=yl);y7MiL~q4+>Aj{jR-%CbX?C!tikPlESoG0=JJbek$+0ZX;&-c&Uc7Ng=9- z9>LC>&XSdu>DTg{_VQD~H%GK_s)o--`uO8e#sKK3fyQh`q`|C-;v&avVT<%SoMm;b zH|v6#kjUib^;#}Su(Um%VY(OZb-0^kEm*bf`99}fM0I`zKO}K9EVa0m(PGVvQdcqV zh>2Isw{kM>`4^by3Xc>)iNXswfwAY6#kCFXAq*1e)0TxtjTz>3LU%$J(Pxj--E_{Q zkNt}tU3QwuzRl{>K&Q zs`%QtDH~w~x+J$rTu&S#Q1CVPA%N2~j#>75u#J7iVb5yyZK?^#ym`E-&z=_!9 zgsOYGzh~=mlZ&LqJ<%m=6{&xB0Umt9)jcPs$VJ?T$@UTj*=k}ZsGaC2-oYnM$)u8K z@z+5oT}?$TiAD0%OwK+T1elK_jeaALfHm6Md4k*#mr~RM`#qufXVk*oR68QhtPA&~ zCPdO6rsV`hjDHxXfURa~`VCbvwg;tBW+qcoP3}u4xuhk_8LwbdWX1fAWEm`y2sr02qw8agy zk;jiXzZb1#v4}JwPKuntNqjp<6*(hedBE|c7jl%Xmh-dj;m&Edec_>FwYzY@O3gUVPTxxg0e#`nJfue(P!I!G`4$ z9ig}$l4mRU^T?Mp)nr2%+Is0ox`lSCm1G%|!lG&nPaeZfzVzEyyk4RSC1& z`(%veeavkuli;5XeAGHEbf9~tpQn%S7s1qz9s=@5@bLM1!IkmhJp38-^NYSro$z`& zVtJ1(_dI2S<0Dt1>?(=lk0q~1|0^!34XOtLtanxytmKoQBiJgXWa~lbZTM23;sC+9 z>2r(^dme>1i&JP7kbjztgNv=?cN*+`ve!*UN+7q6Z(P4R!zxm#`5sY^i$|P;Qr(_s zS8NwIR1-h5w>P6g#HXW14FmCrZy;4^F&I_rYjjmheIe`ZO|PU(znoupH8`4)+Z8(6 zuh5(MV!Fs4*YOF{;h4^?X92m?B zoeqshKoE_?A0#m{Ga%!5%LW=bdF+suiS6|AmBowJb4FDAwyMwNRVFqZg2gD*dd)~w zbogM>U0Ka9aQ{53v-aYft)Mdq_NEZ8^FbO^Pci|TW&4cI)A7#fE-ub`-5Taz;S8q=IyV5lVC zdOqb8E{wec#0x7p{x>fDhne|aqROG#ln`mY0H8ZCK=lYH#{IHLl_oOcp`wd@*(Ueov#aV)@`NZP+bdEwCmLw;C>aUQ z8!IL5YkFWN;bh_7HXJAUK*D+X_${NEr1ey-fIWnM-Y6$MsTTki5pt*%?Md}Alx3OI zwb35s)ONex<$941^aPsB_DaCWgIp$lmGN)Q_`epbU~S)vRgep&c3=JKz7s@J*2gz} zh|J?sBj?Uk(?s+X4F||ded|B?`gJe{fv^e0Y@zfdYG%7eDh{5cci zu~?2LBSEa4CKKJ!oYAz#1d3X$ladIL#__QoA>E5`Js`)OuD%WCs|LKw?p_eDZD zWeSZkVv^^Sj6maL(`yyT_Tmef5844%*D{L?9^QOMW9f+&hU=oF;sTB~`Qt9|qpHfY zOBOy)$iSk2Kw%dTFF;J7Hq*qQaK0jF<{7dqtXJq=*d*j?s{}_>JQ`|XkKFr3k?_ve z37pYD16~j^4b3p!O`sM%J64y`Q&Y{P6v%`Ce1^jPUf@^&AjRebXYXwNBZy(+RqBKi zd2Q!k3@d=tWB8Od;S?$_ZANa`J&3l{Xu^`t$z~I*GXOzKydK6DWWOXlG@o~}74#50 zJzqSA%CWn`OB3Ag*>H5$2y1LxE;b(%p|^;sW{BCouufiqrmbDZbZG3coYN#~WYaV! zt8nR*j2Wk0#;RW;~1w8**d7c=^LsgRNLb|y_ZFX-A`4=no*Wq&X<5}Wx z64;B*IFGY7hU&r5@fHafFqhrRV-C#=;a&2n4dNf|_aM3G^du?ZEeXN#2RV5rnc)_g zS-UR^m2nm0Rw=`HWNgT`=7&wL`7v_ml+{E+_!j)e>$E< zw8#0AfH*EKRmLBKSlZvM(869|+ApZgpF{yS;+9HwtrH95__2!7uIN?RtFO9q=koSc zw|Qil?!7PH_y9^BK$j~e;0NcfH|eaYc%WVD`Uu%EyYl;IQ0G*n3M^h=A&z(hc*b1) z)gc@YklbOi(BIQ6-(xjT3*YfZA>3i(6XYOPry2mC=%bDRC?35~!6jC7w%p_7gxQ%T z=JdOMeV80$%AMhALc$kZoJhdXKV6N`GQ4&5(6N?kv|LYNv4oDsL2iM#3;?JF_{{B3 zSs4r4j+y3689But;R*)@3p2Iq@z&n5;iVEA$xOIw@|qxysQQK!#P6$ueRMM+wJWXp62|OD~~(AN}245jj-3n87LJ4@}Ph>XN`NAwFsf z5!Hkzybw-|e7Ca~BKm+=Xx~+?=(bS$jSw;p}%WUg% z!$q5bkUWA;b$HM}naEAi!5H9VuzNzywe(0*AqGX!-;Y&d+^0w&_3;>cYw;Y84560g z+2Pq5$ZSBPNJK@h_19kLsFco_)IPcNUGblyd}yVUN3@wKvB%_BRP%4tn6-0;wyfvv zBz4`2&h2thrY#eMXlE^JriW9ryK#pvmIpwFK6F}Aqt?0uI+RWauM9T_EXq_IPdj~r zM#2o7{N9dk&fj2!A^HQ=s)&YAcIR~weQ5|dBj`RHHDv$BQvdvRHfhAI=YA5$V>0-A z{&9caM-vf5i9+UQG*^m-%4YQArD1uZz7vnIc(}XF$o3P1Vo9pxy@PW^_>=ifrgc9< zF?y26OI1Lz%hXtbRQ-h4@o0(JSx!PDIJ@@|Vvq58=aECNX_j?RN$&PQP)nl1OLn{I zI70HNIp~wjXS`N{R+f5ikiHBM6A@@(1F_NZ8C3HlFP8hTenYz0H~Z^dUIS^OJv^(% zD9pvBGU;0v=DmKCxh&Na3&Fht9jxQa3j)K2P~zER@^&8a9PB6&^L6q?T!my=O!)rj&m^>snp3}JVW7NNL>8j|K~_E#ipqTWg9 zjl@fKQma*d0kV>G*h+%`Cvf}?$rd{52up*C(=J4UpQ#o29aHdYO2_#qRuSrQQ&_{t z*oIAml|H3sUQ)29PG6F3$UIiLGRzK5QFc*XLqF#r3ltY{aEZ4SL#mvDoDgJBBSemH z7Xx_}qk~47<|HASdt3849L~j@gL6Xr%i?XU@@Z`_y6|c$CsV*W4+<1#e!#B79cjmV zNIBKyYxf}0q<7ygie$@XlN>@O2KFK)t`TOIPj)Q@u*F%`>xYnw9BKUjAHLT8d?5;M zDIgXs$kjN6ze+U89tH0$L-q((GC8v_a}kMdfh8&-z9K=Q>2SkbjI1d*f<RVGEli#QzO&b zTMv4-2~8-`nFK{+uoDW%5$Q@>GeA~gf*wChCT^=dV~uEdS|%DM!!sl_tA7s71mg<| zy89t?V>x<0Qh#|Jey*IZc>pjA^HIfof9LRjzRSXYGYapLm|=f62ynR-i&q) zDlewwhA|sYCq}rr8R7=;TgjvSH;6XH_;zOepPPymOzVJj=-7eO<-8CzK_uYSmB>C6 zC~b^mUg^9UWxFF45T2Hj`H+oTK|Tr;4cXV|-)J4vdlnhV=lA=xr>fF&XdIK2O5VMj zkQg@BM;hA!l|6Sj>brm4GMdfD5z1^9#{Low*i+`KFTbtcFT8*dg zW^b~gCsGbkZv^vtNNuIq>ydk3LL-@l=$FPBEhhqiZ9f;&Gfb|L%9yxoh5s-#d4ey zUIt72-bupzE-<(+%IzLjHo4aoT`tly9Gew@I=U*w8_p2%F2~ zrfN@7av#&#H)pCU4f57J9$gSoTh-*RyIQMz+31v|*4MRv>Ei~dxg=k*YdKIklX>Dk z>X-^~H3y@=Vs(XNry{|zSv7ZnI9W1O*Du?8$wo}{+SA6<{?_{z-Qodg1ZqqFPmE-W z;~x`zdb4;r3XnXkE1WpMgcaz)tpgSTLbwNEi4;V`r&PEa&2*Iju<@w~-l%*v*!#C&m>9NCFnZ`wkVI-(YyO~|}$0fc&N*allW zj>HTm>h|;DPWFseY{-$@*J%<=pAbi9%UUjdQs4ac%P;MOI;L=%ohj!DDx{@qEqDXf zIrH_$&qcYFB<#O&Ku+S@Cu+k!OtrC0Z^y@yKuM`>7(%VooO=%#1gLk(asM_G2N;~efL1F3s;^U*uo-hGbgd`tSK)ZQp<&_ zA}^k__ly1B?~APl?r7S#Pmacy+5VC46e&qcR5|#N8Dy|C$}8wWxVO2EyoWdusUQ$9 zl2-&cz6xedo64xnTFRL=+2Ij(4BC-$`@KS{#LnJ*pXr>Ta{Lt&VWXWry{z0bx>PdV z#~7N)nFRaSp@If_eFC_-DxpIaev6CLFb=&->pGPs-|wa!$7joK88(-*lNMc`{;CY` zq;Cr#*)g;K#5Nqxa^W+c5x~Sv;kfP_o3acgHkpWQYci=m-dbZmd`=1I@>3DYQqc>X zW?Ow$;mk<#Ra71Fi8z?g-7h`$QBfV<0Uq0%g+B~#BO0Bi&&(Q_w=(eU zctmH>ur2J*0ot1HB2j*%E?&X0*TY>O+R}({uohKbc>xGsxS9NGe4}cmf$@=r-d@6z zRoVc7pos>TO^hu~aiWK)As8yU1wY)K!y`L3COSw-of(Z}t(1FK*yQW}AVEO{C&`*2 zBKX^DO~`9CoT zMo#04!y*U#*4o+K2zX;%0HvWqYCoFH-A20})^2+DsCZC$=5_Q0EN!Tr6|3#;nC6#E zcAC(?{(_mqY$EJ)r2)b4zFY@eH$A~?Xzk5D$i4Wuzxk77>Nc^(yUbx#i!ZzK_P}fK zYuRSMm2Y!94A%=l(ZinXA59?YfAp*W5tgJ+8AAi$q57>ReXxee6IV}Siu9sn0BixA zWVYUB%#~35OoYj^&}ZJ@N7yi5%u`wLng{fr?i4n zXhSGS=*G3GM!_@{R3y% z+R@Or(R%6FY8v!G&-9F6Ov4^&)bt-k?%SIkIpA+n0;=jDnHa&<=nq_j>h#TEByIQ} zKYqBnL+wH}V+N&0r)s70Ngyw-^=pxlHq`yH6YW(=kd|IFw@jUR)h!-X2a8%%+lzn> z5H;%E*FzIY5Eo?uQOsIFEBv}ulQ=^RWp!l{zMYBOj6fVBLWVlB=thn!@QwOZ{ z?7}TSrLlwIJus&+n(;!P_<%sP3-NFS+KfupZ_|1<%kfptx!ybp{T9oh=*83Q*eq~@ zzfcG0O&uw~T?=RW;#N8I^F<#`tAxqKU9%D0F13Wl5Xg*ox>NlKW%926mhI#gh{eb1 z?%UctQ|23u3%_=R45azA5H*y|ORkx4xrsiyj6=FZJXNYchtm}_3*~?x6JQi$rVFa) zuN6oZ7}_tL{}|^_tD9h3Af`}*1%6;7yW<|{6Uvn*K3JL{uP7c9F)3jgkDw-&TR)fo zHYSpRERD7oAZ?=mVUnM;8M#<@BCE-9)X!T<-O`4>(uWF2KQ?YdaF&rHK>Xyv};q2=}CL&bvZ+Y}-*`rqV0_=#=cJTQ(iz6bRAT;`YqyiE%FZO0;I9)*E4$|BUd4WX@?J= z!!ec~9I2-ywv(n=;uq9urw385aN#^#v1gj^ZGH7n_-qMHXsJxjzqk^^A>GdlFKC~g zN32J4_azD*3m+E)?>u#nW`2RqfCDr%G@|8Gq4;p`cN&SVH?9WHKE-`>UOA$|4~u0n zUE(pnYFL41&@>Kz&wU)81znS{;96RgzC`-FYtvHaTv}y`3vQ~HvjWD7YoG#;n z{b}-x1=@O@B*Ya5Pv#S*15mJubp8Vq;a5)Cb7 zQxTt-FWpr}oPfUvN=7bk5Iz>0xW9unIm6X%P6TX37t5cxZbg6OoU@f*VYHvl9+Dq@ z#Fn}JLBbMmZT@O?``Uj_`h18x;j(=DoX?1NJxoMnJj0Sc9{KaNNI{^1nIHk1MwUFFc`JaV-#WlPb1@ zX*dgIic>vx-SUL}Cnh4?V@tG@lOjl$o-ig?l(6A~P#ZM8{V~~Cvh%Yb@z9M#sU_H5 zu{akhbRc7d0>p45G4hC1eq{_jgmsS2hiW4m%J%M3)tLvd&6hVZ-10|unI{(0F#!Gu z@>g3)a1NQxwh3y5tJf*c4!fsPBaL(_o5n?TZ;gc(?BR8*!sYw6$TfDJb==T3S;>rl zvZfv146gupu7OA2zE@4C-dGaP*7@>>EEyg3;ClT1i@igw?IMg$J#OJP@R&^0479sH$9yB16dXEdS>Ym1&A!DmTl}kD%64&*(j)=(NST!xE)Qf z*&XyAOZbL_N-oJ;#$PJx>MSibYt=deAvkkbNbOR_<6=)`zp80cXfS{V^Oy7kE9p!v z!KQ!s-LNP+vC_;?7w_qP0u+8KJpac_`zMz4pUn}{s+Bh}a;;7}3@YzueJ~jV>y69y zYXq-`k7nt;R^%kKRxUnyY!d+z%u~}Zoj2^;d=fAXO(4%_ zb#`e_=lVy5p0{g`s(~&aJAev@ebiA~bsC2FvHw3oe8GKpO9*@nZeD?o#^3k^gJg8q zp0n2gMHo_ap1MIfg$&|i(pf1PhZVHP@`$eq9?(A#A{ofC>aX+t8xumM=zPT!`q@T# zM}DCwFt3V`%Be?cO_y)20v;KT+GHwAGd#e8eZIdlHZo6g?kh*Ys2@6@n!r&@b-xRvjzXQIW~)vmO+HS*>>#Wb7Rl6U5WT( z#PIwU6~eP!8n&w>mtXEzJ;30aCOa(En?zCjrw259PB8H>K`xx(_vI@cuLUw97+@l`s416$f_zOh zVTy|qeIIn1JnD5eaAVY0T*;gS4B%Vd7t^;J+iBq|h{CylkmTSt;QM8zgnd z_yOaxky4#EU>4IC@UaYydnZWEm0b|XKZgtu+La_};iszyR4rFF`10-f;Zku++S`G+ z+*9R*@vMOdejEEIOG>y_i542m9-5`b@I+c?EL9^Wa|a^ zb2o!^Wk=DESciut)x4e{^9>IJe%4+k=7e%T6!>8$5*iT4v4XC>RCXjnf^A{6Tj-C; z@6c`Z-qj}PCuvgNA;m0Kq%;t^@J23co^Uphe8si-&*yiy9zZK?vaqo<&lTuY7=pfJ zOd{SsIB6T+*CxKUYTY7NX}!b%Zy9=bsnbl4%5YTA)jh}0V?Id$X3uUt?;gE_{3>zG z%J|+y#Yuf{qJq9RQMFL#(~{|4qTseWAu&H7s;u^;D<_DQb|-1SvJ8xt`! z3^i7sgLD&P$a$!d#Vk zC@M!&@_!xajCWRF!k(J5#s)s@y1ZXIHEHqoek3VB;$)L=I^6%9UQOPG!pW59LG?rA zOClJAvKf6pCv8fUe~ck=)}ypcUGP63iXD<-eZI$$O(2v6PN?*ps>#L6XtkD=1hsp{|5nDNW z$Y`5%Ckx0LPSSwpQ>3oRO&KA~IFTY^4M-lO(3S2yoO(nq_344Jn1nm;YiZ^}s&qxo zZroFQ#vlJ3%qXNq+>@bQdn{xB>B#YbT1CAm{Ex*G^$#l_@b?HRsDiy?uKgS11VJfI zJ+dkiN!ezIuV;aOyFM9p&PbO3U{jLUgS{q!{Uu~-SIbGJYEY{dzUwGWoOn5kk}TW{ zhAuTc6MP(msA^-2L(krgO!cSsnzA3)db@B!6^ck%ttIDAjC3s%zH4Ex4i_oh+Rfr- zvbcyXSVA`bw=mm$u$hO zqZM@Azr6K-Yqi~uxO%a8pAf&_G+w;SBUUJC6t)!4?oglIYqYe4iQpb%Y=pv)%nz2* zgFl^?n}T54s^+j-uQTbBW*>ys;V2-HVPI zh^TJJWDq4S5`CS5Z=|&F8{Q_Xi5NXG%?6cnJ4+n6OEme3Y7f~XR$V9#0|{wb5BOr} znD+~oh9rq`vR_@^1s2}<4(nv>K$e643e5UIeurfubuE({*P*iP3EfxNk>OgB-y z`6*ymP=@7>@y<;@Xa*8NZ}<34ha6LzXj>-|4Pw$Xv??a11O-!@ok&3JHl@Txgv`Kk z#Dh^iE_z7B&zWAO{qljAoe25oyn#?&C^FWliFj_w23bOAxI*)jz2)^RiC>fH9;g1* zb+`7?yF=Ln;~npzk8n#2K+tC;1JVg^yU+cdSvFn-5UL>fgqc6{x zXKG{g(`QGW{8Zr&roqW;iQFpBvSeHXP;00Rw(s@inAJKhbo(2Hi?!a+B)b-n&FfD?j6HLy%Bn}BDQceO<`2Fq@u)G$XF@+O%s2~` zn`R(x3$wRBH<$5GRqYsaSv$0j$c>XdJKo6}2oWmQW|8S~(IGyoT=uf$(eWtcf6|27 z=}AG2MMJ|&P2Xvy3hkNPFlMvuLj??oS2}2cfpAz8gRVYEg1&TD%{JEx(PX>^JEZAb z{1E9PxJ%4Y`QvOC*P~k$Slv#UwPM>ie`}?Y5ZeUpYdmjXw*EF_0nLi!wp+F3w|ub? zY|XO?>dMTYp`&waLZH3q)YjcDa<5vsmQwc&bc@Q{`_EY~;@^%?(A|4Ld>-qp!83|D zz$7QXNKnf?lR=z1crWD5BZ?reIGu&Tts|6|-XA?CmJOXl&-N|IQ=FpB(i>wa*L^dMyZEKDu6(7tt^v`4Gv(Kg&Ck}bO?fJST z9!is!8b*74+IB}(ufjPt&Vl>X)LvagJk~5dk8k6mX`T+m*xH!58QQi6wHg z#T>9yC$lQYy6U~`Dt%w}LGJw7(65fAyXIdHYSnSNM}0@HK;W(x^cnv{SpR>cr>yq| zh>&J@=O=U`v8htu`cl&{)a=cWXTV;{zmcj)iNMAwp~M4R8axumKl#`XM)>wPb7w}i z+J(9AlEM;3GG=%)B7cStb4B%F-k>-K&0o>X;0jsdb#3ezPy~^`j+x)=Ha?>`WM({m zVO0frG?fkd)8eYIccBTChO|i%1?Ncnu05g7ptZk_+xHl`l{&zEK14ufX&&PP3a3gD z)$d~*{g-Ek17q`?iLbe;FZUcD{?i(mbW>AxJzSr8>kM?Qg-E%vMX7}>+A7?#`*y-f zvj@;jlX+hf{C_gp|D&~f1>^5VR7gxqlKu>-bvBmI7uxe?sC3T z@|yncnsYn}If%jyY zd^0}#3fkd!O?|zFBfB>GRgKIT)&>xqVr}IUzH*bui6HA zFfM<;V*$-$UNvo-JcJ?ov^pDwBTmeWSh!a*F3^d9l~`m*Ia03JqZjt`_^P32;R%*T zc;Io18hJ2IG}DO8t3+;qZ-mG3ye_A@=EGrALbgfOWCipCtcpW`NR~)gCjv z=h1KIpFKsW>UH{KwzE>xc+X77$9L0AlcNTj79eJ>}WAj!3GRC2LZ!x9Q=X-MdtV=2koMQD-L0$ezYbaWrVhH zrX=UNd#4oWVc zA`i};IC!Z@8Y?{83VKImDgOd~=RpsfF>qkaenMYnvg&T))?r#F3&pEYEmPWakzM2+ z;S$dY-*L-(Fh>bvVj2BiL*(?8mNnDGr zU$!q$P6xo4#8^}FgO4=?6DqctzE@Z1VqdKZ-J=e(fE~!hG9J)#n>?MK0uF^mDgwxg zsN@G`A(KUgyG~@WkK%mHJdNXS*0x9tv6xC;V>)G6dm{N4zBvVqM4?y!3aH;cAqFJL zZcC-WrMV%rH*d0YwE=H+Jnz0h7_12qBDTax4}NlAiC|dhQEf1SBIS>%RCy^gu^-f; z960&Pt4SJ25~l_F8@Y?2iS+VZzr@bpgpo*x$V>kyl?gKD-pof%GM!IxuH|}lVwh1h zZ!R=)B+mYrjYUE5UFZJh`Imj~k9`P>^_Dgf%%~8@t>RwnBYbyH7lLym3 zSo1jXI1THNPBp6iuDC0&mW%lUKF@*ii4g(|s5>^w^TWAD!KVpuv%~48}2)n`1K!A5|AE_-6zT-YQZhlW=S3m23(N=i%6h^k78avWp5l*rnCHThR%8_mJoWV(00J{>A zgAY7zxwM=S%RSqwin`Mf3C`I zUyJkLuGKvi2?t6(dRL+x2L(T|8_t2%lizyxXq=EwhtD#jH2Yp!EAJNXk9q*udrQ&( z6B~=@kp{+x7rgQiBF$2A1H%xFnCUI(`oS~oC4M;G?i&bt9?S6V19+Z60}Eyorn zq{}bh?L#(_6l8Ucj@`8>h+ox!R#epyn%4-#I5lLLWMHJkNuZs|CjW-!H{z!A-Z`2X9H1ZEOobU<{zxZkD^X2d$odUWI~_Nq=EaykjgF ziuQ#TDl1Lkj+(NVz6A{I?dQ#j@|k4<*U||%D1!f=dB>VL_4!5VLZ+85K1~9iM$gox zpFTtA`o+rTO4L+zNB7?(!3xCsj(3 zrA85qhOCXCPrxMXlx)JqqSgnd}S3oTaV3#Bf+UY;Hh2o&?ym#x4a9 zAMb_6mp~WL(b+pW31*39=|8zI4$2ESUNcU<;M0^dqpiUgqF3}tpkjsZ<59?*bWX&5 zk7`}SNM6~BHI+P%Vn-R_62SY(a}J3GjHV45bEUD!=75f8aXkQ$!1euZKtW)DOc;~9 zJpr;x<3T~EMbT^{PgVo=k_AQQk5#@0T|Lmk#$a@u?lA>TfDl0}ZgCZkq%aTSGJ|A7%lwZA#hPcVt7N7oHd6 zDDzEfO+(9=q8BRVhGqoNSj6chEn^SSU2Hc9;_+BDLfJytO;C{dDh*xghaw{F-IYCz#p>IJm^h067BSn|JHR=7oN zOm%)z3~@7YgX*Og(Ggv#Lu;l%8QUyDjV2>QEYdEUo;GPTA2gzKA$UvdIW6 zjue_oVgA-4XtkxDOSaR9{V8_V!Pz*?x6&NvZL0ep$9-s$25ko;AH* zPKVRo5y#H zqGgOUgvigBz{r?jVi_GBvhVTt7IT* zv6e9zekWCGwx$NcXA#$|F8wpAXZ*5oFx1lHSZrd-L_6A@EP4RtlVgl7LGb}0tVFmg z2RR~>9c50fO;7SCrIWE*M=-iGi^n+HU9UG9qpm&VNe{j%f<>FG95a;&`mKGMM~l~A zftTnH(5;ta{3zKRjlwJ)PYLF#C)Nj(otjKuIZhi;b%RdrS--i;YWdeRsOwSEFfTBf zU-@LVa^mbOV_5znht1Y$;XBSK{@&PuiViJzRB=;L0rEolS>7nVq`^iEb;1H$=8w0i z_Laj~iAcCQqs{cE%@jfc#-YaYD9@E8OZA<`xeXlWwxaUU*~?RG9Luh&^gcNd>=_1& z^s^BtB^aJ`(Ffx^;dbD zXfsR@@dln2hON(NS&?M2k^%3obHge|EapN-8j71c;ny5>PaGsNks&DC~rX; zD4uX@z5Y}y_?6o_QcDIV(COTVI8e9Cf*xU?V)vmcl8i!R>u&hxv`4aDg)T(}D|;iX z9lG&30tuwYSulh36mJHDO7*bSEwE@N&?gnJQ)_FVH^oF#SvnwzZ0AS{B=ZX=8}gZC zk&}WvJ@JJ8gXXPEFj7q~Aas$DzkqFjz-r#q!Dw8e;pv{^YE=xITy!$uOZYlriS$NX zG0#@4MI_9ZT1al&*gD2nIVV<27Fr{hamjn_U15(V9Nt3R5A7o;h08y1rk`$m zDCG87K}&|_Ti2m2ckmKlu2c`urMNlr^m~vjkD%CIKcYMAtiJ`ZGXJ*>H=n+#FmuAR z)a3NTFa|M69SU+`Zc{bt1jz00?5VvwHw6%y9;7l`&ei@*X?d+vDWb?fE41&g8a1f{wmoZtagVjkA_x z-KsN$X?NUZn56B#OS-pK>W;HFxWoF*SDJTG*JEt?jf3n4P5dk6+Qqy&Un|7$BJX3J z&mY=EN^LR!7v=*0EeQy)bXt)5?i+$ft=ZOI5HChm&%z}2@X$eBb-Ce*#SNSBHv-c` zs^bn>Sk&=3*rvtq!Uxd0jEYtaozEwwWpDr^2_%VblGIVpbq^1^HqOBH>f4m2(B`y! z4hT-EICS%2j*zfbEBrEG!r<$J5V$4=O^o`~!fdZk-Lc#>)R4cr#?xNZNO}19xP@V@Fdx`NKO9QD1Ej z4VP!t7Tt)Ibjp7QAZ6crNKb4+SAinjnYba~(axaBaSm$ODXGx4o?6;0INfR}4P@x! z+hPnaDdzT_&;5sp(5B_t&#-q2LPEbSo2ro zh6kY0FlJYF$#RW%UwK+|sgiEV9N$57B5Lk$*>gmG2z%-@M`TGHpaS6n=ryVDz8%U=Mg$Mj3EWRw5aM!h=}S4(Ta9YnJ;93+f1YYW3DHbp{v_>a)l@SJDR` zskJ<+%UU+%ke_0utH#H0LqOdax(>@oZK5d9&Pasdb1!<5D;q;>QvlK6b4+*w4eGZR znP}r7u_&X1-D1qq^M2_n!sN)rSp~AD+!)G90$bL6Fssy`xauO-QBm*&%+#M73pE~D zWb%XET~;k&6P#jF*Ge8k4yvdMHr+?$F@po6%lxR+$xyKxw??{`Fo;3>4_yEEf`a_3B3hn5V&L;~ z3k2se-7_&qdU{rVWKR`_9G^rP2?ui^q=*QaH%L>w!<^?|Xpb_U&i3jtt@6_lP zJA;l>vlZ5n)v267#Bz$Wn3_W*it!K9n`TdPFGE<5;*k^P+a4Dn;J2PzQnSmjfuY9B z0^xXAVrRX@ZCkFGmJLJ0-8)_uw=}fO5;r^`6wnR27FGnwq2UK%YN8swe)V1Rdy*_i zspZZM@p1HJM!||(Q|#y46nb@4s9R?<>P==odbZ1N1noGE4Fm6m?w|tAu>i5C#Ll4{ zDz3$TjURw<`?$uZ{?tlA0rm1xT`H2&Qrmt^msB8Lsw@g?!He$!NSDbvP zccmCVLc=g}FANOe83MueBxZsQY}c26HxgtrV-hWyCyY@1$GqNIhX7v$KcU_a5#zv5 zi{L3P7lxCX4o%*_`38q7ZZ~{x6*QEegC;STZonlbKp4_W&mq3;UcvHu*3Re2BZj8R z*`?rYf~UHnD)3OYiFDgeRLmdxGS$EW<0Q$w_=`oddS2P@t`OPe-Z3}7Z$l5IK$+#) z+*S1DEx+whlYH)8nZ?hG_{p{VAz{p=KK9I2TNh`#{gW5t1fYX|#P`wvP@A~RnJ)c5 z_}%y1H`5sf6|3Ad?huFoHls5ZD#krN9Ya*hERDeW>E}EQD~C60K7)U@SUEgQ>k1;i zUH$${Id6m?3J5C8-Z@mZ$zBpbtH5;!wMZA!9T=-G-mxL_PbZO=qIa)5%` zuALI)flvL5+ieT?50ieln|8-r%mVV+7wA^cgQ1}Zw}78(?ba^kfB z8zM$W@NY&e@2<+oQl^7K)2(icT9t9*yOScHBLy#dZp*}{d+z|fR+V;6_&V#di-xjC zol+KQSN*4HybE2ub5d*-h&P@%^R~KifCETh@D{G%AdLNpk%S2oDMdc)oKaM2J zaT=Exyje{AVvn;HKo4->!Q1ui^Tj3aTVSE5?emGgKghL{FDLg&i3 zrKZWBy(kH85s?sknfbZoefY&}1U1^1Q;(zGGo2G$(2F?AB?$i8Od-!JLRn~d|9+(I z474q+LlMLL36SU^N&J4si3lwyJt~hFjwA2$IuE3t#6e@|tIb=r@{RAw+{5V5At50=! z3t3A{jNU0`GC56 zP-s_fI~D%UmSRubr!S1tTUqh8BGFtQUFIbVNP>(~g7^ilT0A>1WFUc=pww)}EoU-- z-H|iQJx&@hlc=CvS7!+VL4$F$Gaaw7C)Sf{s9&$GXBoTc2qbcAygPaD z%0IcT4_k)7mge@HMUrn6B*paa2~|}8mc{W}s%AZwh^s`Q)ZTSL3v#S7Mm|pafj&Lt zLlA91ja+)8xAgYF5geycZ4Koom^5L|=3Tnr-31J2EA2VimmlB)GQ;@Jk`7uGHbXQ~t2LUHE4DIg13-kH^xz6w61d zIW;Vo>#-;Rr^r1zIS;S_N;=qR#_IQhLtXKYXhoVc05~)Jkv_`vpbHC(0FjUQvx?_q zyL&K^kIOBDmK=CIkd_UW47hk3`w(0n0b_A;Xna<1euqe9i6rFjr9XUdeIl>xCD>9^ zT0&M=Ec|>0;_D+CXc7EK9!}h$p(2UC0a;DLz(Rzz{)%_S<-$hRK#?Vzwmng|F7BC#56C&{(7-$V8W(GsF5-*_;gif1b_p>btrpH0oKZQ-kC z6bR8AE&(EZHugYDvc6DECjXK2K0yPO%*!t(^9*J-AfHwZCf5dK#@+9BnFANSS6_no zu$b5HCbvXv8zm`u*hXuM?^>;_ zvjx@04=X!q23GQk6<|h@SxFHH%R|8eQlLrd9@&69rplR=8UG=R;k7H(tmk=1d&Hxd zV203RBy9KzuuO_y@l#7GR~y=7dp}U88E|_~UYNGOY2h1H;1eUD1HTJAFD6G6xg zs79h`Xiz5$`2=w8Q?GFIi3d1=6D1};ZpG|^e5u%)ktmuabCe|mG_s@|iRzVi+kT${ z&Ad&*mB|WhY8o8V&g+DIlrbO(jKfE~X{Ve);mO6gQfa&1mtcX~-Qh*OMCJF=-+VYd zF>6P$#q7{eq#uXR+?Ss=h;M*0Dlm{{wRUlT8--=7cRpiLswJ@Cx=^ zWbg|9DivQ#$?7MHoV>{7YxilJ`ugh7O2rpGh{&MaAtJ4Y@P`nT$6)m15+*LV(OS#Z zIZyyI2O`I=VCGZX%hWMIp`C=y$AyX0*KJ?${<4LoXElUjGq5IQ)^#FmbB)_8fd|n9 zal^5>x@ze~a1TD>dhAEJJYnIaW}^v(!?%XRYgk0>mPA^Ir0TaZZEA4-ME%=DQbQZc zK>YH)TxVa8kmjp!1^QIOd~=xD1QD{X)Zbd8A#Q4X zb?^#oOpY@Tj#<36-3XBwJ?eu~fOh|xg!m6u{C_^cDwIH+w4(+5OrWt1KJ_oLLYVlh zfC7xnH4ZDv9a_{P6r<@Vw7>+`n%TuP?mWIm3lSMIVpq&|p@~Z#+{n8 zi}i(Xw!-9GZ*j~LTzCFgN{D=S`82-+SleXfjd%M7OLD00S~3Xa*QEw#J6SNigqH7> zyChdg^u#^(?C2Yc<9 ze^Y^;D8T=A3R_apF!i*dbU62zkLx;9qKg21IiH_(!5_Yr5=y@klTW39*Zcie(eCv$ z!5va!W&Hxw4H$#;Md|P+Pe-K0gHto?!7NE-aI6(1(=Jqq878tKga|Ax9OQ1wx6J*` z#~?ayNp5;N`sBF1U)tweISsN;-2kx^9kPbIrQu3vs#=_1c=$9=ueMg>y46>c%vZMU zlL4!#l0mXEI$aS|TA3g024aYtU{Uc@5`6K2lQ??dR0Wi zRyn(^$@kA%(<#z(+3Jtnvhbq)3bSOR1=$(QVy_Z80h z*F?ydllC%cZ;wg6CER`@AaDooa9xGWYy1do9bC89EN#=cZJowOm(VlbfPsAyjI zUcQ@nkL3RR;eG2w9)tK#cjy}$4}9e|unr^~XGk7YvmfVye>5{bOtIVG$EnNG6;1uZ z`#R64$Y+iUFxlwBPs#9d>>&nKXq?V3X{uXCe4CNPYtmUWmK&2XRVz64$9cp}nho!0 z7bKs`wZ>|K-U77iVU@l8LHt@yW`v`xH+=o;^=xsqaZK>S2>_Mf#$IIuQpTx2;z3#I z;0yFl3%7SV7PtgkqoEN9`AjPsM&;Okbq(~X97`6Zd4%nABtHw1Cold5#FIhe=RfXJ z%>SA^gK4eRB0=Cou9n9fFReII%X@HVOrUsh#qxUmScu3n3PZOffESQlG4%H(v3{kE zq?YQ>fIFcR-rWR^sA`joFXtCb=Z8(o95A6A+7DG||yvyS!!8yO&lssLgl^UV#kW~jlUUm z0HX>odoN%AUTHOXYUYj{QK$F%V}cG>{*fZu85X1N098Mg3lV8CZYU=|N`@2X0caPSC6A*DyBu ziQUw=M2+jy!EvIV>0JA*?Zz4Vm7T>kukN-}T%O|1;zXLlCO8{9VRuJUhijw!hC_|D zywNY)36?Y1#K0(}og=8ngMl3EL&G#omY6&F1Jde`nMtfWs6P_&P_fAW0s=~c^+56C$$}%>bztXI!ey{;T zK3lsun23qvFJ>JC-K*?|o|eF~`kof*HQ4Bmul+lfGuAuLvN0s+5VFj$d{cnK{i&cLz89pjZcH<#;+WIU&gz ziOL9LguLxNDCVQ{ahrib^I)=!2xjy~TgG!CgR5PW{DG1V`w>}rN`dAVc8t`-eG76t zkmQiMngkUh+_;5aSM&rZpvw<=OwK0$Yc1v|hDTVqcl$LNh03{c>l(v%X2Me`Dq#Ep)&?327xQPqAZE%4PsWb5h&Yu*OnERN!LL zt{kv#3UkK0NW)3N91-IJvqH1_slBs|(fqt_rq8c7vw1e;*PzR&=dOo%id z|LQuzkVN^t&?C2r*!W`kk{?sUiPA5yl`y|gdB3#egyx|==d&}LtF)hVSh+qP6NKM? z-0iyG#D1rX$p7aSWo9i*;|?q#8oOvX8(kQ?v^^x81hId%2hacNklfeuv`7GmMTpKX zQz@_rp@2hA9I?x#I+m6(!Pl(hOkJl;J03*UM2E5DI3IT9hbdT$wIZAwlLAVAvV@8a z?;1k-6Df9JWzzNB2L2u&xNa3~NbE+=THQCxJTRGXNflCKPR0eN$ui>rvFQM!-kurw zEHelcJCFT@e&N^GuX3$XG8>*l^ssi^y5BA}`*_Kg052&{=!f=?w$<$<)TQ`^TF$;o zEZ*RdOKUHx*6n^)zRo%+i`Mv%?GH6F*>*30KQ`>aQxN_$$od}xjQc@hH7=*0k~Vv@ zhP!S=6K)`l%%b{$FRvDmUp_L9Y#LFFM%}FX(&&5rx`G(8(YiHG!;^K{kq`T9`l6@l z7{7f@xbhk^2o8Kq8CC!EY?I&~9vjVbyDScpyN%W{vo^(TtFaGpgm%YzYrQ$BFRf+5 znRwi@qcJk|9mFCX;kR%rW}p`!`roR=1{SV>#^;}$`<|hoOg3m%4hJmE2z{T z7`1T-SpAiLu%a)C97mL4f#kIK1-YxpiYJjG2T$HQjl}-XmJN)$fqekVh}s)gr$9QjhUr$-_jKz(8Mn@ zV)2^nZ@`%?jOzKq2&Z^T-Epc1&Fq5R1mi@r&bhY)_^je6cG~1lbo(kfg6)BU10XGtDkSkE7|RAm3{ z1Km3r*0AIC;=t4x5pmBcSQzAa608_RGzGjkSViz;%g8H-6qPWdW~VJEnNCD{vuf%6 zfpv_mzWx%-WceqfU?;4uVn%2}h`kgEvk;c#LWKp1`AW+du`l_a36N7vgzX2Jz31xw zV6UyG#ia?RMI4l4gy5A6#}!OJty&H<9GyohXTC6(Q%?oIWm6Kl;Z`x%$tds_>bkYZ zK9uiv&sg+}(a3wx4h}q8+XaXy7n-~TPW=s~T-nXENS`%-R3N{})MY>6zCpT9C&T_L zuD-bfLQh;m)H-4$V#PoN)UA#u07a>xVU^_g9bF*S+n0CSH_w%2X=DsQu2}FQLs|Mk z5d_EReG$kN3+VGO8-q$b6D~Rwk_5D?DR|)}X8ibIrqJhP@_4|fF4j}>6Orl+b6IP7 z3mFG2RnhV|;g6*isC)d^tg}BBGtOtuU|T!Y=DPN+$_yD)AD$C8pIYy=gSdo4{}oPA z|I2~J_mQ-g3cnw)Hk~2D!ubh)r>Dmjcs&c6kh;4}yzqD7X(W1FV^q9BK3j7_eYlAr zH2PWUeSnzM&(PkQ{=qA3jhGCQKK-AhoFHd(sgh_O{3!lu!o=|pH_^X?h7t3GaWi4l zgq`w$EtPxJkvIcCevH63{p}mE^scVk#c0;IeX9;n6wgYpHLH$9WEU}xuz!IxnIHsn zaZPpHb&dAjN@a4~eRw!>Q1Dc(nLl!ZTTO@*xXKa^~HT#79`} zC|n36e%`;bocz3x>(Z#^qp4t_92+-YW$Pyd{`x)iyh}yNU}ER>Ts4@RY_%rw!KHo* zFU-FPy49u|nu5)dNy|P@i0ktO3W`+A9xFrLhGZEo(@#?x`=4`~l=uKI{NJKR$lpAh z>*NIl0d@B>laD0zk~PL)*T4@>##-?D$7NaARk?C%k2;mxG(@I8J$3)KDhK9}kBO9C zH8@wkgL*|fbN43ZO%FzOUcoSOrb>PY?R}K{R(veq+Wk;?^bC1E=z>DE5I(t-fF5ck z#{wBfaBNMuh&v5RRV|YXTfv0J4&6u4(cb`dIHrRENFVa-cN1OyP z%JcgQ7^_M_mjsw#a`+x}ZJw^EhA1Sb+DTM+@e%#K%0MI@9g$2Zgimjsr`ti`0L-4^ zikPtg__I2>HNwPJhjXY`KAF*!{}J2zEKH z8^OaEc!K6o2pekQD6i^?!~A=xbgr-6*7;To_JY@D6;!~e9t1xwz8|#Oo)sNuUD+*_ zG;3S#*yCU&;XM7B--%j=@7sd5?FfbNVf`ndZb*HZ+p(jJXSbP;SePIlagJBlit-1q zb)%uWQ~7v~SZJ&yExro$9V3N^{1^gNI>!vM1usT$=C31A*4P9jyJ?ISDT16kBH&0j zEL8}K7+D<~Z!hbL2hf{}l)(C|dy5fqv9!R%aJ>RC$TQH>i+sgqdGqVVA@1Txi;6xq{To@c=0?G!9ZtWYL}s07#$bY}L;K93Oz4fn#I5<$cypP)oU zt|eKl--rZFb4)sTkELoA{#+`iA2{OH#d)+TG}*c>94wuP0ikbXS=y{?BJP=KeI=w;jlv2 zErOkeW^L4V8+wp<%hAN*C|vHY0v@D1J-bw>m7SyE^snkZHE7O)&)if18vD}(0G)3v ze{dp+K{NUmMZ-G-yIV{g6Y++uqR~!r`Oi!db>=TE*O0ufxI+3?1_*|ry2% zMEj3V$nKO1S*k8Vj2?nDhz$Nwv_xOPaq8oI|5%q5JKQPK&Gs)_0{nUv*`+zE@8Yw` zf9%rWFn`ojTsiNt^$%Vw^%{P~CSC*fz;!|jLDqAb0!9-7w+`u9Zr%%vx*Z^gyMaRc zWMoZ6{$CZ*cdtOYZ2Coj-w&cfhkCqx5hI5P_lalg-U|rZU3M?7G;1D+UT}XLpWc8w z66;7NCy`pQXi_OuIM;7BtF>NwJ@X^~F(@Sgw_^dT;Gl$9*8w>(O+>FK0ORXXP#=0T z1-+qHRo;eLwuTJdk`Y3RK0^b3e$AcQhU&gWx%sfe$;Iq~R68jnIWjor$yl~Hl`cLF zp88f1#kj4y^2WP!H*u`j=4uTzkcWK<6z-U^AkI02t08hs|AW1^(9ZmpSK|_Q3elLjU+mC4fR^TPETwE4!SAfVL$=iTRZx(nJ$YJ-u~OFlUNV z`vXBA7HA*|=*`CmIED+s?P^Bua^L}ZBE8(gj85)cWqE+vEe@fb2yhUYm5rsIvKJi! z2KSY6p@{H|U_r~sKqBqCgvqk=fkmF`ihwDY; z3n0BTe`eA@`Sbr(ilVX_=Y6$R|B70-b_QQ20lpBD#pGnQoLc3yo(_441@s7-Mpf>dq2Es&g_Hzi5Jy;rT*HsvCN-lnB-J1)Jmy)qlIDOQ`=0 zsf=qiy|qXJ(DZ9PwySJwqzo%UR>}>mvFwyhP&R?4|fDS>;NzY8R4(1@B++?E=RW&Y9CMRQqk^vRE zX9ue$)63&EYaNWj^p99Qb(J<~SFeEH_qY$YmyqvK-y<**;w$dr7BdDa#F913&R|q_ z50iTpium-&hf#H58}O&8>?5b|JLA)+?Nj(fp*dQdM8TC;&*sC(kGxhUYep3gF>N;2 z9rW&*gLp&Vahr$4=7C*DzpPi_?Wpu=s@szvS`#tj+Ht4$OxtwZ@tse(o;AZ!H{1io z+|=1mX@2nIfIb5Q?A(6!+%aBxftqo4f=(m(``)p&R(rJ2LC#ztPZWT}wfdN3Vd_@L zS~(2Fa!Egg=!sfQH#;NzC2Y>9{O;r5ML&1NfeoTQ_C@BMj)lF?ZDjJ*KT9)oSF8Qrs?H<;=O#JVo?nKBnhRc;opPOw7UDuN~$ydlLmpuZxADvTI|-z9m;) z+`qVz=}A{t?7aLvm$2dXY|0Ma`X-XQ>nN0h{pe=jsw zDYF94SmO_}Bk?d~0ZS%MYhF=l{rCd}Tsp)G7UYN^lSJ{XHYt0%xW`N-ZW^;eZ73yO zL}rz!Ned+`jz5D+O!m2QEu_g`51@JSS)pnqp1r0ShhyN;EYLN$;voh8_@?$uKKxWVdY0@cK)KXM(uM7DmTK3suQ| zhFAZY;%NOg{Mai$WuE)lyvd1NsQkvnHwmHI&RH;%cde6B@up>O_Lz^ONMlU=IgJK< z%<_?Z+sihsSYGCL*Z4?NOGewJ=Z0B}-=)uI_YS6_jJ5fHvkZy9QR&~(60R!J+xZoO zfO>s$5K5G%Y>1a0+nqfmYjb!TWL*hG8%5FjM=E7*M4I3DCL6ktfkC1mLJYkrDyxa; zu`U!$vb2`{VpOUoGNiPCIt<~Cen^r+o!C#wicgo+2xn1^uwVFSVBMsec0c1~n2iZx zn}-<#I=YsGi>Em{&I@Tw?o+IHUo_5Kds0qc1^G+GFviqoxF`;HM3-8e-^)2OrYCbO zwSSsDFWX)?u&5Tzo{B$bRELbwz1g%wP~5IPwZrtCO-#G6o+b`noc;d%QHpF@nEDN6 zo~(uK#X}C<$t>1kp+j{$DGa5fhUNBUnARsY9l$$1TjRs+zSzg@%uoi9%BsABhNVQ< z0Lh0>Jx)dQ)wi~^1~!s?lC?E=vteYH5#+`Qa<R)?k&%uOI#fnwJ~$+}Q0<6g|T zXXAlCnoir?`B)47+j0*wCmL46{CObgtze;$Hmj7dg82f^Y|vwWg*>faH+SVbGX1!L zw8s$`J7`qGm93FXi~0Xg(u|LzylVsCv3xep<<_i%MMqo)owi?r@&66d%8E~wfFoqg zBC<5+SB)T7rBXd;OW=x&=s?W%!@Qbp6V1W=B@seNMEJ-v>Kj&aS^H8M6}UyCXb-!* za2y*=JcPML@niT2&B8{ElVdrH(Gnn>wmZBNAd^S4CHy5;R$*m2zK+KYKqR(m}pAOjj>i$3W-ZHwXEomFwNr)?PH{$Lt#E82)ad&r!yStJQ zcOh=X-Q9`1yIt zTXuYfE>3CQZc*=|P3C~Tvv6Gf!$E~)!vUOd`l!vG%@@EP6CGGQEe?w4@)+Jk>Aqx2 z879d^(k_A=7Ks9V^kPvP>5G>-pV@V>xpeg*UAnR7C=IeZ<$?x~_d~UMPivR1;qaOv z-D?ES`wgupGI+hzuRK&QDekYJ(v2ZJJCVPDN-wI`8sd4TsdOHZN@6>mAArQXd;xfy1^Fv1qr$Ow&O12h)q zxiU9EpdS}z9`wD4VeitAPtCWEe9I;eLGSD{Rv6dl4*OO#JxfKh;e)80&v=dg&oVAYW zn+2aXQJA8bF*R*Z0)6x08Z>$$z54cu9;wQY&S5ky8_hv*iz8&*)L*xhrEJ{Rd9)l_ z^ltaBSCU`a(3XGlOmsQ}G3qi@iTYmo|F>~!L>t933BCxh@E@{j(uN3#(UZb%c*ws1 zNiZktX48XkaN-*X@6hL=pCJfH6T4g`GPvM13E+gf=61us?;MkTJ0Yvg^ahuX!y+my zjC)R{nAXqvZ5&IIsgGF-^x`(!HgVABpcUTM(CTn#JaNsD(U%wppZK7`n?GJP3==*a zzi0A*->Xs7Q8CkVCP~uT13|PD{TTmGI}pC~^vM?ix~A&Oi{6Z@K@rGdw(vS0pia=) zDaz);F`>_Dcp(ZM^tzwOZMqS&RBSnNQtS7yvmuI@9dFUUm?7$Yr0**iDilobVyM(B zl@ik(I+A&E7Zi@=hs-%8ew+mQ3DIBZ%p*_a+*Tny44U_QEl{cCN7t zAB^G!WodTLe;LbtQD(Bv76YMid%k`zvrl)F9929cc90|*}&!DGm7P@su)%@#aX|-_hu7bT5X{%*t zu>*%q#RD$E?lc3_1xf_V17S$m?i}czx8RZ4)*#W}8VACMz7>%99-kw_rfbIZ9e*Ya z4$kuc+a*eydu_;I$Pj2{_4X1pn^s8iQn*^|1rV`vj8b~N@tYAJA(NZHj|rw5(-`Xt zyu9WrCKhxi;Uv27q+2FL+r+G5PzKaU<50xjf&!~$Ru-Spv#!;INPO**?YgL9vSVim z5VC@i`hX%FsZnTVF`IBJ3<|B`SWlS}7>qb>E4hFZ_oW zB+7Bv1#(7wuE3o5%>t{bUTd3>CU9QqaB4{1U%sMdo1o*m-UV{ho|yi^D!vahOP*w% zhxMWO#WAhb(qezQTEWUF)EBk+xV>F)oi5jnnD4z!;@@nt;57&6`_dG-=^jJ`WKH`C zp<#p_0d}zL-Z+DcJ4J*G;H9VzRv#TJ!PouCZ)26;_bxEK%1T618wbKs%LIi-66#`^ z*;ytSs!c14odH*)md?B{4=Tg2Khl9<@ew4Rk1zR$Q;4|UV^ zEW(87p?d*YS(&(^eX`SO1^Vi{HPc`{S^H|S$;o0==zWZ#9@?+SCkAZu%@mU=`_eEd zG-D2AP|3nfks&o);9k~@nL5`7#R?eKeO$MCr1PU=pWi8O4X8Asn7j6v_$(PEu(7+$ zFyRH^z#eNc_Jq(G!yN^L_i&gESu7no40(!~_|8b*`8{_s@8&D&X}3iKaSrNX(}5$H zC>~`j$Z*Ef)SQQCco^)?WEymD&`UVdeyR-l#m^}L+db48nXDgP5ljSRc3fWDItDk< zMB0CXCZ*#$F-LjL+ zLPilgsr{)bRbaavV@!=!@iIi6Ptpj|1Tyco%+xT} zmJOB`Q|DvPARyul+utCVseaJ+PS{?sEX^UNxkRc1Y_%gz#UPZ)n?^Fo^F+FR%B~>v z(tcG(J+zu$a0s$_tst%yUIEvA{E@d!)E#KP-DCaxyq)lG+&JSqZdOOo(KS%(musTUlLJw!&g#1 zHD@vzg5xp$NL6*5wdWLE0}aE-@hUB-B z=niC1H?OX^e8?*;Hw*EXSsx@j;PH9GW8#`@PFz>7gM7)1ci((uH?n_su#q#Vq+EE)EU*xLu{wn%@jucpF;;pq+gK=yDNCMKjn}rb(7BFH9 zN6{hd5-PZ8ZX?0if}1(@oFt*yo*V}bKl&X9+K*Wi^v|CM>Z|R#2&ylWVyBBqOo}sw z3v!U18fo;tXzSVV^ZHo2l}w&~jbtxAGs^E;5W7=j={B$MXfAM?&UQz$_@>kFH|bbp z^j-+#wE$Uonmr_Zhbi2p`~=8gZc2Psx;K}vb+ybF--TTQ@m!Ex^T41v+^g*Xr%Nml;V^#pd79X20&dz+-U)N98|PVoFb^>+eA-R&eQ<4VuH37v{$Y~R zLE=|LZPzvynz;9|n=WcmhPVPprw@0l{(%hR9f^*H2luy|2^+m@|+JOi=yS6`>iiz=GhuT{hbT#-1O~d*uFFwzD2v z2E+oXlkePF<*SLo7J?!&n0amy=)ck&ZR&)7QZY3$G7OO7Gb_ZZo*hYEP+T(hD05*~ zAGqWnmdP-iJMnDRD!PpB`pnlTIMA>aXRc(*V^rUuJvsE?m^-;AHFa*lIJ4(ip|&WF z%9T3|?h5l}Tp8(d*;ec#g-5HU)vVd7q%`~3E6=rFW3uY@;3$51_yjTkiiG&l4&w50 z&C=!#0+!ih6fWBvM+&;tG#)bpLSkt*$??YSPkN&iXze?_d2k@|J>kU(=A3x)#GTg& znXf;?M(g#a&mwi{7Zb1R>YBZ;#Y1{~5fom34q#?HlB6Kyp~Ub)O1`RwiCvXby&fk$#LY8f|c=vfXVPQ$9kDDVP$_fo@9NvFM6>p ze30*&4bgTtgri5Fvc&C}ZX&I-r+7a!8QsF1cZR56w1|M`1_chFJ1`m=iB(;eQfv6W z;~Aw^Ynj35(K#WI^*K42gDbyV0i&pptj8nO<1LA_7%l#Mr;UV^i6@Th&HFl!|D}%Y z9O5at@x=*lf3QBUngaoSl7!?5w<>PhixKl^yoK`;oMS`Nq!qRk3nymZLHdn9I( zw+vYY_XMOyA`Q=4OzbvfW-6tN5$#^7Ju zZg7OSo)x5|3v~xzJ0?f~?!MeZQr(;n?xyv=rwi!f3isFp+7f;{NrJ-N^7d~7m@00@ zKFn~s$*=9_h1yS#CoM%xCpn8VpO>&d!B1#?i@&uQ9x!BCdwbupJv4!b=cJvB zb$_GNNXaWS$9<++$E&GRG`s1!Eih6eQ%_>18&1@OApDSOQ&P7Wq1z2=>K)z{l6Af2 z=uW(Yq9VxU8g5m-Cp=K+Zkxy68$O&c$!5}%+A>&>1uK{K91D0pG4jmy1MLb4bqARF zZt*rFUS)qTU;nL0^V|J2(4`L1Bqo>$vY+fT8L~oD;jT$ot4A~FB{5ES4-Ku4kF0Ol zw50}LN1G~(hHIH;_s#Y11jknOCjhfvbP~R`Y44N=lNBP+i_Ij$3YC#i3K>@)>7OCa zM4HDGy{cptAwzLBL2)UthftfstuByhl*9a#KQ>+Ynb~U?GI`RC?E-q@9eW3L2Ce(b zkR9tuSVj+Lq#EUFY6+|cG__#GT*XMzvo@I)y8}#~13LccOux84rJ`t{3GQlHWys_8 z%aMVx5&470Eawj2S5`BR@B)oi3kinT);F`B!$5DSI_sef_ly_F;9+FYF6pc-dDZd4e1 zJ|!tX=3bqZGS|S*jg&ai20r`Z)oP!hDOK(ZtDTGeC(Gl=RR-m%a=SCHCA}IwY;32y;^U9H_9uree0^n1hQZ3 zzK;45*anjXfnL93?Co?&cSn4>ra#_RmkFfX9_dKHDV(`;m*CyTw%n2alJixDDBsbC z-8MV6cNbDA+{Sv4z$UuN#9hEVw}Oj-kVmgwa`lAxqq@z(O;eJbvh>4*R_0$4@(Uo^ zWy=oKbMbTCn4@gdKy|7f*Bhd7u4D7a&!(Y-ExylHhO;mDLRJ`sqv_TDB$h1@F7HFk z1*gQv6z&9+CM5d7<=o3y+B0$@tAo3MKTvpOeC4ni_#k)1(5(d=SUB4`kWbsO&-zu_ zmf$q%8l{`qXEP6n)>{^go+aN^3AO_VL^!PoFp>Q#xi)NrMM4J9EPro09vl+;>UI5BA2qswmZZ32T18)X z%89YofXZsbKcq^4Ge}A@UR)`PS$$sW8R$@kerd0vh6GHipB81T`l-#@DvMc*(je7l z-sR2E94d#Rj5nJZl#Hrm%)t^q@UUWutK43(Qv^ujMF6K@-vo@=M^F z17*d#eCW8C97}sN-fF&q*IxJ2sH|>h)I7d-=yehKbmHRrUJ4>y{1i0e1WI~1V z@i}u&4g+G?PE2OUEmzzRoCdZtniRsWIH+Gf)2=dIZQmnZx|(|~XntQM;xMwZs=#E~ z3K*C5{&CB~L#0&deq^afr*^S)Rk~f0#uH$R;Y<<#{npirU|@QLcdIRv?+rf| z=z2yJ0al6>LT;e8_r+Vd(-`s1{{4q8SK4NRp*b?oYO^%_W?M>zwmqbjis_18!s&ZV z`x(_w!x+Boj)8k6*Xm|xE7Fg>Ro2LfIR2|A)ve}EjjQfln&At_+z-q1DBW@(34V7V zy>eo<8Q*USYn1AEjR5#Q8Pj)tnUp|KNH~FK{_=>A*WVvMBVdUj7b=Tqr*2Op6%xv*FhbQCrv@63osYdLf1}=U^ zW)8OV$q*6!6wHf<43{*|E&=cbM(-^$jPlQ_#rIF%YP{1J0Jcp_9t~~g-Q0CFO=z~O zFYP$tS@O-itW29{DWUWf<9+}{J)6$NexnKpE2KaP5d2ot^AeZ!J3t-ZccN2Ypim9L zz$n|(n$Onntv901yA{Ti-5AgbK-!UYtB6;LhmdYd4ilj9fBY!r_lZw{xDXbc^?g2C zJHla>MWWGkW}O0|F2S)K$*0&M+sO8!rYoR`k0j2eoD;!>)&m)>&rgf@E}P_+130Ov zjAOSkr`8`M3Iu2seVn z6#_pM*Hu&HEyE>gLMu z3`h^(rESHC1Vuy~j~xVk=w!;%e6LzxG{7(bJx??RSH)D4a*-=CPFPlx5eg6n1&EX97?fLNO z>V4iel936EdhuF}Ch-mV=tEe>N3`~%+}`Mo&=0uzZOLh*u*S?6xtG0&zVj*XL70{= z>74CisiBQZOvb&237hROZrj+aE2Rd5Y@*9O#;A+ zM8Vs65wpvYPxwSh>V%BX!VSb}+!x(5{E+Kcq#;(O!(Rri*$$C#fOk+iesKHJYMSYA>>QUK@Er5*ws7qvkxI4@SLhm!JF~ zT)(b*9wOu{IH5z_t-@L&C^T0PrDMCC@j^`pr9=6Y4yrY|-m#MoOjdBPe7*P--S7sN zt|{!AqzSbLZ?_Wi81Jf9yY+bHp>l9C#Ar=$ePb%(KJPIAVkyz_!cIPN1;h=J8d!y0 zWE*5Y{z8l@!8g*ck@kMOcm3$;>1g3eRVX>%p{ZS5&irF{(;#Jq`No{^^VYm}$rfme zNd6^>Z=k+&$rAwTNKrfPdmuOT%{YA#l&(l?G9sRiRP>lg&>iWhRXnQ;1Ag=gSh?N1@)u=%|MA=Cfa@7U@S=*>D4~WdbP` zaOpO-oT7Nq&M>Qz4q}?g1*n-MLxgFp@}<* zI^W5%#^AZ-xJsXp&T}-4{YFW;dpF)yPnaWg83s2DLoLVT0;)hXksJzrf3n5yF|g1A z{;MnOvtJkKhw1)^bLYv=eKq@qf^_&K*2I6sEPTX_44BvOw)ogkYSj-kA#L-V`cvAp zA+Kq5z_F=JVZnqQLT1_PJ86;ga)dW3NN@Sw2+OfO5@$jY*;s~H>zv@Q7kCwo_}L<2vY>*CX)CmKPG5cc<#xG9Ha5j%D5_uA}k>Kijn#1f#@q-+9O!;Fc$> zbu6wYaim=bs80q-qVJl)3vRau&FqIb)AaLg643u=6VXk5II%BTjZoG{+=!mG_8=d< zj^iqbQ;^v0y~PPE#>glh;{^9l{SF?TGwV) za{4YHP<_jGc|@D{;Zt$qK+@hF#5h?_4q}yeOrl?+<$ki;_VZJoktK8o&$qg4p9nZ7 zHAst({9GD0>3f5$k(6939#jw z6r*HJWF7TajY5Hj|J>)O`~2XsCHSI2v19gP;w{INnH{rXA+r`rP02xSX~LTbLu{~@ z^if71T1q#aO&X>8)T-0siBDuv#}q zY7q``(U(*ME??!>lw#%3NP>{MM9Ia@OfgJ&@pYnUKrkG}j<#V+fWe)R@A!@D<8V`; zjlN#~l$)A2RIkm?)fO`1w}&ry=2Vqhn&(FN+UjixSd!FEFjIuNQ$K?IuDHP&WDDUw z#t!Ljn2r7Bglj(k28G2_>UJwNjc?Z-mc*vSRCobL_{V;Zx!zmq^kdaPt1(w?b0Ril z-+(W`Atw7O3jX=rYd#}IKGN9M&LU;f|ubvtveyTcf@FL|=y19pzM?_m3N%vGzHJD-5Iw%g#gbWl6XciRDk<2c+a1_#l+SXlS3U5p%Z8!y8T$|X^B5(ejx3{9!D0^E z91$gb&q&J;#0?l3{02qh=fP4&LRbN!JLn5(UAQ!+q77L2JMRlH3k*zICpy}4+a)p>v5B}3dfD+h6iutwX~Zzq z7?2NzF&&t-5V&G!Riee4+_&<*3W!x`oDR$WlW$^34||76_&?DTjt%md!0AU(A&>$i zUtnKPZ~E2rhcwm1$00UexK^D7yFQiZ|WrvCGHFG6g57vpg4N@(H%dMh~X)EH#A%E}g_(lNv zeIKE~tss%>B_pVC@&flmbRnD0cv@t3SADb1I?y85^8FX}CMChQa=kk$X0q}6FZJB6 zJu^{Ux=o0?Vssi|l7bIl14l8Ct5Z>;5haTsH(Y9p#(j&f+ud0x;p{(&Q=GVxXSRpL z+WH7za~_=24E3CN*qXQj8^qGj4?4rY8V(f5Q#Y1;T8G0+DuA4gRkQH3g}dKYaXYe) zW2oFnv{dJ1P$JiE6XkwMdQDpMf@&)6E$DJYVjC`jZ4bHkvD0#=Cf?^Rg`D;@hC6VG zb`$rsZ@L}I_f59}$4%Zv0W7c4P{ZhPAAF47qFI=W%hP*mUqIs;MJF}T4}1~^n5FSq z^%9apu&{4^;d(=e^BGGo3&m{KxnSH>fnWnSwYutw-%P!tX;gu7≦~I!9 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�%a7R z?Bt&un19>F?O|DQ><^ApnY?di!b$E(RT_|xn+zPX3MF!mM=4kuzD2co%#A_UZzGA@ z5OHy#5Okc}19&QCNlyNlO6g|i{n-7XrQc6kLX8n-IY*J^BlXSvdd2_Lg*N?Ot$lx9 z5ETHUEQlbQFSWKP%}PrbQ$9&b^{rEU4l@q!mdP7g3)RPfBC3uWv9t4$8vv)}fRys+tmbbj5Oa6EBF!WDeT%SYVUM!_W`0!z4f@^RA$=P!uRIAkoKlq(;Zl&3Mw&x zQ2}J5BFX4Ki4ZRY!Oo2;qaeh(G+{PbV#tVjpoR&qBRMV+FVii+>@5I{7Nf-w;l2>? zi_n_M*&vH->Wm743Q@v8Ol4}3!;T5E=sxFby7?FMvWeOkZpVk$O-EKp!WB5It|Y-R z%mm+Gv>BoL1Q0~E6$7#!1)#8_k|37wdc_b7S7qXRC$IiEr0EWUGr)jy1tPnr9|Es; zAhg@-yYv38u7xl7v4y?Twf769Zz(Ys(bxcZDJ|RxWC|f(iISf?Sx8X`w#mQ#X}&HM zM~ZDKfF&K&V(t`OgAo42m$6xj0ZkDX`pC z=lTJzYP9mq^`>J}yt)_s>Qn;CdeXryQ`@p@>PJ6&@?`4;8W8}=EXdj};1tAPuk-c( z<8>zvwsPnN2VekUbg+;^z$vo7-u)Ug`1`wZI1^#5oEhUF53PX4>fn9n{8Qp?nNjib zR>*=FLzH2%KQn4n<{Ll=3o5}V+a+mPojWLc{e5}}e!-nzrCNVo&@dW`o_bedCo*dA>@hi3{+vJfGV?)OQx=}TUAV2XN|1ZhS@qNX?Q)j^p(aU&S~y;Li-(>~G1 zsE^jpWR&9+-b4Q>LVPWKBy_!qo3+zj=pgmL;u${$oy)I4T=B?93d^!`l_OYdwyskS z=M!ie)h^jwem&Fl7e3XYk26^AN*~i zUV^Kn-qZK3{t-GDd9u#ungTe2I&Q|9`fwy59V}G#)iuEN{_fu(sT>a+qDmS%)1l|3 z-vA*&(SH)?@@KKEMY}u$$RO;CDvho(Hg=?}_9c^^Y0nS#g8>RYSI)iedA&DJnhq!C;q3i3-g-$Pp67trrp2t`58yNR^;7TSc9hr z$C4&bR-nYmGMj&yR17Imk;4%Sl}UUacXZNkf>=PV8r~*M9NBA%VK_y8)PX4fN9Fwc?DPs^w+v~ zy{7%hpuHUf8w-2>0|zS9L5T|u19O>^t|(=gfOFk2Er)1-{eIadhFc0m5Fr?Nu!k6f zh93j+euSJE0g-VIx`DURcHdfES+%ntqb1~qAY5;Pn4^6H4oXc0{-vv%uez(6-`Qa< zL2Idbxjy1j8jULJIkO741_fj<|s>M^z zSIIEWUxT1&?(Si$rJ}zWM%N}^t#eXMZ^|h4-=-?05-l?3Upqtr){L1C&%yFs{}}tY zW7)LdhEOSB zucHj1y~r~Km%o-BEEP3P8!a9DB``|Fn<}DZBV@;|`daMTv9_lCS@_bq4-F zT_<4@C6L_*!Fw1QV9OO7W`7v4fWa-ZQf<->TNFhdps14i5m@Dil0+~`XhYO8L7BfN zAp2GmSt;(SoCUQA*B0*j{KZv;nc2RrbQ^gKp#N^*0x&pSCNZJIkw1r{2oR*hfsa5( z+NXVdu>h%~gV}K>`}OCRNB6V0wznH&n)oIm>Th{o|D6=Dcn~^=IFnEt#Hmv0SRAB- zc)n5pbp6v)c5RK)1)IsVu8r^zyiMg-w6>v#_3R_o1#w= zb%a!i_>qtvAvEAE-Z;KK#@(TJdqnd>a9@&n8|@oiCaW|CBMc&t#hLK5&vr{a&gxg| z&k~r$7qF-GCD5*1m#`+yYzA%Z7PiikrRNM6~jpbu6k^H-9D%dauI8+<-3vBhP zDyx68uRSG+mA8r)DYh?};g#k~Ys6j{TnWp0P3)UiePwbbM2cW?!$kmD&>^OamASPnc)4Z(_!0sg2-2tV7MWeT}aIguiBm{!r zctt=wex7bW_c#_Uw$)kk6EdaE@%uVOfF3w-krp_YFE%tURx3vggGIvf#1|CG$yM{Q zSD{hIChALyG%ng|3s?-w;0e0;G*Lmywd^?ml z8F(vffvrU#K55k<;7?gtUA-^Kb0IAT+!bP9ky-$@AgG#1@@hLdAu@`Z2|gCM8S8bcO1Xk{ z%k7P=G;d1>Azhz0jd(6?WTHDl+H7_+yx)h}p+O{F0vJLufmK0yiFxj3BY_n}F`O&& z-(Tj;v3o+Lfm2bE4Qx|6bXBqSv=|aP8k80qXHTc-@s~=H!!W|6*9l_VBvu!M!5%r1 z@!^6g4yk<7Vk5nPnMIg%Ll#-eR@M?e(}~KgoA_;HhIbF|1Q`OQfsxXiXNb>3YPIJ_ zHjzgS1DR-P=e->o$6GjwV7EH=I4In{e)YC%A^Fi$eqvzhyDz>F30{O~b>DWWF;PtJ zcMP+#n^G7Yv&b-@B)G3TdS(*b!1vIBoO2*4Q~aNcA!zID5aVX9j3kyvWr>+jL*to(H;*g{j?4r_iNR*W;J z+!s%Gj!zGIGO!-jj<|4EfbvwAneH%5`NsIIOvGw~13zZnq`8tU42$#2Nd4;J&S-rx zO*Q?cyU~uK6_ZRs@RNP1Cc3!?4^wF-kSOR{PbEok^eU$SD@aPL(>Twh+HvMm-g@fHw(O04wsM z&r5J&c9htTJ44OPpgrHtDI*sjJ)SJ9Z_Xg9h%=y4J&S@?XGxlXFbJ4${{AR>W?GHp zagzBH83@K zyXxQfrh^dcy9`xMdL|;sAJ)mo(Iz>bGJ!sKIBZvwk3#nx07x`Q$EVoEdTyDr3Y}8G ze;N!82q=Gpi$Fpx5`yN=SfMZskXnhJUv=ybAs5rN?J4$b7M=m2QS^idrq(pHo}i8P z341N3O>f@j+3!A|&)Z99C67(stEYHZ((;_EBftC4?oX^Z)j%kW!?3Ura>*f3@?fm- z0SQGKINxyS@WlvN$?<+R3dg4!R4K4O1Ss3mzM|<<VT)zN}=yNB)Z=tv%+YB-50F6XY zaD#c%w29P({958^m@}MQ^dD1x1E4LK&|pXcx;vNe(_ddLyj9yxgOgqhHNux74v>;W z4EX^BzSilyLcu!&dqb>}E&f^wliX2G}V^rmqV0Jbzx2ox^ zA0WUg>=_1L)r>u>X3INbg?a6gmE{-2Cc)Y};0$h;lRv5-vsl^q1+pw0TDmgfs|WXP zzm4>bGnF5@f^{J}tINYzb`4pjsN*fiD4+HyLyNJV7JkpFI7oY@dI9-nd*L6W1qirh zs>U+P0W%_qW~ku!ok_D05W*oqhCyHz62$rj+t%S-YpuCWtZe-#&kTVJtGCC7BGW_| zSadsjo&Nr6`{?-PlWt>p46=+AA(c~m+TvW{HdVo{aw2F75zQKqsL0HXA{ejYLG>Qo zhY5Zg+TpheZq-P|dKgh4`MK1uob&pDkI#f9X=vqN=dr80l)GY2mmk6u8=90jrBm!6 z*-GQsPEiLp>19-eWGy%QNz;yu{_$fZ-qM;&`bb!t{33=wX(a~Y3sezKw}`TK-KMcx z02?e?!MoDz(mGrugJ&CEz~!qMgk!GEoLzi&3_qs6dEX9Rz?1&~sQ||@YA#j1t zNSrkaU?MdPiZu~M238J9hb`Qrw6;H!(<P0LXAJ9u9s*9h>YXE7vgfY5s&yDc|hi8$Um_X|&WPCM5ot^0pwe2Y7=I}ZljuJC=?62Vk?m59q6?9fbVh8RQT%D)SG=21y z;yi3FMQ%9;@tOmip$;g<_)Og{J&xz1l~gU{L`Mf2R477F z;8+I`@?s*7cQxtgS*=0N9U6|wU0g^(f?iZyc$8#9c7#HmctCw(esElThK_D>bm+%& zdQO^*eokDvnn`dp1_JOyhhp*oB>!*M035Qez#$_h;EIgK!-*(C2l)$$3mx$j1DQsD zT4~VF$d3(`&wtJkCGzSVxHIx1Va-4u&`ATJd&0mt0nV5I8~JJb|1tSX9RQgLq?rq_ zT#7#s<_%MB{p@IVpadi1^rJH4GIBJd6Vud9drANS8v_$K)SwjNf`qK}jFjZ8gHnXF zj3peXWZ7|=v6*oiK(oy5L>U~-{z4A6jG6QuuhdYJw=VLTe4l4xT43jPhF^lw<)mn_=iaBJDk*<29m!-vzQ6 zXrF#t90gt)3)-8mSDeq89vLlp(t>;B+Q(7`=BIZ!stQ zZECGflaW_DM%t4VuVue(3)nmc*FmB66chA8S&uD?rOY1=jdl(`AFJ!FMT4YNVFbcU z2_;=Ve$$eCy+BE6oIvc7DFI?Kz{l)1D*XeBx2e@s<#VLWC(lG10$UAGx!A+_k*m=X z%m&w6!a3#qrLA-pz4Wns>6m-l>2v;9AHII?4<@_w<|Jwe@xxEDd6;<;bhhVVXfZj0 z)LI?T<{9!tLkAE(G1XUG7lhM;b1Hw>Kc{V_NvQz_1Ta)xYPTEk+Y~`W6zk4w*_i-; z|KIQk>#H^_vdJWyMc|rV0D_|lq4GOcZjVH6cW0xL+UknHoD&o5+Y`^E^3wFDWH2=Y{x)LRD*^1S%Z;`2^VyJggEy)RlF zreLxyW}SxtA2iAQd!}^*KG9ZCSb+*MW^uL0vp)}y9T&DLGZzRGCB9$#P+iWEzx^!B7t~LGgYwNfEyx#C_e}KnupH+Knc4t*j zWHb&t57Ecd-IF5v<|X>o+>fMg5u&7o3`Z5s#m+Ff34)zSOy4lv`g|)3#XXUlJqH zi<+LI1;d(5(^oMnGO)EU;9QN>#K{*yrK(Jc)7Me5DpG=VO2d=M2l#Ep1V1hlI~t-X zK-O*S4zbr^8l+h;YzFod0$au4-muACMj&qTF%veD08{e{2B9(az3&JrJ1jE6{Z$5F z&qv4LA`37O)h)9~ZThck0JYzN;i8D>3iJ}ya7s#)n^2EHoGK!cgkd7sloF@}h?7^5 zmy%}Y6=|9omxDe)LSO7HxesICJ#pOV(HkvyooTwmh(!(dHP+KzuUpSu&sIL~JMOhB zh4kcHGZNUMFH3Ax)JcUW6cqf*BtVd5qM>8ThZhnt*!1~7lf|a?XHQkMsp)Q1%1Rw< zDy?b2G8(o6Pb@!aR>6iMkQ>c}4fn9>V^yenq}`fHDgxrBtt);ffy^*G;9X&=Ln=2k zVxr~3vf$<~nF+k!&WXu(_{YkcZYLhG@1D7brZNxzCsiK}4J3`4Q3d**u+mX$Ou z{hN%*e)G0+%BUns0UsW%!^v94D92mK8(nj_18}EY&7%K=r2*%1aSv06N0l_| zX?Wd3UjF*ZnS&?RsX$Ujv^BmQz5Nb~nZVMS1oy^vEIZeQeuubgat)Y`o;&rXt=?kc zcyqq@t*7yBpNLg6ot*-p5NuA9vZD|lKF9O+#M@8cy4qtZ0tJei5R;|9*J7`S#t5s4 zrxSXq_@2DoJ-b+X4Z)np1f7%F3C~5-H|=Ta4oDYpDsY)bx`zSB!K?5b$DCQ$rry@R z_?HAFvg(!~jo7SVUaSg)IeHoIJkz0_AAIp|^*DJ~3*Y`)C*uM==FXfF>4xcXKe@0KUnuc(1%Cb(<{|eajSt@m4{^K zF}8+1l9|giwpv||>G=RnRZjuK^#Algl$|n`!ko;~w%&@P2LaZ539qTl?8~)3oPYpa ztsr!EU~>EZlq$d;0RHc0;AY@hK9p)+O{Cr%pOFgK=GrSFkE9zKpT4 zMEOHFP>^lxoZ*(w=Ru4N4D76|1dgW0cD7~~<}Qw=`cC#1wzh^=rjCD&*^U;t$Mx2n zN`~>AX#Og0RaCnT)Q?-@MLB+)?}jna*DiY*)HWq0MpQUC@J%2GRN+xE+@=n~c?#^@ zZv6G8O?&hcWJ~^k9pe2LFtCEJq|~(vp@IBOm>HfHz-_@1-i)bg`UOO8zv&-+A_1KK zsm~@`q$t$T0%)SQO7A$B4|9Y$C*dD`Q2r}@;_@B-zr$^Po+tAUw?V*v=Z5ew(RInq zE5^ar<|N4Z1B2naUj6^)+%UO$3I1>!!u@~8jq(PjM1oZ=2ltxWW)Oy5riK;6`2RIG zYI-iHKiq~n|D7A7*QjBH=a-d8W3>yC#|{o_2FB=n_?B85p9KZO6^=lL|U8Wni*GK&!)@qeZ0gor(nf?;zam!qv z>d0~z${8_g_d=9^W=W&159c>MxtLBXB4l#fCsGsxSZalFJ^~K@>#0d>0Hgne-no~g z2H4`|v;v}7Ci>=C0bRJyjZ?Bm`LD~vZZZ#6*$z-3;y)G)U?>QU@8bz3-e8-+UhaTj zcyrdMV_&JVuH)JV0ccEtuKpv;_b;L1?Lw}*yAOoVHSYce|*;q7~ zNnpE(u^%k9&~Uc>f$>E7uL2(T7s}f;pg-<^8v7t?4S%jY5e+wCcW=Ygb~Wko)8%|f zG(Qqx*&Q~yG3$@54>dKFv0Kr+kJW!qs0fzTd|t7G;|K})0x2mo(?@R5u0w4q#T2r+ z*&cp9z2nk$8o>K;rxjWLmde!@7dL;MD&8`0rnXoWLi68kR+0Oyb1-31yxfP827RRF ze`wTu-d8JA9;CAr%w38)@|j;*sPv(iI$KP`Q$4%I$E_@rp@Y#h6TC@+w3jKJf#^!M ziTG7p*AzVonySu}IT;`lo3kz%M2jb5`VDgKQ?+u+ST^$+zsjBOmZ`+@YULJhhX*BkkFJ~47@YRDz zUF%y8Odjl?p57j=yxhF)9Va%N8QyJ6L8&#(8{scI%LTT>m6p9_6YaKrW0MHUcy~1O zjgAf$Ih#GC{0gb+~XsuPj)@^3}zG~vkeu65HwL?p|Ra~ zM)D1$2591s6VaqTa5+s6IyV3y0fj=65TOkX+F>=eq4x|^y%luF*p55gDNh3Ko9uns ziAYZ9MZms9Y~hMQf@$@Pg{ zkghfF_Rm*GFZQ0Se|bB(vUYm$-x7?WRYxu$XkuNwWHtdq7^&THW%tbMrB$JJ&K;;(We%?Of$vm)LXLPN+v+uyg3CITxXdR6(= zyht@~Dwz%AB?_zj03fKwEhODQyGoQ^G-4L3shT0nD-6go~2vp!It zzXLhrRcR@0T81)dG+5~+0G|Xg$K3kel^vkPaT~=4CdEyMx+6i)&(_}MBhi4Q_`?}U zm~h_2mtGb7yvKqYlI;;Sjn+f(qOXM*FziG^FEttXP1h@r4pxW~TGcKbYpgInEXpjZ5CQ!?@1)#n0if(C#m^yow%Uf%;H6l?rl$jiQGho9ES>1zy3a8!Kxk;WpWFNNuoh(l+QSCU+ zCFx5Mg8L{kPC8NaMftmyjD@-cT6!o0x=3nl{F4as+pJu8NZ_ih8jRc zm{1desBv>;nAj+hxcB*3djlN2@)P9pw<}Cu;Ip>fZM7Q0&ta-j@BEF)Sr1e-_9Bcq zQ85zeVsB~4mF(fV`XBKHPqi^F&#!xl1n_Zd{_OGK{vhrGH7c3lFL~Sjnj10;d*+3iG+BH z(>g6M>kj%u2SlnomTf&OW(l}GxmG=-o40^?_)1fR2ofgzdnfh5uCfVA8qPWgXdTO! z6k%kIE&B^&KiAVtf^(Gop7h`r=dSTair50ol7l!Ub*ZV~G(~H}VBX#;UbGsDXwPu+ z+RAH*t7tQ&>d1Pe$eWvBTEaWTNXdI%$IEBTqQchZA3@r3F&wB5UP(ZEkZ^2q>+q(o zpt)Gr+EUNh+U`vATM~14U;?(P_W|g_?gU; z4n4|5GkkpOQIAq{T0+j_!k+I1*WH#nU!QZRUaibdhYZiOJc; zg_TM*^BO|=8^aKZ8ISZk@0Em3D?9{pdnf(M(C7yiqS9Riy*b*CJj^Y46%GqgNlFo0 zPP#;~wR5IJ)7Z?lXMuMF# ziy|{3sjy>+;uJNH5!xc4t$>5HB=y2`xF4nd2o#3hXgM`{-2H{X+;Y%ca2+2M(bcBJ zM7^7#%l@>@y&GK!B09Nl;~;&lf-LdLqUE+BYfKmoLzGN^SS0R6so;U9aTcO#26j~G z^1UUgADzd0J!k0do1iPftxWV9O2R~UVtQCy(oZ%R( z6OpPfNWKku`dU>yGPi;Ou-1w1js-o(%^kdv{7NM?<)mx*Ts~d+%5C7l^5!>4JlkT1t!aG^aUg)8!8NF6$QCfAJ07y?urW0-qn=2@)|Chd|_HmZI#YV zUrTdP1yNm+oLVp8o1bbOQjm&D!hs_uy#<72sC!r@f{CVdG+Au$%y9S}oe_ZuYUhTd zf6TsKAdiBw>|oDNenxF58Wg4#x;AM(+*5nswv{-gwKY+G zLp=!MP+CSzc4Vqg1-h)_wmNy1+A+6Ld^IL*M#1C2LR*U;`MhzxQfio%59~p|DLwsR z9HhtAokjDKptcjRexX~by8;{X)3BIGJQ~()U9;Y*7JWC8H3C<_H>^pc$20x8A_3@r))#M!2-iB2`X*!P&_LO`k6BR~e*#5cv)G zhRK_LgqH~EmT40={nsPjhi03=i_irV_wd0U6bNN`jtNjIwLZWbMQ@avGA!Ct&HAp2 z^ZXxB12-1cXZU>O^Io9#klmOeEfnqLnYU}YuZ@pvzCT~StXhwiLRz1QeD8veYq1l5 zKGb!6erRUW*Q^T|J*aF%N;yfFoBK;EEi5X?I#ZPFXPtQD#mSGIFgC0I)@#OUJTbO) zrKMa0Z|t``Z&*$@FBmE~9 z?~_NFfApTxi&iYVYICk+u7YqlINfYmn1Ab-Z;Jq=@DbQ=gAG!PX_%;qvD7q-*xRqR zRDhJwndP-+T51?!rzUpg*h2*MWV5=Ew!PfzxgQAk)DF2l({8o&5c0Yfm^Xo?zC0(& z5a|N>$v`0xZ81`*%{eZN@KiwIF=cN|z{ze70Se+K`8FGdnc|E|(7^WhSFHW2=G!{+bH-uP>4fIWegDUB)3sWN_8F!UAY8Awm{<#5H{38sPoqGx7wP7 zB~p6H&_d}}<+#&nU=n?)NHri>m1rEIHO4G0zquAz{4hCn`9AmuKPIpdqxSaN_0AWY zhu}x^QkzbI(*7K(+s`_B-TSQK9x^`)2XLtAK!g6{8_Dv~3=lR;<2=-ibou&9m{rr7+f^H8<%tnqc_X=hP+g z$|wL*X-pIWfQ>FJpm5Fs2{oE=AAk+O1e2 zF9?uvK&pb~*-Gg^*0(50Oy!=vWCY+X#jX8={hR#1#rBAsZi>05#giC(Eq@B5vH6wu z?p_oIh(JMdd|YH&%$$k(ZsHtEDc9%XH~b#&x<`GPh~z}x#tQ}@vWW+L1(;U~{C8{% z|G3a_sfK)Z`F9b{m~B0N`7OzgOBxiuzjzdu!AS2w<%Q|}IpXI6=zrG%*8#_(qsSA) z1Z_Pd0MHL@J1&EvzZkPBoy1WSbC@SR1PrDYT>3ZZ%oyJ;Lm@LP0Q}>2$<+9V9i6+4 zH9+unyYMt!`bGn=A%yLcIex*1bzoeuHi|vUI||frx#{ZC?6ywz{2&jwFI(IrD~g5= zoU>$Qiv(J+ddAm)-2r(z@^=CspaDubT40=lddO75&l$ALQJAhdX?lflcZsb(d?Vog zoo`QC#)rON*?c6@R*LTFgdQXRdFNkzACr`kPs<$IxzT0SG&L78?&!MR|8MycX91WZ zZ(HDEo{gl$mIBh1}DCn(H7=RQMp@ftT-ExTgx)YSb^VSW4`k;TeMtY6K<9zu8!k2P%4 zM2g&@<+{zgL+iYkGc&%7ynZGM_te^CP489qSR~y+%Cwh|zouRlKN=s&*koh2$KBl# zqxtyI_B!=M42ci>w9OKTrKR&H9aB=Xv_RO>$^$u>EhejA?}E-<yY_M@!&eRAio05_7tb>Y66BDx#}BwaYK@Qqd4t)|TOY1<$_|&= zTSEp6ZW+2)8UNv~|Gb6&%Vz}B=;M`0M%~|jf6fl4+%0X%q0o#7G)f1+fq$|UkOg4; zpKD=j*j4s;`+Vk9p*?1tAotCb>)!p%q6N{x960W`hRmw5L~1vLDXlPl9FZd!iWeZh z^#ATG1!2v588DBff^jaAx(O|Hoz?KEzntZ~J)H%IKRUHYwFLit2m3h_T7>pDXd9-A zqHgwiE5@QIWNG42Xi{budWKrUg=65rzpj1R0Y?50d4{5C6`#JGD!oE<0F|r$X!(vM z*b!1|qyQMph+%mF5+MKY1SzY$Q_*<c)a?_}j~+h$W($~i50lDj|VqxyIAv8%=BfLrXjwb!<6 zPWQj;YyiSN{0%}JF6365#wn;h)rf-H6bMEKvy1x300v7HlQ6Ojmi z@Ak+8E47`5{zcBzP(S;Tf*K6#5JEbuU8v;2rg!yk$gS(pJ(ziA5w|kPaX+P&oOcI? zm}bU_ln*d-&#m1uxd)yCWk&}9AW$CWn5CJd5-{+nO_sG~Y3Oa&T-@KmXw{!7@%6mY zX0n{0jZY)LzLH#&qmTKQROwxFG&oDv|DF!L!}F_)^ed{>h53PoW0ADeS_iE(l%WO8uSY$A$uHKTvRfB zG|!jA<T2I6!WV_i|4VnxUy2nUFCC%3W(-ot{4U zsfW+=5Re?(r_bz3CeSkuhC+b;{A0k-70kBREBz?Wv}5aNIxc7ceuK)cKVG>8`u{tx z@Dul6H{W@}CUCmC=#^O2RnA75dqX(rNm*j{JKuw%U-8D?xYw&5XU!G&qm$zyX+y=y z(n^|z{=)3bX*F5GTThl>H)UgD(Bit92^v#FDMT|pDn3dgIbt}Vwd3fzAK+TNNtY}2 zDJ`nzf1ZF2rjVXanUJ5BG=->$K7V1~b(#mpBOhNXTh~sZrH#q(jHy*B{5VxBIjlz- zU-nTp*>w8R8tUHs?H{k) zVf;_Lf|8xAb?K_Cxojrk(!oD@#4nS{s!89mZXx%Ad^;ms2Sn8 zGxdqceu3ZATxAum!v8?#BVM^ky(DWFT3{L|Hl> zGhZ+G#+)v#ak%Ml{%2YgOk{F2w{u<{Drl)_T5G90X&5KWE3*+d3Axuc+BZ?z2*GK3 zma1O>vWVudE)(xxa#X?wE;_^AkU1H6HyoNxYMWba))wv?2Og10MA}{@UUw1O-N}=W zQ~0aHcA&1$`W-x+8KWyEnxFFhfv4%+NiA$HFA>r=dT?8YaE$f2OytaAgwDUF9p&Xq z;5(Euj{pfdL*@g~%^zB;AqUXdNbFxInMB=2 zd+Q@_kkbiGj*J^0o+?+0(G^c?_<8FAN-}?SsHBaNc{-mfm1QR#KGd0l_sege6M)MMI)~F2cTZ&%NW~N zTenS}bFXnueA`d|=S*N%@l;n=abJ86Mcrh-F)8mtd#16wBQ3^2%Lr_Gy3{wtezhTT_+V9C*r(#L9hS6&F;1;K`4`#{OX z=`-Hin0x{sl15qSQI~+rS{hNXov?P{B)@O}l~PJd;}{)JWYukt#17Mk1+ze`>}K6> zSlTqu|F^ZIf&+afx9th^8_;i9H6fCJ+O8qn21YSCn?5ZkJ7LVg^GPw=Ni}66IEbdZ z(pmmmF07T9|Nme?dcAg1Z!h&;jd6lk6aV=;R@jo|>flsOg|vjUfmr)0J)bpA!leQ+ z{;m(()0HCL=b@v~lvE=Twqg0QRI2)`^dM)g_acI>j4v`|CP1a9=;eK++&7c|G~q@i zvR=cL`*ZDS{c}9N|E;^j_hSqBl)m1#Y4uDv?ztnml)8kKHLa)PQ2G5C8Zt0}f`lZk zam_RUML@d0%Z#Lp?W(cjA(y(9rectAoCd((w?d(np7mkzZMQ?r+H;SF#e!q0>Me+W z3pF>lnzE-WF4&Xv97h?M2G%Ie(%0k zU%WQOc}4N9t#94vZP?E|mSpz-t?G`yEMg(oIn#^CZn6w$_>&6q=y^Juxa{6iTyxKh?EhewsLlu8fZXb$HQMcXseMZPbz69%T-$Y^XNw z+K;$gr^lb6(;@&$GnBn90CT^z|EUdL{YVms9xrmMM+Q{$M^)?8=KbBL&=C+2-p-cF)kA}X`=DLe5uGa_!&fm{N2|b2MIu$MI?N{o(#Sq0? zJv$&R&{#Z1>n>2d!9Rw`1TYmq=qnq$#JY9IJ;T&)>8mpHnd8mBG_GbUra%I0slXav z117-zL%L53aklii-GzPK*<^q!8Fy}0KmOf2XLTqbA`M`-7S3oFD1qxgC*O>mJ=kv_ zqINE3>N>TgpJ~6KTRco|{C%d<*$>#JU7#qQe;H%6RBd^|xmfmHK8C-XvvhR{?X#EM z@XBXQO$_j!1NVFi9A)`Oc}{?#zfa~F2SmyLQGeMX{~<7(*+)~NBpL(*Lzb1W4VaGN zde|sbl5Xf){X_`b(N}^(AaEj?5CybMevECf0~F2lualYFf&N?ZS5SDkT_D##(u4q8 z|FP;+znpNojX!in>U}9-rK?gd}E)f0yB7Qm8@oQa`bvw9~hn4iJ znM)Yy^zv`wgyRTlJ3xB>!X@?{B>`pejvrLSxxLN-sGZFEu%6{*s~#Ru73kXtZg>}n z?tcNdE%6<09jPK!_YA}OGIcq>kIYv78#taQ!tySV?*D|#A9t|*BMkec#Ns|MYjNWf zy6hr+5LHcLohPTtdU`GH^@h~M0G`X>@GqdE{?sbK3IOHrzCY+hf1fx;XKvyA!^H?- zpTNq8E6&x)ziqy`hDuaC@#gHIMhuWC^@rR$aSjDb<|fU#IVD&Hr9SZP-#=+$`V*k8 zdxZRxHoWeEKh#F}0kk4K4}dAb4NwW?Rd^6h|H4%;S_7s+2=$^oZr~9-VGGb5rBOEd zPENnO5=?aC19$%tu{~yXKEVn|8AUZEvP4o+=mr)Gl3hW?y59_`AU+%pDt6f)?QCf49K$kw13VE>Mj5e^jA@ zk@AKBLqH_8h;4p&mMkp}_qvA~A9Z)~UfBbmlAIYn3X6hlgN=(aB zqdw$dT%&BKc89(ti)vG@KvFhZO` zzt$Uzi(K{onvloANbb7>R&^rKAsVfcYw72Ww2jXxux=CF%$J? zv!Q90^VjsIRB+hg-v;~bZox|L0MYyli(+U7X8;C3vJkQR&!_nQt4|SqdOX!aJ9+LJcRdyMc%_%^l#Y>OXQl#@ zm%zj90{J`rr>i8UnXmau?#*30j$UG~?K1BR*u8E~|L!V?9fUtQ?~C~_Wh@e=dwcAj zRpw}8(LJkbv`LIP`*rv4v)(RuVSDy~e8vBg{)1f*kNv+Dzc7Q%If99!{7)*gfya{C ztr)i6d{oaA;%Xk3F*BEflw@E6xv_tmb%iSL3pMKH?M=#MDtsPShJ*C6ODo=1|JfOp z_u*Z;W-X3}oK2-R8X^kwGvqoQxO`e({=fEV!Q-+umHN^Nsc#z%P4cX7r{;J=qt`!u zIJivm;x~&-YSpWDn3Zx!cMHh%;STN*Le}3KzxxFx=*@aFE7y9`H7r$qC)$aXuAl## z#;*%eN%#yn-u)jF`Tm(r=(6c&7Y8O08hrKMaoLNR>ghXkf3is)h5DucX)O?f`e==4 z9t9DPRYs)*ufFq7{h^t{O56eR!~AFc;rs6*80k+0?>53A>;V1zrz{UyoarM!EON2c zm)hRi!Y(~suLq}F$m@Zu3^Ksx9xTr_$lvC|$ph5<2SX^{0<3+0TzaNaOgIvEG#3Gv z^Syelzh(xi4X-*3RzJ#Pw{ihXa?$R$^rXuDDI7W|NQx2rv;-Qhs`Z=yZ6{( z6=`zd!e1z9ARA2LEvCX6H~ucY2?Jw$2(0suUxfXQcoz^#Hkqk|xMc=)1ehT⪑% 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

    `3Lk_nmt|t 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

    <;F5d7Q645vOWnSt4z@B_KLtqJ$)Z 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 c|uF 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

    oS5aCCXyg?)ZU7uET@oi7uwx%%(? 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 KUHiBI;1vK4W|yY` literal 0 HcmV?d00001 diff --git a/utils/tgz/tgz.go b/utils/tgz/tgz.go new file mode 100644 index 000000000..0445150bf --- /dev/null +++ b/utils/tgz/tgz.go @@ -0,0 +1,121 @@ +package tgz + +import ( + "archive/tar" + "compress/gzip" + "fmt" + "io" + "io/ioutil" + "os" +) + +const ( + useDefaultTempDir = "" + tmpPrefix = "tmp-tgz-" +) + +// Extract decompress a gziped tarball into a new temporal directory +// created just for this purpose. +// +// On success, the path of new directory and a nil error is returned. +// +// On error, a non-nil error and an empty string are returned if the +// newly created directory is was correctly deleted. If not, its path is +// returned instead of the empty string. +func Extract(srcFile io.Reader) (string, error) { + dstPath, err := ioutil.TempDir(useDefaultTempDir, tmpPrefix) + if err != nil { + return "", nil + } + + tarReader, err := zipTarReader(srcFile) + if err != nil { + return deleteDir(dstPath, err) + } + + if err = unTar(tarReader, dstPath); err != nil { + return deleteDir(dstPath, err) + } + + return dstPath, nil +} + +func deleteDir(dirPath string, prevErr error) (string, error) { + path := "" + err := prevErr + + errDelete := os.RemoveAll(dirPath) + if errDelete != nil { + path = dirPath + if prevErr == nil { + err = errDelete + } + } + + return path, err +} + +func zipTarReader(r io.Reader) (*tar.Reader, error) { + zipReader, err := gzip.NewReader(r) + if err != nil { + return nil, err + } + + return tar.NewReader(zipReader), nil +} + +func unTar(src *tar.Reader, dstPath string) error { + for { + header, err := src.Next() + if err != nil { + if err == io.EOF { + break + } + return err + } + + dst := dstPath + "/" + header.Name + mode := os.FileMode(header.Mode) + switch header.Typeflag { + case tar.TypeDir: + err := os.MkdirAll(dst, mode) + if err != nil { + return err + } + case tar.TypeReg: + err := makeFile(dst, mode, src) + if err != nil { + return err + } + default: + return fmt.Errorf("Unable to untar type : %c in file %s", + header.Typeflag, header.Name) + } + } + + return nil +} + +func makeFile(path string, mode os.FileMode, contents io.Reader) (err error) { + writer, err := os.Create(path) + if err != nil { + return err + } + defer func() { + errClose := writer.Close() + if err == nil { + err = errClose + } + }() + + _, err = io.Copy(writer, contents) + if err != nil { + return err + } + + if err = os.Chmod(path, mode); err != nil { + return err + } + + return nil +} From 8b27a1deab8c84e4cfe7910608fa85369c813be7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Tue, 24 May 2016 09:54:26 +0200 Subject: [PATCH 005/143] Add dummy file client --- clients/common.go | 2 ++ clients/common_test.go | 2 +- clients/file/git_upload_pack.go | 30 ++++++++++++++++++++++++++++++ 3 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 clients/file/git_upload_pack.go diff --git a/clients/common.go b/clients/common.go index 55b3b4b96..1e3e60d13 100644 --- a/clients/common.go +++ b/clients/common.go @@ -16,6 +16,7 @@ import ( "net/url" "gopkg.in/src-d/go-git.v3/clients/common" + "gopkg.in/src-d/go-git.v3/clients/file" "gopkg.in/src-d/go-git.v3/clients/http" "gopkg.in/src-d/go-git.v3/clients/ssh" ) @@ -25,6 +26,7 @@ var DefaultProtocols = map[string]common.GitUploadPackService{ "http": http.NewGitUploadPackService(), "https": http.NewGitUploadPackService(), "ssh": ssh.NewGitUploadPackService(), + "file": file.NewGitUploadPackService(), } // KnownProtocols holds the current set of known protocols. Initially diff --git a/clients/common_test.go b/clients/common_test.go index b53d8f2d0..0febbc33b 100644 --- a/clients/common_test.go +++ b/clients/common_test.go @@ -49,7 +49,7 @@ func (s *SuiteCommon) TestNewGitUploadPackService(c *C) { {"http://github.com/src-d/go-git", false, "*http.GitUploadPackService"}, {"https://github.com/src-d/go-git", false, "*http.GitUploadPackService"}, {"ssh://github.com/src-d/go-git", false, "*ssh.GitUploadPackService"}, - {"file://" + s.dirRemotePath, false, "*dir.GitUploadPackService"}, + {"file://" + s.dirRemotePath, false, "*file.GitUploadPackService"}, } for i, t := range tests { diff --git a/clients/file/git_upload_pack.go b/clients/file/git_upload_pack.go new file mode 100644 index 000000000..8b654a08b --- /dev/null +++ b/clients/file/git_upload_pack.go @@ -0,0 +1,30 @@ +package file + +import ( + "io" + + "gopkg.in/src-d/go-git.v3/clients/common" +) + +type GitUploadPackService struct { +} + +func NewGitUploadPackService() *GitUploadPackService { + return &GitUploadPackService{} +} + +func (s *GitUploadPackService) Connect(url common.Endpoint) error { + return nil +} + +func (s *GitUploadPackService) ConnectWithAuth(url common.Endpoint, auth common.AuthMethod) error { + return nil +} + +func (s *GitUploadPackService) Info() (*common.GitUploadPackInfo, error) { + return nil, nil +} + +func (s *GitUploadPackService) Fetch(r *common.GitUploadPackRequest) (io.ReadCloser, error) { + return nil, nil +} From c8bdb705e20e722e18df508bd241f8815edb8e79 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Tue, 24 May 2016 10:34:21 +0200 Subject: [PATCH 006/143] Add test fot file client --- clients/common/common.go | 1 + clients/file/git_upload_pack.go | 6 +- clients/file/git_upload_pack_test.go | 88 ++++++++++++++++++++++++++++ 3 files changed, 94 insertions(+), 1 deletion(-) create mode 100644 clients/file/git_upload_pack_test.go diff --git a/clients/common/common.go b/clients/common/common.go index 5aa626941..df6fc6647 100644 --- a/clients/common/common.go +++ b/clients/common/common.go @@ -17,6 +17,7 @@ import ( var ( NotFoundErr = errors.New("repository not found") EmptyGitUploadPackErr = errors.New("empty git-upload-pack given") + ErrAuthNotSupported = errors.New("authentication not supported by client") ) const GitUploadPackServiceName = "git-upload-pack" diff --git a/clients/file/git_upload_pack.go b/clients/file/git_upload_pack.go index 8b654a08b..e76401762 100644 --- a/clients/file/git_upload_pack.go +++ b/clients/file/git_upload_pack.go @@ -18,7 +18,11 @@ func (s *GitUploadPackService) Connect(url common.Endpoint) error { } func (s *GitUploadPackService) ConnectWithAuth(url common.Endpoint, auth common.AuthMethod) error { - return nil + if auth == nil { + return s.Connect(url) + } + + return common.ErrAuthNotSupported } func (s *GitUploadPackService) Info() (*common.GitUploadPackInfo, error) { diff --git a/clients/file/git_upload_pack_test.go b/clients/file/git_upload_pack_test.go new file mode 100644 index 000000000..5c81ff877 --- /dev/null +++ b/clients/file/git_upload_pack_test.go @@ -0,0 +1,88 @@ +package file + +import ( + "io/ioutil" + "os" + "testing" + + "gopkg.in/src-d/go-git.v3/clients/common" + "gopkg.in/src-d/go-git.v3/core" + "gopkg.in/src-d/go-git.v3/utils/tgz" + + . "gopkg.in/check.v1" +) + +func Test(t *testing.T) { TestingT(t) } + +type SuiteFile struct { + dirRemotePath string +} + +var _ = Suite(&SuiteFile{}) + +const repositoryFixture = "../../formats/gitdir/fixtures/spinnaker-gc.tgz" + +func (s *SuiteFile) SetUpSuite(c *C) { + file, err := os.Open(repositoryFixture) + c.Assert(err, IsNil) + + defer func() { + err := file.Close() + c.Assert(err, IsNil) + }() + + s.dirRemotePath, err = tgz.Extract(file) + c.Assert(err, IsNil) +} + +func (s *SuiteFile) TearDownSuite(c *C) { + err := os.RemoveAll(s.dirRemotePath) + c.Assert(err, IsNil) +} + +func (s *SuiteFile) TestConnect(c *C) { + r := NewGitUploadPackService() + err := r.Connect(repositoryFixture) + c.Assert(err, IsNil) +} + +func (s *SuiteFile) TestConnectWithAuth(c *C) { + r := NewGitUploadPackService() + err := r.ConnectWithAuth(repositoryFixture, nil) + c.Assert(err, IsNil) + + r = NewGitUploadPackService() + auth := dummyAuth{} + err = r.ConnectWithAuth(repositoryFixture, auth) + c.Assert(err, Equals, common.ErrAuthNotSupported) +} + +type dummyAuth struct{} + +func (d dummyAuth) Name() string { return "" } +func (d dummyAuth) String() string { return "" } + +func (s *SuiteFile) TestDefaultBranch(c *C) { + r := NewGitUploadPackService() + err := r.Connect(repositoryFixture) + c.Assert(err, IsNil) + + info, err := r.Info() + c.Assert(err, IsNil) + c.Assert(info.Capabilities.SymbolicReference("HEAD"), Equals, "refs/heads/master") +} + +func (s *SuiteFile) TestFetch(c *C) { + r := NewGitUploadPackService() + c.Assert(r.Connect(repositoryFixture), IsNil) + + req := &common.GitUploadPackRequest{} + req.Want(core.NewHash("6ecf0ef2c2dffb796033e5a02219af86ec6584e5")) + + reader, err := r.Fetch(req) + c.Assert(err, IsNil) + + b, err := ioutil.ReadAll(reader) + c.Assert(err, IsNil) + c.Assert(b, HasLen, 85374) +} From d6a094251aa2943998a4a76a1097f6bd81e28fb5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Tue, 24 May 2016 10:44:50 +0200 Subject: [PATCH 007/143] Make tests use fixture endpoint --- clients/file/git_upload_pack.go | 3 +++ clients/file/git_upload_pack_test.go | 20 ++++++++++++-------- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/clients/file/git_upload_pack.go b/clients/file/git_upload_pack.go index e76401762..037f9e837 100644 --- a/clients/file/git_upload_pack.go +++ b/clients/file/git_upload_pack.go @@ -1,12 +1,14 @@ package file import ( + "fmt" "io" "gopkg.in/src-d/go-git.v3/clients/common" ) type GitUploadPackService struct { + path string } func NewGitUploadPackService() *GitUploadPackService { @@ -14,6 +16,7 @@ func NewGitUploadPackService() *GitUploadPackService { } func (s *GitUploadPackService) Connect(url common.Endpoint) error { + fmt.Println(url) return nil } diff --git a/clients/file/git_upload_pack_test.go b/clients/file/git_upload_pack_test.go index 5c81ff877..59f559bbe 100644 --- a/clients/file/git_upload_pack_test.go +++ b/clients/file/git_upload_pack_test.go @@ -15,7 +15,8 @@ import ( func Test(t *testing.T) { TestingT(t) } type SuiteFile struct { - dirRemotePath string + fixtureURL common.Endpoint + fixturePath string } var _ = Suite(&SuiteFile{}) @@ -31,29 +32,32 @@ func (s *SuiteFile) SetUpSuite(c *C) { c.Assert(err, IsNil) }() - s.dirRemotePath, err = tgz.Extract(file) + s.fixturePath, err = tgz.Extract(file) + c.Assert(err, IsNil) + + s.fixtureURL, err = common.NewEndpoint("file://" + s.fixturePath) c.Assert(err, IsNil) } func (s *SuiteFile) TearDownSuite(c *C) { - err := os.RemoveAll(s.dirRemotePath) + err := os.RemoveAll(s.fixturePath) c.Assert(err, IsNil) } func (s *SuiteFile) TestConnect(c *C) { r := NewGitUploadPackService() - err := r.Connect(repositoryFixture) + err := r.Connect(s.fixtureURL) c.Assert(err, IsNil) } func (s *SuiteFile) TestConnectWithAuth(c *C) { r := NewGitUploadPackService() - err := r.ConnectWithAuth(repositoryFixture, nil) + err := r.ConnectWithAuth(s.fixtureURL, nil) c.Assert(err, IsNil) r = NewGitUploadPackService() auth := dummyAuth{} - err = r.ConnectWithAuth(repositoryFixture, auth) + err = r.ConnectWithAuth(s.fixtureURL, auth) c.Assert(err, Equals, common.ErrAuthNotSupported) } @@ -64,7 +68,7 @@ func (d dummyAuth) String() string { return "" } func (s *SuiteFile) TestDefaultBranch(c *C) { r := NewGitUploadPackService() - err := r.Connect(repositoryFixture) + err := r.Connect(s.fixtureURL) c.Assert(err, IsNil) info, err := r.Info() @@ -74,7 +78,7 @@ func (s *SuiteFile) TestDefaultBranch(c *C) { func (s *SuiteFile) TestFetch(c *C) { r := NewGitUploadPackService() - c.Assert(r.Connect(repositoryFixture), IsNil) + c.Assert(r.Connect(s.fixtureURL), IsNil) req := &common.GitUploadPackRequest{} req.Want(core.NewHash("6ecf0ef2c2dffb796033e5a02219af86ec6584e5")) From ad88eb23e2d81f6c165ceda4abe20a04d181588c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Tue, 24 May 2016 16:44:52 +0200 Subject: [PATCH 008/143] add parser for packed-refs format --- clients/file/git_upload_pack.go | 30 ++++++- clients/file/git_upload_pack_test.go | 19 +++-- formats/gitdir/packed_refs.go | 71 +++++++++++++++++ formats/gitdir/refs.go | 113 +++++++++++++++++++++++++++ 4 files changed, 219 insertions(+), 14 deletions(-) create mode 100644 formats/gitdir/packed_refs.go create mode 100644 formats/gitdir/refs.go diff --git a/clients/file/git_upload_pack.go b/clients/file/git_upload_pack.go index 037f9e837..29d2d1967 100644 --- a/clients/file/git_upload_pack.go +++ b/clients/file/git_upload_pack.go @@ -3,12 +3,15 @@ package file import ( "fmt" "io" + "strings" "gopkg.in/src-d/go-git.v3/clients/common" + "gopkg.in/src-d/go-git.v3/core" + "gopkg.in/src-d/go-git.v3/formats/gitdir" ) type GitUploadPackService struct { - path string + dir *gitdir.Dir } func NewGitUploadPackService() *GitUploadPackService { @@ -16,11 +19,20 @@ func NewGitUploadPackService() *GitUploadPackService { } func (s *GitUploadPackService) Connect(url common.Endpoint) error { - fmt.Println(url) + var err error + + path := strings.TrimPrefix(string(url), "file://") + s.dir, err = gitdir.New(path) + if err != nil { + return err + } + return nil } -func (s *GitUploadPackService) ConnectWithAuth(url common.Endpoint, auth common.AuthMethod) error { +func (s *GitUploadPackService) ConnectWithAuth(url common.Endpoint, + auth common.AuthMethod) error { + if auth == nil { return s.Connect(url) } @@ -29,7 +41,17 @@ func (s *GitUploadPackService) ConnectWithAuth(url common.Endpoint, auth common. } func (s *GitUploadPackService) Info() (*common.GitUploadPackInfo, error) { - return nil, nil + info := common.NewGitUploadPackInfo() + var err error + + if info.Refs, err = s.dir.Refs(); err != nil { + return info, err + } + + fmt.Println(info.Refs) + + info.Head = core.ZeroHash + return info, nil } func (s *GitUploadPackService) Fetch(r *common.GitUploadPackRequest) (io.ReadCloser, error) { diff --git a/clients/file/git_upload_pack_test.go b/clients/file/git_upload_pack_test.go index 59f559bbe..c85469eab 100644 --- a/clients/file/git_upload_pack_test.go +++ b/clients/file/git_upload_pack_test.go @@ -14,16 +14,16 @@ import ( func Test(t *testing.T) { TestingT(t) } -type SuiteFile struct { +type SuiteFileClient struct { fixtureURL common.Endpoint fixturePath string } -var _ = Suite(&SuiteFile{}) +var _ = Suite(&SuiteFileClient{}) const repositoryFixture = "../../formats/gitdir/fixtures/spinnaker-gc.tgz" -func (s *SuiteFile) SetUpSuite(c *C) { +func (s *SuiteFileClient) SetUpSuite(c *C) { file, err := os.Open(repositoryFixture) c.Assert(err, IsNil) @@ -35,22 +35,21 @@ func (s *SuiteFile) SetUpSuite(c *C) { s.fixturePath, err = tgz.Extract(file) c.Assert(err, IsNil) - s.fixtureURL, err = common.NewEndpoint("file://" + s.fixturePath) - c.Assert(err, IsNil) + s.fixtureURL = common.Endpoint("file://" + s.fixturePath + "/.git") } -func (s *SuiteFile) TearDownSuite(c *C) { +func (s *SuiteFileClient) TearDownSuite(c *C) { err := os.RemoveAll(s.fixturePath) c.Assert(err, IsNil) } -func (s *SuiteFile) TestConnect(c *C) { +func (s *SuiteFileClient) TestConnect(c *C) { r := NewGitUploadPackService() err := r.Connect(s.fixtureURL) c.Assert(err, IsNil) } -func (s *SuiteFile) TestConnectWithAuth(c *C) { +func (s *SuiteFileClient) TestConnectWithAuth(c *C) { r := NewGitUploadPackService() err := r.ConnectWithAuth(s.fixtureURL, nil) c.Assert(err, IsNil) @@ -66,7 +65,7 @@ type dummyAuth struct{} func (d dummyAuth) Name() string { return "" } func (d dummyAuth) String() string { return "" } -func (s *SuiteFile) TestDefaultBranch(c *C) { +func (s *SuiteFileClient) TestDefaultBranch(c *C) { r := NewGitUploadPackService() err := r.Connect(s.fixtureURL) c.Assert(err, IsNil) @@ -76,7 +75,7 @@ func (s *SuiteFile) TestDefaultBranch(c *C) { c.Assert(info.Capabilities.SymbolicReference("HEAD"), Equals, "refs/heads/master") } -func (s *SuiteFile) TestFetch(c *C) { +func (s *SuiteFileClient) TestFetch(c *C) { r := NewGitUploadPackService() c.Assert(r.Connect(s.fixtureURL), IsNil) diff --git a/formats/gitdir/packed_refs.go b/formats/gitdir/packed_refs.go new file mode 100644 index 000000000..12a7b2005 --- /dev/null +++ b/formats/gitdir/packed_refs.go @@ -0,0 +1,71 @@ +package gitdir + +import ( + "bufio" + "errors" + "os" + "path/filepath" + "strings" + + "gopkg.in/src-d/go-git.v3/core" +) + +var ( + ErrPackedRefsDuplicatedRef = errors.New("duplicated ref found in packed-ref file") + ErrPackedRefsBadFormat = errors.New("malformed packed-ref") +) + +func (d *Dir) refsFromPackedRefs() (m map[string]core.Hash, err error) { + result := make(map[string]core.Hash) + + path := filepath.Join(d.path, packedRefsPath) + file, err := os.Open(path) + if err != nil { + if err == os.ErrNotExist { + return result, nil + } + return nil, err + } + defer func() { + errClose := file.Close() + if err == nil { + err = errClose + } + }() + + scanner := bufio.NewScanner(file) + for scanner.Scan() { + line := scanner.Text() + if err = processLine(line, result); err != nil { + return nil, err + } + } + + if err := scanner.Err(); err != nil { + return nil, err + } + + return result, nil +} + +func processLine(line string, refs map[string]core.Hash) error { + switch line[0] { + case '#': // comment - ignore + return nil + case '^': // annotated tag commit of the previous line - ignore + return nil + default: + words := strings.Split(line, " ") // hash then ref + if len(words) != 2 { + return ErrPackedRefsBadFormat + } + hash, ref := words[0], words[1] + + if _, ok := refs[ref]; ok { + return ErrPackedRefsDuplicatedRef + } + refs[ref] = core.NewHash(hash) + } + + return nil +} diff --git a/formats/gitdir/refs.go b/formats/gitdir/refs.go new file mode 100644 index 000000000..f5fdd9585 --- /dev/null +++ b/formats/gitdir/refs.go @@ -0,0 +1,113 @@ +package gitdir + +import ( + "errors" + "fmt" + "io/ioutil" + "path/filepath" + "strings" + + "gopkg.in/src-d/go-git.v3/core" +) + +const ( + suffix = ".git" + refsDir = "refs/" + packedRefsPath = "packed-refs" +) + +var ( + ErrBadGitDirName = errors.New(`Bad git dir name (must end in ".git")`) +) + +type Dir struct { + path string +} + +// New returns a Dir value ready to be used. The path argument must be +// an existing git repository directory (e.g. "foo/bar/.git") on which +// the "git gc" command has been run. +func New(path string) (*Dir, error) { + dir := &Dir{} + var err error + + dir.path, err = cleanPath(path) + if err != nil { + return nil, err + } + + if dir.isInvalidPath() { + return nil, ErrBadGitDirName + } + + return dir, nil +} + +func cleanPath(path string) (string, error) { + abs, err := filepath.Abs(path) + if err != nil { + return "", err + } + + return filepath.Clean(abs), nil +} + +func (d *Dir) isInvalidPath() bool { + return !strings.HasSuffix(d.path, suffix) +} + +// Returns the references in a git directory. +func (d *Dir) Refs() (map[string]core.Hash, error) { + refs, err := d.refsFromPackedRefs() + if err != nil { + return nil, err + } + + if err := d.refsFromRefDir(refs); err != nil { + return nil, err + } + + return refs, err +} + +func (d *Dir) refsFromRefDir(result map[string]core.Hash) error { + return nil +} + +/* +func refsTree(basePath, relPath string, result map[string]core.Hash) error { + fmt.Printf("calling refs(%s, %s, %v)\n", basePath, relPath, result) + files, err := ioutil.ReadDir(basePath + relPath) + if err != nil { + return err + } + + for _, file := range files { + newRelPath := relPath + file.Name() + if file.IsDir() { + refs(basePath, newRelPath+"/", result) + } else { + _ = basePath + newRelPath + hash, err := ReadHashFile(path) + if err != nil { + return err + } + result[newRelPath] = core.NewHash(string(content)) + } + } + + return nil +} +*/ + +// ReadHashFile reads a single hash from a file. If a symbolic +// reference is found instead of a hash, the reference is resolved and +// the proper hash is returned. +func ReadHashFile(repo, relPath string) (core.Hash, error) { + content, err := ioutil.ReadFile(repo) + if err != nil { + return core.ZeroHash, err + } + fmt.Println(string(content)) + return core.ZeroHash, nil +} From 59d77b1a1f4877c8d323f88041c1ffd18a8199ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Tue, 24 May 2016 16:55:15 +0200 Subject: [PATCH 009/143] add parser for packed-refs format --- formats/gitdir/dir.go | 113 +++++++++++++++++++++++++++++++ formats/gitdir/packed_refs.go | 71 -------------------- formats/gitdir/refs.go | 122 +++++++++++----------------------- 3 files changed, 153 insertions(+), 153 deletions(-) create mode 100644 formats/gitdir/dir.go delete mode 100644 formats/gitdir/packed_refs.go diff --git a/formats/gitdir/dir.go b/formats/gitdir/dir.go new file mode 100644 index 000000000..f5fdd9585 --- /dev/null +++ b/formats/gitdir/dir.go @@ -0,0 +1,113 @@ +package gitdir + +import ( + "errors" + "fmt" + "io/ioutil" + "path/filepath" + "strings" + + "gopkg.in/src-d/go-git.v3/core" +) + +const ( + suffix = ".git" + refsDir = "refs/" + packedRefsPath = "packed-refs" +) + +var ( + ErrBadGitDirName = errors.New(`Bad git dir name (must end in ".git")`) +) + +type Dir struct { + path string +} + +// New returns a Dir value ready to be used. The path argument must be +// an existing git repository directory (e.g. "foo/bar/.git") on which +// the "git gc" command has been run. +func New(path string) (*Dir, error) { + dir := &Dir{} + var err error + + dir.path, err = cleanPath(path) + if err != nil { + return nil, err + } + + if dir.isInvalidPath() { + return nil, ErrBadGitDirName + } + + return dir, nil +} + +func cleanPath(path string) (string, error) { + abs, err := filepath.Abs(path) + if err != nil { + return "", err + } + + return filepath.Clean(abs), nil +} + +func (d *Dir) isInvalidPath() bool { + return !strings.HasSuffix(d.path, suffix) +} + +// Returns the references in a git directory. +func (d *Dir) Refs() (map[string]core.Hash, error) { + refs, err := d.refsFromPackedRefs() + if err != nil { + return nil, err + } + + if err := d.refsFromRefDir(refs); err != nil { + return nil, err + } + + return refs, err +} + +func (d *Dir) refsFromRefDir(result map[string]core.Hash) error { + return nil +} + +/* +func refsTree(basePath, relPath string, result map[string]core.Hash) error { + fmt.Printf("calling refs(%s, %s, %v)\n", basePath, relPath, result) + files, err := ioutil.ReadDir(basePath + relPath) + if err != nil { + return err + } + + for _, file := range files { + newRelPath := relPath + file.Name() + if file.IsDir() { + refs(basePath, newRelPath+"/", result) + } else { + _ = basePath + newRelPath + hash, err := ReadHashFile(path) + if err != nil { + return err + } + result[newRelPath] = core.NewHash(string(content)) + } + } + + return nil +} +*/ + +// ReadHashFile reads a single hash from a file. If a symbolic +// reference is found instead of a hash, the reference is resolved and +// the proper hash is returned. +func ReadHashFile(repo, relPath string) (core.Hash, error) { + content, err := ioutil.ReadFile(repo) + if err != nil { + return core.ZeroHash, err + } + fmt.Println(string(content)) + return core.ZeroHash, nil +} diff --git a/formats/gitdir/packed_refs.go b/formats/gitdir/packed_refs.go deleted file mode 100644 index 12a7b2005..000000000 --- a/formats/gitdir/packed_refs.go +++ /dev/null @@ -1,71 +0,0 @@ -package gitdir - -import ( - "bufio" - "errors" - "os" - "path/filepath" - "strings" - - "gopkg.in/src-d/go-git.v3/core" -) - -var ( - ErrPackedRefsDuplicatedRef = errors.New("duplicated ref found in packed-ref file") - ErrPackedRefsBadFormat = errors.New("malformed packed-ref") -) - -func (d *Dir) refsFromPackedRefs() (m map[string]core.Hash, err error) { - result := make(map[string]core.Hash) - - path := filepath.Join(d.path, packedRefsPath) - file, err := os.Open(path) - if err != nil { - if err == os.ErrNotExist { - return result, nil - } - return nil, err - } - defer func() { - errClose := file.Close() - if err == nil { - err = errClose - } - }() - - scanner := bufio.NewScanner(file) - for scanner.Scan() { - line := scanner.Text() - if err = processLine(line, result); err != nil { - return nil, err - } - } - - if err := scanner.Err(); err != nil { - return nil, err - } - - return result, nil -} - -func processLine(line string, refs map[string]core.Hash) error { - switch line[0] { - case '#': // comment - ignore - return nil - case '^': // annotated tag commit of the previous line - ignore - return nil - default: - words := strings.Split(line, " ") // hash then ref - if len(words) != 2 { - return ErrPackedRefsBadFormat - } - hash, ref := words[0], words[1] - - if _, ok := refs[ref]; ok { - return ErrPackedRefsDuplicatedRef - } - refs[ref] = core.NewHash(hash) - } - - return nil -} diff --git a/formats/gitdir/refs.go b/formats/gitdir/refs.go index f5fdd9585..12a7b2005 100644 --- a/formats/gitdir/refs.go +++ b/formats/gitdir/refs.go @@ -1,113 +1,71 @@ package gitdir import ( + "bufio" "errors" - "fmt" - "io/ioutil" + "os" "path/filepath" "strings" "gopkg.in/src-d/go-git.v3/core" ) -const ( - suffix = ".git" - refsDir = "refs/" - packedRefsPath = "packed-refs" -) - var ( - ErrBadGitDirName = errors.New(`Bad git dir name (must end in ".git")`) + ErrPackedRefsDuplicatedRef = errors.New("duplicated ref found in packed-ref file") + ErrPackedRefsBadFormat = errors.New("malformed packed-ref") ) -type Dir struct { - path string -} - -// New returns a Dir value ready to be used. The path argument must be -// an existing git repository directory (e.g. "foo/bar/.git") on which -// the "git gc" command has been run. -func New(path string) (*Dir, error) { - dir := &Dir{} - var err error +func (d *Dir) refsFromPackedRefs() (m map[string]core.Hash, err error) { + result := make(map[string]core.Hash) - dir.path, err = cleanPath(path) + path := filepath.Join(d.path, packedRefsPath) + file, err := os.Open(path) if err != nil { + if err == os.ErrNotExist { + return result, nil + } return nil, err } + defer func() { + errClose := file.Close() + if err == nil { + err = errClose + } + }() - if dir.isInvalidPath() { - return nil, ErrBadGitDirName - } - - return dir, nil -} - -func cleanPath(path string) (string, error) { - abs, err := filepath.Abs(path) - if err != nil { - return "", err - } - - return filepath.Clean(abs), nil -} - -func (d *Dir) isInvalidPath() bool { - return !strings.HasSuffix(d.path, suffix) -} - -// Returns the references in a git directory. -func (d *Dir) Refs() (map[string]core.Hash, error) { - refs, err := d.refsFromPackedRefs() - if err != nil { - return nil, err + scanner := bufio.NewScanner(file) + for scanner.Scan() { + line := scanner.Text() + if err = processLine(line, result); err != nil { + return nil, err + } } - if err := d.refsFromRefDir(refs); err != nil { + if err := scanner.Err(); err != nil { return nil, err } - return refs, err -} - -func (d *Dir) refsFromRefDir(result map[string]core.Hash) error { - return nil + return result, nil } -/* -func refsTree(basePath, relPath string, result map[string]core.Hash) error { - fmt.Printf("calling refs(%s, %s, %v)\n", basePath, relPath, result) - files, err := ioutil.ReadDir(basePath + relPath) - if err != nil { - return err - } +func processLine(line string, refs map[string]core.Hash) error { + switch line[0] { + case '#': // comment - ignore + return nil + case '^': // annotated tag commit of the previous line - ignore + return nil + default: + words := strings.Split(line, " ") // hash then ref + if len(words) != 2 { + return ErrPackedRefsBadFormat + } + hash, ref := words[0], words[1] - for _, file := range files { - newRelPath := relPath + file.Name() - if file.IsDir() { - refs(basePath, newRelPath+"/", result) - } else { - _ = basePath + newRelPath - hash, err := ReadHashFile(path) - if err != nil { - return err - } - result[newRelPath] = core.NewHash(string(content)) + if _, ok := refs[ref]; ok { + return ErrPackedRefsDuplicatedRef } + refs[ref] = core.NewHash(hash) } return nil } -*/ - -// ReadHashFile reads a single hash from a file. If a symbolic -// reference is found instead of a hash, the reference is resolved and -// the proper hash is returned. -func ReadHashFile(repo, relPath string) (core.Hash, error) { - content, err := ioutil.ReadFile(repo) - if err != nil { - return core.ZeroHash, err - } - fmt.Println(string(content)) - return core.ZeroHash, nil -} From b9d13a931104797e200249ff7c7808c5b2ccd9ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Tue, 24 May 2016 17:41:59 +0200 Subject: [PATCH 010/143] WIP adding dir.Refs() tests --- formats/gitdir/dir_test.go | 109 +++++++++++++++++++++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 formats/gitdir/dir_test.go diff --git a/formats/gitdir/dir_test.go b/formats/gitdir/dir_test.go new file mode 100644 index 000000000..3f74bc2af --- /dev/null +++ b/formats/gitdir/dir_test.go @@ -0,0 +1,109 @@ +package gitdir + +import ( + "os" + "path/filepath" + "testing" + + . "gopkg.in/check.v1" + "gopkg.in/src-d/go-git.v3/core" + "gopkg.in/src-d/go-git.v3/utils/tgz" +) + +func Test(t *testing.T) { TestingT(t) } + +var fixtures = [...]struct { + name string + tgz string +}{ + { + name: "spinnaker", + tgz: "fixtures/spinnaker-gc.tgz", + }, +} + +type SuiteGitDir struct { + fixturePath map[string]string // repo names to paths of the extracted tgz +} + +var _ = Suite(&SuiteGitDir{}) + +func (s *SuiteGitDir) SetUpSuite(c *C) { + s.fixturePath = make(map[string]string, len(fixtures)) + + for _, fixture := range fixtures { + comment := Commentf("fixture name = %s\n", fixture.name) + + file, err := os.Open(fixture.tgz) + c.Assert(err, IsNil, comment) + + path, err := tgz.Extract(file) + c.Assert(err, IsNil, comment) + + s.fixturePath[fixture.name] = filepath.Join(path, ".git") + + err = file.Close() + c.Assert(err, IsNil, comment) + } +} + +func (s *SuiteGitDir) TearDownSuite(c *C) { + for name, path := range s.fixturePath { + err := os.RemoveAll(path) + c.Assert(err, IsNil, Commentf("cannot delete tmp dir for fixture %s: %s\n", + name, path)) + } +} + +func (s *SuiteGitDir) TestNewDir(c *C) { + for i, test := range [...]struct { + input string + err error + path string + }{ + { + input: "", + err: ErrBadGitDirName, + }, { + input: "/", + err: ErrBadGitDirName, + }, { + input: "/tmp/foo", + err: ErrBadGitDirName, + }, { + input: "/tmp/../tmp/foo/.git", + path: "/tmp/foo/.git", + }, + } { + comment := Commentf("subtest %d", i) + + dir, err := New(test.input) + c.Assert(err, Equals, test.err, comment) + if test.err == nil { + c.Assert(dir.path, Equals, test.path, comment) + } + } +} + +func (s *SuiteGitDir) TestRefs(c *C) { + for i, test := range [...]struct { + fixture string + refs map[string]core.Hash + }{ + { + fixture: "spinnaker", + refs: map[string]core.Hash{ + "/refs/bla": core.NewHash("fasdfasd"), + }, + }, + } { + comment := Commentf("subtest %d", i) + + dir, err := New(s.fixturePath[test.fixture]) + c.Assert(err, IsNil, comment) + + refs, err := dir.Refs() + c.Assert(err, IsNil, comment) + c.Assert(refs, DeepEquals, test.refs, comment) + } +} From 4af309011c4cbd6faf076b2a248d176e2bb0d0c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Wed, 25 May 2016 10:35:14 +0200 Subject: [PATCH 011/143] Add test for fixture refs --- formats/gitdir/dir_test.go | 46 +++++++++++++++++++++++++++++++++++++- 1 file changed, 45 insertions(+), 1 deletion(-) diff --git a/formats/gitdir/dir_test.go b/formats/gitdir/dir_test.go index 3f74bc2af..1bc4d3a73 100644 --- a/formats/gitdir/dir_test.go +++ b/formats/gitdir/dir_test.go @@ -93,7 +93,51 @@ func (s *SuiteGitDir) TestRefs(c *C) { { fixture: "spinnaker", refs: map[string]core.Hash{ - "/refs/bla": core.NewHash("fasdfasd"), + "refs/heads/master": core.NewHash("409db80e56365049edb704f2ecbd449ddf64dc0d"), + "refs/remotes/origin/HEAD": core.NewHash("409db80e56365049edb704f2ecbd449ddf64dc0d"), + "refs/remotes/origin/explicit-machine-type": core.NewHash("f262e833a215c90b703115691f03f182c1be4b91"), + "refs/remotes/origin/fix-aws-creds-copy": core.NewHash("871cf4d673e0d94c6eb2558bfc7a525c2bc7e538"), + "refs/remotes/origin/kubernetes-no-gcloud": core.NewHash("0b553b5b6fa773f3d7a38b229d9f75627c0762aa"), + "refs/remotes/origin/lwander-patch-igor": core.NewHash("9c987f44908bc9aa05e950347cd03228ba199630"), + "refs/remotes/origin/master": core.NewHash("409db80e56365049edb704f2ecbd449ddf64dc0d"), + "refs/remotes/origin/revert-898-codelab-script-fix": core.NewHash("426cd84d1741d0ff68bad646bc8499b1f163a893"), + "refs/remotes/origin/terraform-aws-prototype": core.NewHash("a34445e7d2e758a8c953fa3a357198ec09fcba88"), + "refs/remotes/origin/typo": core.NewHash("86b48b962e599c096a5870cd8047778bb32a6e1e"), + "refs/tags/v0.10.0": core.NewHash("d081d66c2a76d04ff479a3431dc36e44116fde40"), + "refs/tags/v0.11.0": core.NewHash("3e349f806a0d02bf658c3544c46a0a7a9ee78673"), + "refs/tags/v0.12.0": core.NewHash("82562fa518f0a2e2187ea2604b07b67f2e7049ae"), + "refs/tags/v0.13.0": core.NewHash("48b655898fa9c72d62e8dd73b022ecbddd6e4cc2"), + "refs/tags/v0.14.0": core.NewHash("7ecc2ad58e24a5b52504985467a10c6a3bb85b9b"), + "refs/tags/v0.15.0": core.NewHash("740e3adff4c350899db7772f8f537d1d0d96ec75"), + "refs/tags/v0.16.0": core.NewHash("466ca58a3129f1b2ead117a43535ecb410d621ac"), + "refs/tags/v0.17.0": core.NewHash("48020cb7a45603d47e6041de072fe0665e47676f"), + "refs/tags/v0.18.0": core.NewHash("6fcb9036ab4d921dbdab41baf923320484a11188"), + "refs/tags/v0.19.0": core.NewHash("a2ce1f4c9d0bde4e93dfcb90a445ed069030640c"), + "refs/tags/v0.20.0": core.NewHash("974f476f0ec5a9dcc4bb005384d449f0a5122da4"), + "refs/tags/v0.21.0": core.NewHash("e08e3917f3a0487e33cd6dcef24fe03e570b73f5"), + "refs/tags/v0.22.0": core.NewHash("834612b4f181171d5e1e263b4e7e55d609ab19f5"), + "refs/tags/v0.23.0": core.NewHash("65558da39c07a6f9104651281c226981e880b49c"), + "refs/tags/v0.24.0": core.NewHash("5c97aa1f2f784e92f065055f9e79df83fac7a4aa"), + "refs/tags/v0.25.0": core.NewHash("d6e696f9d5e2dac968638665886e2300ae15709a"), + "refs/tags/v0.26.0": core.NewHash("974861702abd8388e0507cf3f348d6d3c40acef4"), + "refs/tags/v0.27.0": core.NewHash("65771ef145b3e07e130abc84fb07f0b8044fcf59"), + "refs/tags/v0.28.0": core.NewHash("5d86433d6dc4358277a5e9a834948f0822225a6d"), + "refs/tags/v0.29.0": core.NewHash("c1582497c23d81e61963841861c5aebbf10e12ab"), + "refs/tags/v0.3.0": core.NewHash("8b6002b614b454d45bafbd244b127839421f92ff"), + "refs/tags/v0.30.0": core.NewHash("b0f26484aab0afe2f342be84583213c3c64b7eb3"), + "refs/tags/v0.31.0": core.NewHash("8a2da11c9d29e3a879a068c197568c108b9e5f88"), + "refs/tags/v0.32.0": core.NewHash("5c5fc48a1506bb4609ca5588f90cf021a29a4a37"), + "refs/tags/v0.33.0": core.NewHash("d443f1f61e23411d9ac08f0fc6bbeb8e4c46ee39"), + "refs/tags/v0.34.0": core.NewHash("0168d74697d65cde65f931254c09a6bd7ff4f0d5"), + "refs/tags/v0.35.0": core.NewHash("a46303084ad9decf71a8ea9fd1529e22c6fdd2c4"), + "refs/tags/v0.36.0": core.NewHash("4da0d7bb89e85bd5f14ff36d983a0ae773473b2d"), + "refs/tags/v0.37.0": core.NewHash("85ec60477681933961c9b64c18ada93220650ac5"), + "refs/tags/v0.4.0": core.NewHash("95ee6e6c750ded1f4dc5499bad730ce3f58c6c3a"), + "refs/tags/v0.5.0": core.NewHash("0a3fb06ff80156fb153bcdcc58b5e16c2d27625c"), + "refs/tags/v0.6.0": core.NewHash("dc22e2035292ccf020c30d226f3cc2da651773f6"), + "refs/tags/v0.7.0": core.NewHash("3f36d8f1d67538afd1f089ffd0d242fc4fda736f"), + "refs/tags/v0.8.0": core.NewHash("8526c58617f68de076358873b8aa861a354b48a9"), + "refs/tags/v0.9.0": core.NewHash("776914ef8a097f5683957719c49215a5db17c2cb"), }, }, } { From 7ceea2eb3a508cd4e75da2190f0737456ee372e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Wed, 25 May 2016 11:31:20 +0200 Subject: [PATCH 012/143] refs parser for the refs directory --- formats/gitdir/dir.go | 53 ++++--------------------------- formats/gitdir/refs.go | 71 +++++++++++++++++++++++++++++++++++++++++- 2 files changed, 76 insertions(+), 48 deletions(-) diff --git a/formats/gitdir/dir.go b/formats/gitdir/dir.go index f5fdd9585..90fa96449 100644 --- a/formats/gitdir/dir.go +++ b/formats/gitdir/dir.go @@ -2,8 +2,6 @@ package gitdir import ( "errors" - "fmt" - "io/ioutil" "path/filepath" "strings" @@ -22,6 +20,7 @@ var ( type Dir struct { path string + refs map[string]core.Hash } // New returns a Dir value ready to be used. The path argument must be @@ -58,56 +57,16 @@ func (d *Dir) isInvalidPath() bool { // Returns the references in a git directory. func (d *Dir) Refs() (map[string]core.Hash, error) { - refs, err := d.refsFromPackedRefs() + var err error + + d.refs, err = d.initRefsFromPackedRefs() if err != nil { return nil, err } - if err := d.refsFromRefDir(refs); err != nil { + if err = d.addRefsFromRefDir(); err != nil { return nil, err } - return refs, err -} - -func (d *Dir) refsFromRefDir(result map[string]core.Hash) error { - return nil -} - -/* -func refsTree(basePath, relPath string, result map[string]core.Hash) error { - fmt.Printf("calling refs(%s, %s, %v)\n", basePath, relPath, result) - files, err := ioutil.ReadDir(basePath + relPath) - if err != nil { - return err - } - - for _, file := range files { - newRelPath := relPath + file.Name() - if file.IsDir() { - refs(basePath, newRelPath+"/", result) - } else { - _ = basePath + newRelPath - hash, err := ReadHashFile(path) - if err != nil { - return err - } - result[newRelPath] = core.NewHash(string(content)) - } - } - - return nil -} -*/ - -// ReadHashFile reads a single hash from a file. If a symbolic -// reference is found instead of a hash, the reference is resolved and -// the proper hash is returned. -func ReadHashFile(repo, relPath string) (core.Hash, error) { - content, err := ioutil.ReadFile(repo) - if err != nil { - return core.ZeroHash, err - } - fmt.Println(string(content)) - return core.ZeroHash, nil + return d.refs, err } diff --git a/formats/gitdir/refs.go b/formats/gitdir/refs.go index 12a7b2005..64287d731 100644 --- a/formats/gitdir/refs.go +++ b/formats/gitdir/refs.go @@ -3,6 +3,7 @@ package gitdir import ( "bufio" "errors" + "io/ioutil" "os" "path/filepath" "strings" @@ -13,9 +14,14 @@ import ( var ( ErrPackedRefsDuplicatedRef = errors.New("duplicated ref found in packed-ref file") ErrPackedRefsBadFormat = errors.New("malformed packed-ref") + ErrSymRefTargetNotFound = errors.New("symbolic reference target not found") ) -func (d *Dir) refsFromPackedRefs() (m map[string]core.Hash, err error) { +const ( + symRefPrefix = "ref: " +) + +func (d *Dir) initRefsFromPackedRefs() (m map[string]core.Hash, err error) { result := make(map[string]core.Hash) path := filepath.Join(d.path, packedRefsPath) @@ -48,6 +54,7 @@ func (d *Dir) refsFromPackedRefs() (m map[string]core.Hash, err error) { return result, nil } +// process lines from a packed-refs file func processLine(line string, refs map[string]core.Hash) error { switch line[0] { case '#': // comment - ignore @@ -69,3 +76,65 @@ func processLine(line string, refs map[string]core.Hash) error { return nil } + +func (d *Dir) addRefsFromRefDir() error { + return d.walkTree("refs") +} + +func (d *Dir) walkTree(relPath string) error { + files, err := ioutil.ReadDir(filepath.Join(d.path, relPath)) + if err != nil { + return err + } + + for _, file := range files { + newRelPath := filepath.Join(relPath, file.Name()) + + if file.IsDir() { + if err = d.walkTree(newRelPath); err != nil { + return err + } + } else { + filePath := filepath.Join(d.path, newRelPath) + hash, err := d.readHashFile(filePath) + if err != nil { + return err + } + d.refs[newRelPath] = hash + } + } + + return nil +} + +// ReadHashFile reads a single hash from a file. If a symbolic +// reference is found instead of a hash, the reference is resolved and +// the proper hash is returned. +func (d *Dir) readHashFile(path string) (core.Hash, error) { + bytes, err := ioutil.ReadFile(path) + if err != nil { + return core.ZeroHash, err + } + content := strings.TrimSpace(string(bytes)) + + if isSymRef(content) { + return d.resolveSymRef(content) + } + + return core.NewHash(content), nil +} + +func isSymRef(contents string) bool { + return strings.HasPrefix(contents, symRefPrefix) +} + +func (d *Dir) resolveSymRef(symRef string) (core.Hash, error) { + ref := strings.TrimPrefix(symRef, symRefPrefix) + + hash, ok := d.refs[ref] + if !ok { + return core.ZeroHash, ErrSymRefTargetNotFound + } + + return hash, nil +} From c6f255f7b66ddb499f082c3dd260414c6844e9a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Wed, 25 May 2016 12:35:59 +0200 Subject: [PATCH 013/143] Documentation --- clients/file/git_upload_pack_test.go | 4 +++- formats/gitdir/dir.go | 6 +++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/clients/file/git_upload_pack_test.go b/clients/file/git_upload_pack_test.go index c85469eab..ce0fab9e0 100644 --- a/clients/file/git_upload_pack_test.go +++ b/clients/file/git_upload_pack_test.go @@ -3,6 +3,7 @@ package file import ( "io/ioutil" "os" + "path/filepath" "testing" "gopkg.in/src-d/go-git.v3/clients/common" @@ -35,7 +36,8 @@ func (s *SuiteFileClient) SetUpSuite(c *C) { s.fixturePath, err = tgz.Extract(file) c.Assert(err, IsNil) - s.fixtureURL = common.Endpoint("file://" + s.fixturePath + "/.git") + s.fixtureURL = common.Endpoint("file://" + + filepath.Join(s.fixturePath+".git")) } func (s *SuiteFileClient) TearDownSuite(c *C) { diff --git a/formats/gitdir/dir.go b/formats/gitdir/dir.go index 90fa96449..9ee80980c 100644 --- a/formats/gitdir/dir.go +++ b/formats/gitdir/dir.go @@ -24,8 +24,7 @@ type Dir struct { } // New returns a Dir value ready to be used. The path argument must be -// an existing git repository directory (e.g. "foo/bar/.git") on which -// the "git gc" command has been run. +// an existing git repository directory (e.g. "/foo/bar/.git"). func New(path string) (*Dir, error) { dir := &Dir{} var err error @@ -55,7 +54,8 @@ func (d *Dir) isInvalidPath() bool { return !strings.HasSuffix(d.path, suffix) } -// Returns the references in a git directory. +// Refs scans the git directory collecting references, which it returns. +// Symbolic references are resolved and included in the output. func (d *Dir) Refs() (map[string]core.Hash, error) { var err error From 8f8ab6a5810a8b071165878f865bf75a06d55f47 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Wed, 25 May 2016 14:15:44 +0200 Subject: [PATCH 014/143] Add Capabilities to file client --- clients/file/git_upload_pack.go | 18 ++++++++++--- clients/file/git_upload_pack_test.go | 8 +++--- formats/gitdir/dir.go | 38 ++++++++++++++++++++++++++++ 3 files changed, 56 insertions(+), 8 deletions(-) diff --git a/clients/file/git_upload_pack.go b/clients/file/git_upload_pack.go index 29d2d1967..6f868fdb3 100644 --- a/clients/file/git_upload_pack.go +++ b/clients/file/git_upload_pack.go @@ -1,15 +1,18 @@ package file import ( - "fmt" + "errors" "io" "strings" "gopkg.in/src-d/go-git.v3/clients/common" - "gopkg.in/src-d/go-git.v3/core" "gopkg.in/src-d/go-git.v3/formats/gitdir" ) +var ( + ErrHeadSymRefNotFound = errors.New("HEAD symbolic reference not found") +) + type GitUploadPackService struct { dir *gitdir.Dir } @@ -48,9 +51,16 @@ func (s *GitUploadPackService) Info() (*common.GitUploadPackInfo, error) { return info, err } - fmt.Println(info.Refs) + if info.Capabilities, err = s.dir.Capabilities(); err != nil { + return info, err + } + + headSymRef := info.Capabilities.SymbolicReference("HEAD") + var ok bool + if info.Head, ok = info.Refs[headSymRef]; !ok { + return info, ErrHeadSymRefNotFound + } - info.Head = core.ZeroHash return info, nil } diff --git a/clients/file/git_upload_pack_test.go b/clients/file/git_upload_pack_test.go index ce0fab9e0..ac30105bf 100644 --- a/clients/file/git_upload_pack_test.go +++ b/clients/file/git_upload_pack_test.go @@ -22,10 +22,10 @@ type SuiteFileClient struct { var _ = Suite(&SuiteFileClient{}) -const repositoryFixture = "../../formats/gitdir/fixtures/spinnaker-gc.tgz" +const fixtureTGZ = "../../formats/gitdir/fixtures/spinnaker-gc.tgz" func (s *SuiteFileClient) SetUpSuite(c *C) { - file, err := os.Open(repositoryFixture) + file, err := os.Open(fixtureTGZ) c.Assert(err, IsNil) defer func() { @@ -37,7 +37,7 @@ func (s *SuiteFileClient) SetUpSuite(c *C) { c.Assert(err, IsNil) s.fixtureURL = common.Endpoint("file://" + - filepath.Join(s.fixturePath+".git")) + filepath.Join(s.fixturePath, ".git")) } func (s *SuiteFileClient) TearDownSuite(c *C) { @@ -77,7 +77,7 @@ func (s *SuiteFileClient) TestDefaultBranch(c *C) { c.Assert(info.Capabilities.SymbolicReference("HEAD"), Equals, "refs/heads/master") } -func (s *SuiteFileClient) TestFetch(c *C) { +func (s *SuiteFileClient) ATestFetch(c *C) { r := NewGitUploadPackService() c.Assert(r.Connect(s.fixtureURL), IsNil) diff --git a/formats/gitdir/dir.go b/formats/gitdir/dir.go index 9ee80980c..fcb135fb0 100644 --- a/formats/gitdir/dir.go +++ b/formats/gitdir/dir.go @@ -2,9 +2,12 @@ package gitdir import ( "errors" + "io/ioutil" + "os" "path/filepath" "strings" + "gopkg.in/src-d/go-git.v3/clients/common" "gopkg.in/src-d/go-git.v3/core" ) @@ -70,3 +73,38 @@ func (d *Dir) Refs() (map[string]core.Hash, error) { return d.refs, err } + +// Capabilities scans the git directory collection capabilities, which it returns. +func (d *Dir) Capabilities() (*common.Capabilities, error) { + caps := common.NewCapabilities() + + d.addSymRefCapability(caps) + + return caps, nil +} + +func (d *Dir) addSymRefCapability(cap *common.Capabilities) (err error) { + file, err := os.Open(filepath.Join(d.path, "HEAD")) + if err != nil { + return err + } + + defer func() { + errClose := file.Close() + if err == nil { + err = errClose + } + }() + + bytes, err := ioutil.ReadAll(file) + if err != nil { + return err + } + contents := strings.TrimSpace(string(bytes)) + + capablity := "symref" + ref := strings.TrimPrefix(contents, symRefPrefix) + cap.Set(capablity, "HEAD:"+ref) + + return nil +} From b0abcfbc35df1f4b9cf258d4e72f462da96b2029 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Wed, 25 May 2016 14:27:39 +0200 Subject: [PATCH 015/143] tgz.Exatract now accpets a path instead of a Reader --- clients/common_test.go | 19 +++++++------------ clients/file/git_upload_pack_test.go | 12 +++--------- formats/gitdir/dir_test.go | 8 +------- utils/tgz/tgz.go | 18 +++++++++++++++--- 4 files changed, 26 insertions(+), 31 deletions(-) diff --git a/clients/common_test.go b/clients/common_test.go index 0febbc33b..b69aa5dcc 100644 --- a/clients/common_test.go +++ b/clients/common_test.go @@ -15,26 +15,21 @@ import ( func Test(t *testing.T) { TestingT(t) } type SuiteCommon struct { - dirRemotePath string + dirFixturePath string } var _ = Suite(&SuiteCommon{}) -func (s *SuiteCommon) SetUpSuite(c *C) { - file, err := os.Open("../formats/gitdir/fixtures/spinnaker-gc.tgz") - c.Assert(err, IsNil) +const fixtureTGZ = "../formats/gitdir/fixtures/spinnaker-gc.tgz" - defer func() { - err := file.Close() - c.Assert(err, IsNil) - }() - - s.dirRemotePath, err = tgz.Extract(file) +func (s *SuiteCommon) SetUpSuite(c *C) { + var err error + s.dirFixturePath, err = tgz.Extract(fixtureTGZ) c.Assert(err, IsNil) } func (s *SuiteCommon) TearDownSuite(c *C) { - err := os.RemoveAll(s.dirRemotePath) + err := os.RemoveAll(s.dirFixturePath) c.Assert(err, IsNil) } @@ -49,7 +44,7 @@ func (s *SuiteCommon) TestNewGitUploadPackService(c *C) { {"http://github.com/src-d/go-git", false, "*http.GitUploadPackService"}, {"https://github.com/src-d/go-git", false, "*http.GitUploadPackService"}, {"ssh://github.com/src-d/go-git", false, "*ssh.GitUploadPackService"}, - {"file://" + s.dirRemotePath, false, "*file.GitUploadPackService"}, + {"file://" + s.dirFixturePath, false, "*file.GitUploadPackService"}, } for i, t := range tests { diff --git a/clients/file/git_upload_pack_test.go b/clients/file/git_upload_pack_test.go index ac30105bf..5d53fb2c4 100644 --- a/clients/file/git_upload_pack_test.go +++ b/clients/file/git_upload_pack_test.go @@ -25,15 +25,9 @@ var _ = Suite(&SuiteFileClient{}) const fixtureTGZ = "../../formats/gitdir/fixtures/spinnaker-gc.tgz" func (s *SuiteFileClient) SetUpSuite(c *C) { - file, err := os.Open(fixtureTGZ) - c.Assert(err, IsNil) - - defer func() { - err := file.Close() - c.Assert(err, IsNil) - }() + var err error - s.fixturePath, err = tgz.Extract(file) + s.fixturePath, err = tgz.Extract(fixtureTGZ) c.Assert(err, IsNil) s.fixtureURL = common.Endpoint("file://" + @@ -77,7 +71,7 @@ func (s *SuiteFileClient) TestDefaultBranch(c *C) { c.Assert(info.Capabilities.SymbolicReference("HEAD"), Equals, "refs/heads/master") } -func (s *SuiteFileClient) ATestFetch(c *C) { +func (s *SuiteFileClient) TestFetch(c *C) { r := NewGitUploadPackService() c.Assert(r.Connect(s.fixtureURL), IsNil) diff --git a/formats/gitdir/dir_test.go b/formats/gitdir/dir_test.go index 1bc4d3a73..f9cc65431 100644 --- a/formats/gitdir/dir_test.go +++ b/formats/gitdir/dir_test.go @@ -34,16 +34,10 @@ func (s *SuiteGitDir) SetUpSuite(c *C) { for _, fixture := range fixtures { comment := Commentf("fixture name = %s\n", fixture.name) - file, err := os.Open(fixture.tgz) - c.Assert(err, IsNil, comment) - - path, err := tgz.Extract(file) + path, err := tgz.Extract(fixture.tgz) c.Assert(err, IsNil, comment) s.fixturePath[fixture.name] = filepath.Join(path, ".git") - - err = file.Close() - c.Assert(err, IsNil, comment) } } diff --git a/utils/tgz/tgz.go b/utils/tgz/tgz.go index 0445150bf..cfe667c83 100644 --- a/utils/tgz/tgz.go +++ b/utils/tgz/tgz.go @@ -22,13 +22,25 @@ const ( // On error, a non-nil error and an empty string are returned if the // newly created directory is was correctly deleted. If not, its path is // returned instead of the empty string. -func Extract(srcFile io.Reader) (string, error) { - dstPath, err := ioutil.TempDir(useDefaultTempDir, tmpPrefix) +func Extract(srcPath string) (dstPath string, err error) { + file, err := os.Open(srcPath) + if err != nil { + return "", err + } + + defer func() { + errClose := file.Close() + if err == nil { + err = errClose + } + }() + + dstPath, err = ioutil.TempDir(useDefaultTempDir, tmpPrefix) if err != nil { return "", nil } - tarReader, err := zipTarReader(srcFile) + tarReader, err := zipTarReader(file) if err != nil { return deleteDir(dstPath, err) } From 700d0bc15e90aecc6b4ddda6cb6a3fc0ef67545a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Mon, 30 May 2016 18:49:27 +0200 Subject: [PATCH 016/143] fix bug in idxfile fanout calculation --- formats/idxfile/reader.go | 6 +++--- formats/idxfile/writer.go | 4 ---- 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/formats/idxfile/reader.go b/formats/idxfile/reader.go index 150bd5b57..96fb60a1d 100644 --- a/formats/idxfile/reader.go +++ b/formats/idxfile/reader.go @@ -7,7 +7,7 @@ import ( "fmt" "io" - "gopkg.in/src-d/go-git.v2/core" + "gopkg.in/src-d/go-git.v3/core" ) const ( @@ -214,8 +214,8 @@ func (r *Reader) readInt64() (uint64, error) { return value, nil } -func calculateFanout(idx *Idx) [255]uint32 { - fanout := [255]uint32{} +func calculateFanout(idx *Idx) [256]uint32 { + fanout := [256]uint32{} var c uint32 for _, e := range idx.Objects { c++ diff --git a/formats/idxfile/writer.go b/formats/idxfile/writer.go index 86f87aecb..e8b525ea6 100644 --- a/formats/idxfile/writer.go +++ b/formats/idxfile/writer.go @@ -61,10 +61,6 @@ func (w *Writer) writeFanout(idx *Idx) (int, error) { } } - if err := w.writeInt32(uint32(len(idx.Objects))); err != nil { - return 0, err - } - return 1024, nil } From 8799836bd265f65934517f50a85ce095868fe5f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Mon, 30 May 2016 18:50:37 +0200 Subject: [PATCH 017/143] remove dead code --- formats/packfile/common.go | 20 -------------------- 1 file changed, 20 deletions(-) diff --git a/formats/packfile/common.go b/formats/packfile/common.go index b5f8de290..57bc0b983 100644 --- a/formats/packfile/common.go +++ b/formats/packfile/common.go @@ -41,23 +41,3 @@ func (t *trackingReader) ReadByte() (c byte, err error) { t.position++ return p[0], nil } - -// checkClose is used with defer to close the given io.Closer and check its -// returned error value. If Close returns an error and the given *error -// is not nil, *error is set to the error returned by Close. -// -// checkClose is typically used with named return values like so: -// -// func do(obj *Object) (err error) { -// w, err := obj.Writer() -// if err != nil { -// return nil -// } -// defer checkClose(w, &err) -// // work with w -// } -func checkClose(c io.Closer, err *error) { - if cerr := c.Close(); cerr != nil && *err == nil { - *err = cerr - } -} From a9cbe73d6585bbbb0040af4b0f31633c877ad8e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Mon, 30 May 2016 18:52:36 +0200 Subject: [PATCH 018/143] packfile documentation --- formats/packfile/doc.go | 128 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 128 insertions(+) diff --git a/formats/packfile/doc.go b/formats/packfile/doc.go index f5f57dcea..cb3f542a2 100644 --- a/formats/packfile/doc.go +++ b/formats/packfile/doc.go @@ -1,5 +1,8 @@ package packfile +// GIT pack format +// =============== +// // == pack-*.pack files have the following format: // // - A header appears at the beginning and consists of the following: @@ -33,5 +36,130 @@ package packfile // // - The trailer records 20-byte SHA1 checksum of all of the above. // +// == Original (version 1) pack-*.idx files have the following format: +// +// - The header consists of 256 4-byte network byte order +// integers. N-th entry of this table records the number of +// objects in the corresponding pack, the first byte of whose +// object name is less than or equal to N. This is called the +// 'first-level fan-out' table. +// +// - The header is followed by sorted 24-byte entries, one entry +// per object in the pack. Each entry is: +// +// 4-byte network byte order integer, recording where the +// object is stored in the packfile as the offset from the +// beginning. +// +// 20-byte object name. +// +// - The file is concluded with a trailer: +// +// A copy of the 20-byte SHA1 checksum at the end of +// corresponding packfile. +// +// 20-byte SHA1-checksum of all of the above. +// +// Pack Idx file: +// +// -- +--------------------------------+ +// fanout | fanout[0] = 2 (for example) |-. +// table +--------------------------------+ | +// | fanout[1] | | +// +--------------------------------+ | +// | fanout[2] | | +// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | +// | fanout[255] = total objects |---. +// -- +--------------------------------+ | | +// main | offset | | | +// index | object name 00XXXXXXXXXXXXXXXX | | | +// table +--------------------------------+ | | +// | offset | | | +// | object name 00XXXXXXXXXXXXXXXX | | | +// +--------------------------------+<+ | +// .-| offset | | +// | | object name 01XXXXXXXXXXXXXXXX | | +// | +--------------------------------+ | +// | | offset | | +// | | object name 01XXXXXXXXXXXXXXXX | | +// | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | +// | | offset | | +// | | object name FFXXXXXXXXXXXXXXXX | | +// --| +--------------------------------+<--+ +// trailer | | packfile checksum | +// | +--------------------------------+ +// | | idxfile checksum | +// | +--------------------------------+ +// .-------. +// | +// Pack file entry: <+ +// +// packed object header: +// 1-byte size extension bit (MSB) +// type (next 3 bit) +// size0 (lower 4-bit) +// n-byte sizeN (as long as MSB is set, each 7-bit) +// size0..sizeN form 4+7+7+..+7 bit integer, size0 +// is the least significant part, and sizeN is the +// most significant part. +// packed object data: +// If it is not DELTA, then deflated bytes (the size above +// is the size before compression). +// If it is REF_DELTA, then +// 20-byte base object name SHA1 (the size above is the +// size of the delta data that follows). +// delta data, deflated. +// If it is OFS_DELTA, then +// n-byte offset (see below) interpreted as a negative +// offset from the type-byte of the header of the +// ofs-delta entry (the size above is the size of +// the delta data that follows). +// delta data, deflated. +// +// offset encoding: +// n bytes with MSB set in all but the last one. +// The offset is then the number constructed by +// concatenating the lower 7 bit of each byte, and +// for n >= 2 adding 2^7 + 2^14 + ... + 2^(7*(n-1)) +// to the result. +// +// +// +// == Version 2 pack-*.idx files support packs larger than 4 GiB, and +// have some other reorganizations. They have the format: +// +// - A 4-byte magic number '\377tOc' which is an unreasonable +// fanout[0] value. +// +// - A 4-byte version number (= 2) +// +// - A 256-entry fan-out table just like v1. +// +// - A table of sorted 20-byte SHA1 object names. These are +// packed together without offset values to reduce the cache +// footprint of the binary search for a specific object name. +// +// - A table of 4-byte CRC32 values of the packed object data. +// This is new in v2 so compressed data can be copied directly +// from pack to pack during repacking without undetected +// data corruption. +// +// - A table of 4-byte offset values (in network byte order). +// These are usually 31-bit pack file offsets, but large +// offsets are encoded as an index into the next table with +// the msbit set. +// +// - A table of 8-byte offset entries (empty for pack files less +// than 2 GiB). Pack files are organized with heavily used +// objects toward the front, so most object references should +// not need to refer to this table. +// +// - The same trailer as a v1 pack file: +// +// A copy of the 20-byte SHA1 checksum at the end of +// corresponding packfile. +// +// 20-byte SHA1-checksum of all of the above. +// // From: // https://www.kernel.org/pub/software/scm/git/docs/v1.7.5/technical/pack-protocol.txt From c7e998487950461d7dfa9bffc7651c8b3e0c8f47 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Mon, 30 May 2016 18:55:30 +0200 Subject: [PATCH 019/143] clean packfile parser code --- formats/packfile/delta.go | 59 +++------ formats/packfile/parse.go | 239 +++++++++++++++++++++++++++++++++++++ formats/packfile/reader.go | 183 +++++----------------------- 3 files changed, 285 insertions(+), 196 deletions(-) create mode 100644 formats/packfile/parse.go diff --git a/formats/packfile/delta.go b/formats/packfile/delta.go index 571ccf878..aa3a04a45 100644 --- a/formats/packfile/delta.go +++ b/formats/packfile/delta.go @@ -1,7 +1,5 @@ package packfile -import "io" - const deltaSizeMin = 4 func deltaHeaderSize(b []byte) (uint, []byte) { @@ -18,7 +16,8 @@ func deltaHeaderSize(b []byte) (uint, []byte) { return size, b[j:] } -func patchDelta(src, delta []byte) []byte { +// PatchDelta returns the result of applying the modification deltas in delta to src. +func PatchDelta(src, delta []byte) []byte { if len(delta) < deltaSizeMin { return nil } @@ -29,7 +28,7 @@ func patchDelta(src, delta []byte) []byte { size, delta = deltaHeaderSize(delta) origSize := size - dest := make([]byte, 0) + var dest []byte // var offset uint var cmd byte @@ -37,46 +36,46 @@ func patchDelta(src, delta []byte) []byte { cmd = delta[0] delta = delta[1:] if (cmd & 0x80) != 0 { - var cp_off, cp_size uint + var cpOff, cpSize uint if (cmd & 0x01) != 0 { - cp_off = uint(delta[0]) + cpOff = uint(delta[0]) delta = delta[1:] } if (cmd & 0x02) != 0 { - cp_off |= uint(delta[0]) << 8 + cpOff |= uint(delta[0]) << 8 delta = delta[1:] } if (cmd & 0x04) != 0 { - cp_off |= uint(delta[0]) << 16 + cpOff |= uint(delta[0]) << 16 delta = delta[1:] } if (cmd & 0x08) != 0 { - cp_off |= uint(delta[0]) << 24 + cpOff |= uint(delta[0]) << 24 delta = delta[1:] } if (cmd & 0x10) != 0 { - cp_size = uint(delta[0]) + cpSize = uint(delta[0]) delta = delta[1:] } if (cmd & 0x20) != 0 { - cp_size |= uint(delta[0]) << 8 + cpSize |= uint(delta[0]) << 8 delta = delta[1:] } if (cmd & 0x40) != 0 { - cp_size |= uint(delta[0]) << 16 + cpSize |= uint(delta[0]) << 16 delta = delta[1:] } - if cp_size == 0 { - cp_size = 0x10000 + if cpSize == 0 { + cpSize = 0x10000 } - if cp_off+cp_size < cp_off || - cp_off+cp_size > uint(len(src)) || - cp_size > origSize { + if cpOff+cpSize < cpOff || + cpOff+cpSize > uint(len(src)) || + cpSize > origSize { break } - dest = append(dest, src[cp_off:cp_off+cp_size]...) - size -= cp_size + dest = append(dest, src[cpOff:cpOff+cpSize]...) + size -= cpSize } else if cmd != 0 { if uint(cmd) > origSize { break @@ -93,25 +92,3 @@ func patchDelta(src, delta []byte) []byte { } return dest } - -func decodeOffset(src io.ByteReader, steps int64) (int64, error) { - b, err := src.ReadByte() - if err != nil { - return 0, err - } - - var offset = int64(b & 0x7f) - for (b & 0x80) != 0 { - offset++ // WHY? - b, err = src.ReadByte() - if err != nil { - return 0, err - } - - offset = (offset << 7) + int64(b&0x7f) - } - - // offset needs to be aware of the bytes we read for `o.typ` and `o.size` - offset += steps - return -offset, nil -} diff --git a/formats/packfile/parse.go b/formats/packfile/parse.go new file mode 100644 index 000000000..581a2b5b1 --- /dev/null +++ b/formats/packfile/parse.go @@ -0,0 +1,239 @@ +package packfile + +import ( + "bytes" + "compress/zlib" + "fmt" + "io" + + "gopkg.in/src-d/go-git.v3/core" + "gopkg.in/src-d/go-git.v3/storage/memory" +) + +const fromTheBeginning = 0 + +// Rememberer can be asked to return already seen objects, either by +// hash or by offset in the packfile. It is used to resolve deltified +// objects in the packfile. +type Rememberer interface { + ByHash(hash core.Hash) (core.Object, error) + ByOffset(offset int64) (core.Object, error) +} + +// ObjectAt returns the object at the given offset in a packfile. +func ObjectAt(packfile io.ReadSeeker, + offset int64, remember Rememberer) (core.Object, error) { + + _, err := packfile.Seek(offset, fromTheBeginning) + if err != nil { + return nil, err + } + + typ, length, err := readTypeAndLength(packfile) + if err != nil { + return nil, err + } + + var content []byte + switch typ { + case core.CommitObject, core.TreeObject, core.BlobObject, core.TagObject: + content, err = readContent(packfile) + case core.REFDeltaObject: + content, typ, err = readContentREFDelta(packfile, remember) + length = int64(len(content)) + case core.OFSDeltaObject: + content, typ, err = readContentOFSDelta(packfile, offset, remember) + length = int64(len(content)) + default: + err = fmt.Errorf("invalid object type: tag %q", typ) + } + if err != nil { + return nil, err + } + + return memory.NewObject(typ, length, content), err +} + +func readTypeAndLength(packfile io.Reader) (core.ObjectType, int64, error) { + var buf [1]byte + if _, err := packfile.Read(buf[:]); err != nil { + return core.ObjectType(0), 0, err + } + + typ := parseType(buf[0]) + + length, err := readLength(buf[0], packfile) + + return typ, length, err +} + +var ( + maskContinue = uint8(128) // 1000 0000 + maskType = uint8(112) // 0111 0000 + maskFirstLength = uint8(15) // 0000 1111 + firstLengthBits = uint8(4) // the first byte has 4 bits to store the length + maskLength = uint8(127) // 0111 1111 + lengthBits = uint8(7) // subsequent bytes has 7 bits to store the length +) + +func parseType(b byte) core.ObjectType { + return core.ObjectType((b & maskType) >> firstLengthBits) +} + +// Reads the last 4 bits from the first byte in the object. +// If more bytes are required for the length, read more bytes +// and use the first 7 bits of each one until no more bytes +// are required. +func readLength(first byte, packfile io.Reader) (int64, error) { + length := int64(first & maskFirstLength) + + buf := [1]byte{first} + shift := firstLengthBits + for moreBytesInLength(buf[0]) { + if _, err := packfile.Read(buf[:]); err != nil { + return 0, err + } + + length += int64(buf[0]&maskLength) << shift + shift += lengthBits + } + + return length, nil +} + +func moreBytesInLength(b byte) bool { + return b&maskContinue > 0 +} + +func readContent(packfile io.Reader) ([]byte, error) { + buf := bytes.NewBuffer(nil) + err := inflate(packfile, buf) + + return buf.Bytes(), err +} + +func readContentREFDelta(packfile io.Reader, remember Rememberer) (content []byte, + typ core.ObjectType, err error) { + + var ref core.Hash + if _, err := io.ReadFull(packfile, ref[:]); err != nil { + return nil, core.ObjectType(0), err + } + + diff := bytes.NewBuffer(nil) + if err := inflate(packfile, diff); err != nil { + return nil, core.ObjectType(0), err + } + + referenced, err := remember.ByHash(ref) + if err != nil { + return nil, core.ObjectType(0), fmt.Errorf("reference not found: %s", ref) + } + + content = PatchDelta(referenced.Content(), diff.Bytes()) + if content == nil { + return nil, core.ObjectType(0), fmt.Errorf("patching error: %q", ref) + } + + return content, referenced.Type(), nil +} + +func inflate(r io.Reader, w io.Writer) (err error) { + zr, err := zlib.NewReader(r) + if err != nil { + if err != zlib.ErrHeader { + return fmt.Errorf("zlib reading error: %s", err) + } + } + + defer func() { + closeErr := zr.Close() + if err == nil { + err = closeErr + } + }() + + _, err = io.Copy(w, zr) + return err +} + +func readContentOFSDelta(packfile io.Reader, + objectStart int64, remember Rememberer) (content []byte, + typ core.ObjectType, err error) { + + offset, err := readNegativeOffset(packfile) + if err != nil { + return nil, core.ObjectType(0), err + } + + diff := bytes.NewBuffer(nil) + if err := inflate(packfile, diff); err != nil { + return nil, core.ObjectType(0), err + } + + referenced, err := remember.ByOffset(objectStart + offset) + if err != nil { + return nil, core.ObjectType(0), err + } + + patched := PatchDelta(referenced.Content(), diff.Bytes()) + if patched == nil { + return nil, core.ObjectType(0), fmt.Errorf("paching error") + } + + return patched, referenced.Type(), nil +} + +// Git VLQ is quite special: +// +// Ordinary VLQ has some redundancies, example: the number 358 can be +// encoded as the 2-octet VLQ 0x8166 or the 3-octet VLQ 0x808166 or the +// 4-octet VLQ 0x80808166 and so forth. +// +// To avoid these redundancies, the VLQ format used in Git removes this +// prepending redundancy and extends the representable range of shorter +// VLQs by adding an offset to VLQs of 2 or more octets in such a way +// that the lowest possible value for such an (N+1)-octet VLQ becomes +// exactly one more than the maximum possible value for an N-octet VLQ. +// In particular, since a 1-octet VLQ can store a maximum value of 127, +// the minimum 2-octet VLQ (0x8000) is assigned the value 128 instead of +// 0. Conversely, the maximum value of such a 2-octet VLQ (0xff7f) is +// 16511 instead of just 16383. Similarly, the minimum 3-octet VLQ +// (0x808000) has a value of 16512 instead of zero, which means that the +// maximum 3-octet VLQ (0xffff7f) is 2113663 instead of just 2097151. +// And so forth. +// +// This is how the offset is saved in C: +// +// dheader[pos] = ofs & 127; +// while (ofs >>= 7) +// dheader[--pos] = 128 | (--ofs & 127); +// +func readNegativeOffset(packfile io.Reader) (int64, error) { + var b byte + var err error + + if b, err = readByte(packfile); err != nil { + return 0, err + } + + var offset = int64(b & maskLength) + for moreBytesInLength(b) { + offset++ + if b, err = readByte(packfile); err != nil { + return 0, err + } + offset = (offset << lengthBits) + int64(b&maskLength) + } + + return -offset, nil +} + +func readByte(r io.Reader) (byte, error) { + buf := [1]byte{} + if _, err := r.Read(buf[:]); err != nil { + return 0, err + } + + return buf[0], nil +} diff --git a/formats/packfile/reader.go b/formats/packfile/reader.go index 3f7081b9c..3fc3479ec 100644 --- a/formats/packfile/reader.go +++ b/formats/packfile/reader.go @@ -5,11 +5,9 @@ import ( "encoding/binary" "fmt" "io" - "io/ioutil" "gopkg.in/src-d/go-git.v3/core" - - "github.com/klauspost/compress/zlib" + "gopkg.in/src-d/go-git.v3/storage/memory" ) type Format int @@ -40,7 +38,7 @@ type Reader struct { // MaxObjectsLimit is the limit of objects to be load in the packfile, if // a packfile excess this number an error is throw, the default value // is defined by DefaultMaxObjectsLimit, usually the default limit is more - // than enough to work with any repository, working extremely big repositories + // than enough to work with any repository, working extremly big repositories // where the number of object is bigger the memory can be exhausted. MaxObjectsLimit uint32 @@ -134,7 +132,7 @@ func (r *Reader) readObjects(count uint32) error { r.offsets[start] = obj.Hash() } - r.s.Set(obj) + _, err = r.s.Set(obj) if err == io.EOF { break } @@ -144,174 +142,49 @@ func (r *Reader) readObjects(count uint32) error { } func (r *Reader) newObject() (core.Object, error) { - raw, err := r.s.New() - if err != nil { - return nil, err - } - var steps int64 + var typ core.ObjectType + var length int64 + var content []byte - var buf [1]byte - if _, err := r.r.Read(buf[:]); err != nil { - return nil, err - } + objectStart := r.r.position - typ := core.ObjectType((buf[0] >> 4) & 7) - size := int64(buf[0] & 15) - steps++ // byte we just read to get `o.typ` and `o.size` - - var shift uint = 4 - for buf[0]&0x80 == 0x80 { - if _, err := r.r.Read(buf[:]); err != nil { - return nil, err - } - - size += int64(buf[0]&0x7f) << shift - steps++ // byte we just read to update `o.size` - shift += 7 + typ, length, err := readTypeAndLength(r.r) + if err != nil { + return nil, err } - raw.SetType(typ) - raw.SetSize(size) - - switch raw.Type() { + switch typ { case core.REFDeltaObject: - err = r.readREFDelta(raw) + content, typ, err = readContentREFDelta(r.r, r) + length = int64(len(content)) case core.OFSDeltaObject: - err = r.readOFSDelta(raw, steps) + content, typ, err = readContentOFSDelta(r.r, objectStart, r) + length = int64(len(content)) case core.CommitObject, core.TreeObject, core.BlobObject, core.TagObject: - err = r.readObject(raw) + content, err = readContent(r.r) default: - err = InvalidObjectErr.n("tag %q", raw.Type) - } - - return raw, err -} - -func (r *Reader) readREFDelta(raw core.Object) (err error) { - var ref core.Hash - if _, err := io.ReadFull(r.r, ref[:]); err != nil { - return err - } - - buf := bytes.NewBuffer(nil) - if err := r.inflate(buf); err != nil { - return err - } - - referenced, err := r.s.Get(ref) - if err != nil { - if err == core.ErrObjectNotFound { - return ErrObjectNotFound.n("%s", ref) - } - return err + err = InvalidObjectErr.n("tag %q", typ) } - - reader, err := referenced.Reader() if err != nil { - return err - } - defer checkClose(reader, &err) - - d, err := ioutil.ReadAll(reader) - if err != nil { - return err - } - - patched := patchDelta(d, buf.Bytes()) - if patched == nil { - return PatchingErr.n("hash %q", ref) - } - - raw.SetType(referenced.Type()) - raw.SetSize(int64(len(patched))) - - writer, err := raw.Writer() - if err != nil { - return err - } - defer checkClose(writer, &err) - - writer.Write(patched) - - return nil -} - -func (r *Reader) readOFSDelta(raw core.Object, steps int64) (err error) { - start := r.r.position - offset, err := decodeOffset(r.r, steps) - if err != nil { - return err - } - - buf := bytes.NewBuffer(nil) - if err = r.inflate(buf); err != nil { - return err - } - - ref, ok := r.offsets[start+offset] - if !ok { - return PackEntryNotFoundErr.n("offset %d", start+offset) - } - - referenced, err := r.s.Get(ref) - if err != nil { - return err - } - - reader, err := referenced.Reader() - if err != nil { - return err - } - defer checkClose(reader, &err) - - d, err := ioutil.ReadAll(reader) - if err != nil { - return err - } - - patched := patchDelta(d, buf.Bytes()) - if patched == nil { - return PatchingErr.n("hash %q", ref) - } - - raw.SetType(referenced.Type()) - raw.SetSize(int64(len(patched))) - - writer, err := raw.Writer() - if err != nil { - return err + return nil, err } - defer checkClose(writer, &err) - - writer.Write(patched) - return nil + return memory.NewObject(typ, length, content), err } -func (r *Reader) readObject(raw core.Object) (err error) { - writer, err := raw.Writer() - if err != nil { - return err - } - defer checkClose(writer, &err) - - return r.inflate(writer) +// Returns an already seen object by its hash, part of Rememberer interface. +func (r *Reader) ByHash(hash core.Hash) (core.Object, error) { + return r.s.Get(hash) } -func (r *Reader) inflate(w io.Writer) error { - zr, err := zlib.NewReader(r.r) - if err != nil { - if err == zlib.ErrHeader { - return zlib.ErrHeader - } - - return ZLibErr.n("%s", err) +// Returns an already seen object by its offset in the packfile, part of Rememberer interface. +func (r *Reader) ByOffset(offset int64) (core.Object, error) { + hash, ok := r.offsets[offset] + if !ok { + return nil, PackEntryNotFoundErr.n("offset %d", offset) } - defer zr.Close() - - _, err = io.Copy(w, zr) - return err + return r.ByHash(hash) } type ReaderError struct { From 84dd3507041a6dce31fdd545811d642a8e2397ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Mon, 30 May 2016 18:59:19 +0200 Subject: [PATCH 020/143] add core.Object.Content() and returns errors for core.ObjectStorage.Iter() --- core/object.go | 3 ++- examples/basic/main.go | 5 ++++- repository.go | 18 ++++++++++++++---- repository_test.go | 12 +++++++++--- storage/memory/object.go | 13 +++++++++++++ storage/memory/storage.go | 4 ++-- 6 files changed, 44 insertions(+), 11 deletions(-) diff --git a/core/object.go b/core/object.go index 9dd906b76..11dcae6c5 100644 --- a/core/object.go +++ b/core/object.go @@ -34,6 +34,7 @@ type Object interface { SetType(ObjectType) Size() int64 SetSize(int64) + Content() []byte Reader() (ObjectReader, error) Writer() (ObjectWriter, error) } @@ -43,7 +44,7 @@ type ObjectStorage interface { New() (Object, error) Set(Object) (Hash, error) Get(Hash) (Object, error) - Iter(ObjectType) ObjectIter + Iter(ObjectType) (ObjectIter, error) } // ObjectType internal object type's diff --git a/examples/basic/main.go b/examples/basic/main.go index f5a1c8a8a..88ba5c6a0 100644 --- a/examples/basic/main.go +++ b/examples/basic/main.go @@ -19,7 +19,10 @@ func main() { panic(err) } - iter := r.Commits() + iter, err := r.Commits() + if err != nil { + panic(err) + } defer iter.Close() for { diff --git a/repository.go b/repository.go index 65e0a5d06..6487f037e 100644 --- a/repository.go +++ b/repository.go @@ -118,8 +118,13 @@ func (r *Repository) Commit(h core.Hash) (*Commit, error) { } // Commits decode the objects into commits -func (r *Repository) Commits() *CommitIter { - return NewCommitIter(r, r.Storage.Iter(core.CommitObject)) +func (r *Repository) Commits() (*CommitIter, error) { + iter, err := r.Storage.Iter(core.CommitObject) + if err != nil { + return nil, err + } + + return NewCommitIter(r, iter), nil } // Tree return the tree with the given hash @@ -166,8 +171,13 @@ func (r *Repository) Tag(h core.Hash) (*Tag, error) { // Tags returns a TagIter that can step through all of the annotated tags // in the repository. -func (r *Repository) Tags() *TagIter { - return NewTagIter(r, r.Storage.Iter(core.TagObject)) +func (r *Repository) Tags() (*TagIter, error) { + iter, err := r.Storage.Iter(core.TagObject) + if err != nil { + return nil, err + } + + return NewTagIter(r, iter), nil } // Object returns an object with the given hash. diff --git a/repository_test.go b/repository_test.go index 1f57b1874..76a450f41 100644 --- a/repository_test.go +++ b/repository_test.go @@ -87,7 +87,8 @@ func (s *SuiteRepository) TestCommits(c *C) { c.Assert(r.Pull("origin", "refs/heads/master"), IsNil) count := 0 - commits := r.Commits() + commits, err := r.Commits() + c.Assert(err, IsNil) for { commit, err := commits.Next() if err != nil { @@ -123,7 +124,11 @@ func (s *SuiteRepository) TestTags(c *C) { for i, t := range tagTests { r, ok := s.repos[t.repo] c.Assert(ok, Equals, true) - testTagIter(c, r.Tags(), t.tags, fmt.Sprintf("subtest %d, ", i)) + + tags, err := r.Tags() + c.Assert(err, IsNil) + + testTagIter(c, tags, t.tags, fmt.Sprintf("subtest %d, ", i)) } } @@ -150,6 +155,7 @@ func (s *SuiteRepository) TestCommitIterClosePanic(c *C) { c.Assert(err, IsNil) c.Assert(r.Pull("origin", "refs/heads/master"), IsNil) - commits := r.Commits() + commits, err := r.Commits() + c.Assert(err, IsNil) commits.Close() } diff --git a/storage/memory/object.go b/storage/memory/object.go index 125e88769..7c32e495e 100644 --- a/storage/memory/object.go +++ b/storage/memory/object.go @@ -15,6 +15,16 @@ type Object struct { size int64 } +// NewObject creates a new object with the given type and content +func NewObject(typ core.ObjectType, size int64, content []byte) *Object { + return &Object{ + t: typ, + h: core.ComputeHash(typ, content), + content: content, + size: int64(len(content)), + } +} + // Hash return the object Hash, the hash is calculated on-the-fly the first // time is called, the subsequent calls the same Hash is returned even in the // type or the content has changed. The Hash is only generated if the size of @@ -39,6 +49,9 @@ func (o *Object) Size() int64 { return o.size } // SetSize set the object size, the given size should be written afterwards func (o *Object) SetSize(s int64) { o.size = s } +// Content returns the contents of the object +func (o *Object) Content() []byte { return o.content } + // Reader returns a core.ObjectReader used to read the object's content. func (o *Object) Reader() (core.ObjectReader, error) { return ioutil.NopCloser(bytes.NewBuffer(o.content)), nil diff --git a/storage/memory/storage.go b/storage/memory/storage.go index fbf4bc474..4b99ab5b4 100644 --- a/storage/memory/storage.go +++ b/storage/memory/storage.go @@ -65,7 +65,7 @@ func (o *ObjectStorage) Get(h core.Hash) (core.Object, error) { } // Iter returns a core.ObjectIter for the given core.ObjectTybe -func (o *ObjectStorage) Iter(t core.ObjectType) core.ObjectIter { +func (o *ObjectStorage) Iter(t core.ObjectType) (core.ObjectIter, error) { var series []core.Object switch t { case core.CommitObject: @@ -77,7 +77,7 @@ func (o *ObjectStorage) Iter(t core.ObjectType) core.ObjectIter { case core.TagObject: series = flattenObjectMap(o.Tags) } - return core.NewObjectSliceIter(series) + return core.NewObjectSliceIter(series), nil } func flattenObjectMap(m map[core.Hash]core.Object) []core.Object { From bf295bd12e2b91b095787a3e0e61eb4794c18293 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Mon, 30 May 2016 19:03:57 +0200 Subject: [PATCH 021/143] add seekable storage --- .../fixtures/alcortesm-binary-relations.idx | Bin 0 -> 3312 bytes formats/packfile/fixtures/git-fixture.idx | Bin 0 -> 1856 bytes .../packfile/fixtures/spinnaker-spinnaker.idx | Bin 0 -> 61636 bytes storage/seekable/internal/index/index.go | 47 + storage/seekable/internal/index/index_test.go | 2281 +++++++++++++++++ storage/seekable/store.go | 116 + storage/seekable/store_test.go | 178 ++ 7 files changed, 2622 insertions(+) create mode 100644 formats/packfile/fixtures/alcortesm-binary-relations.idx create mode 100644 formats/packfile/fixtures/git-fixture.idx create mode 100644 formats/packfile/fixtures/spinnaker-spinnaker.idx create mode 100644 storage/seekable/internal/index/index.go create mode 100644 storage/seekable/internal/index/index_test.go create mode 100644 storage/seekable/store.go create mode 100644 storage/seekable/store_test.go diff --git a/formats/packfile/fixtures/alcortesm-binary-relations.idx b/formats/packfile/fixtures/alcortesm-binary-relations.idx new file mode 100644 index 0000000000000000000000000000000000000000..d0a8d1cad4a23232e66db0c80e53ba6daa32c2fa GIT binary patch literal 3312 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 literal 0 HcmV?d00001 diff --git a/formats/packfile/fixtures/spinnaker-spinnaker.idx b/formats/packfile/fixtures/spinnaker-spinnaker.idx new file mode 100644 index 0000000000000000000000000000000000000000..0613ee2e0eaf5be78c19385752fd9a23fcdae0fd GIT binary patch literal 61636 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⩔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 Date: Tue, 31 May 2016 17:10:35 +0200 Subject: [PATCH 022/143] add dir repos to NewRepository --- clients/common.go | 2 +- clients/common/common.go | 4 ++ clients/common_test.go | 2 +- clients/file/git_upload_pack.go | 3 +- clients/file/git_upload_pack_test.go | 2 +- formats/gitdir/dir.go | 63 ++++++++++++++++++++++++++++ repository.go | 48 +++++++++++++++++++++ repository_test.go | 55 +++++++++++++++++++++--- 8 files changed, 170 insertions(+), 9 deletions(-) diff --git a/clients/common.go b/clients/common.go index 1e3e60d13..012b5f439 100644 --- a/clients/common.go +++ b/clients/common.go @@ -26,7 +26,7 @@ var DefaultProtocols = map[string]common.GitUploadPackService{ "http": http.NewGitUploadPackService(), "https": http.NewGitUploadPackService(), "ssh": ssh.NewGitUploadPackService(), - "file": file.NewGitUploadPackService(), + "dir": file.NewGitUploadPackService(), } // KnownProtocols holds the current set of known protocols. Initially diff --git a/clients/common/common.go b/clients/common/common.go index df6fc6647..0b2253ef9 100644 --- a/clients/common/common.go +++ b/clients/common/common.go @@ -37,6 +37,10 @@ type AuthMethod interface { type Endpoint string func NewEndpoint(url string) (Endpoint, error) { + if strings.HasPrefix(url, "dir://") { + return Endpoint(url), nil + } + vcs, err := vcsurl.Parse(url) if err != nil { return "", core.NewPermanentError(err) diff --git a/clients/common_test.go b/clients/common_test.go index b69aa5dcc..2011bb5a8 100644 --- a/clients/common_test.go +++ b/clients/common_test.go @@ -44,7 +44,7 @@ func (s *SuiteCommon) TestNewGitUploadPackService(c *C) { {"http://github.com/src-d/go-git", false, "*http.GitUploadPackService"}, {"https://github.com/src-d/go-git", false, "*http.GitUploadPackService"}, {"ssh://github.com/src-d/go-git", false, "*ssh.GitUploadPackService"}, - {"file://" + s.dirFixturePath, false, "*file.GitUploadPackService"}, + {"dir://" + s.dirFixturePath, false, "*file.GitUploadPackService"}, } for i, t := range tests { diff --git a/clients/file/git_upload_pack.go b/clients/file/git_upload_pack.go index 6f868fdb3..f0468520d 100644 --- a/clients/file/git_upload_pack.go +++ b/clients/file/git_upload_pack.go @@ -2,6 +2,7 @@ package file import ( "errors" + "fmt" "io" "strings" @@ -65,5 +66,5 @@ func (s *GitUploadPackService) Info() (*common.GitUploadPackInfo, error) { } func (s *GitUploadPackService) Fetch(r *common.GitUploadPackRequest) (io.ReadCloser, error) { - return nil, nil + return nil, fmt.Errorf("fetch makes no sense for dir clients") } diff --git a/clients/file/git_upload_pack_test.go b/clients/file/git_upload_pack_test.go index 5d53fb2c4..31ce225f0 100644 --- a/clients/file/git_upload_pack_test.go +++ b/clients/file/git_upload_pack_test.go @@ -71,7 +71,7 @@ func (s *SuiteFileClient) TestDefaultBranch(c *C) { c.Assert(info.Capabilities.SymbolicReference("HEAD"), Equals, "refs/heads/master") } -func (s *SuiteFileClient) TestFetch(c *C) { +func (s *SuiteFileClient) NoTestFetch(c *C) { r := NewGitUploadPackService() c.Assert(r.Connect(s.fixtureURL), IsNil) diff --git a/formats/gitdir/dir.go b/formats/gitdir/dir.go index fcb135fb0..11455ea5e 100644 --- a/formats/gitdir/dir.go +++ b/formats/gitdir/dir.go @@ -1,7 +1,10 @@ package gitdir import ( + "bytes" "errors" + "fmt" + "io" "io/ioutil" "os" "path/filepath" @@ -19,6 +22,7 @@ const ( var ( ErrBadGitDirName = errors.New(`Bad git dir name (must end in ".git")`) + ErrIdxNotFound = errors.New("idx file not found") ) type Dir struct { @@ -108,3 +112,62 @@ func (d *Dir) addSymRefCapability(cap *common.Capabilities) (err error) { return nil } + +func (d *Dir) Packfile() (io.ReadSeeker, error) { + pattern := d.pattern(true) + list, err := filepath.Glob(pattern) + if err != nil { + return nil, err + } + + if len(list) == 0 { + return nil, fmt.Errorf("packfile not found") + } + + if len(list) > 1 { + return nil, fmt.Errorf("found more than one packfile") + } + + return os.Open(list[0]) +} + +func (d *Dir) pattern(isPackfile bool) string { + // packfile pattern: dpath + /objects/pack/pack-????????????????????????????????????????.pack + // idx pattern: dpath + /objects/pack/pack-????????????????????????????????????????.idx + var buf bytes.Buffer + buf.WriteString(d.path) + buf.WriteByte(os.PathSeparator) + buf.WriteString("objects") + buf.WriteByte(os.PathSeparator) + buf.WriteString("pack") + buf.WriteByte(os.PathSeparator) + buf.WriteString("pack-") + for i := 0; i < 40; i++ { + buf.WriteString("[0-9a-f]") + } + if isPackfile { + buf.WriteString(".pack") + } else { + buf.WriteString(".idx") + } + + return buf.String() +} + +func (d *Dir) Idxfile() (io.Reader, error) { + pattern := d.pattern(false) + list, err := filepath.Glob(pattern) + if err != nil { + return nil, err + } + + if len(list) == 0 { + return nil, ErrIdxNotFound + } + + if len(list) > 1 { + return nil, fmt.Errorf("found more than one idxfile") + } + + return os.Open(list[0]) +} diff --git a/repository.go b/repository.go index 6487f037e..79d3c8eb6 100644 --- a/repository.go +++ b/repository.go @@ -3,11 +3,14 @@ package git import ( "errors" "fmt" + "strings" "gopkg.in/src-d/go-git.v3/clients/common" "gopkg.in/src-d/go-git.v3/core" + "gopkg.in/src-d/go-git.v3/formats/gitdir" "gopkg.in/src-d/go-git.v3/formats/packfile" "gopkg.in/src-d/go-git.v3/storage/memory" + "gopkg.in/src-d/go-git.v3/storage/seekable" ) var ( @@ -66,6 +69,16 @@ func (r *Repository) Pull(remoteName, branch string) (err error) { return fmt.Errorf("unable to find remote %q", remoteName) } + url := string(remote.Endpoint) + if isDirRepo(url) { + r.Storage, err = storeFromDir(url) + if err != nil { + return err + } + + return nil + } + if err := remote.Connect(); err != nil { return err } @@ -98,6 +111,41 @@ func (r *Repository) Pull(remoteName, branch string) (err error) { return nil } +const dirScheme = "dir://" + +func isDirRepo(url string) bool { + fmt.Println("pulling ", url) + if strings.HasPrefix(url, dirScheme) { + return true + } + + return false +} + +func storeFromDir(url string) (*seekable.ObjectStorage, error) { + path := strings.TrimPrefix(url, dirScheme) + dir, err := gitdir.New(path) + if err != nil { + return nil, err + } + + packfile, err := dir.Packfile() + if err != nil { + return nil, err + } + + idxfile, err := dir.Idxfile() + if err != nil { + // if there is no idx file, just keep on, we will manage to create one + // on the fly. + if err != gitdir.ErrIdxNotFound { + return nil, err + } + } + + return seekable.New(packfile, idxfile) +} + // PullDefault like Pull but retrieve the default branch from the default remote func (r *Repository) PullDefault() (err error) { return r.Pull(DefaultRemoteName, "") diff --git a/repository_test.go b/repository_test.go index 76a450f41..ab995a3c8 100644 --- a/repository_test.go +++ b/repository_test.go @@ -2,21 +2,54 @@ package git import ( "fmt" + "os" + "path/filepath" "gopkg.in/src-d/go-git.v3/clients/http" "gopkg.in/src-d/go-git.v3/core" + "gopkg.in/src-d/go-git.v3/storage/seekable" + "gopkg.in/src-d/go-git.v3/utils/tgz" . "gopkg.in/check.v1" ) +var dirFixtures = [...]struct { + name string + tgz string +}{ + { + name: "spinnaker", + tgz: "formats/gitdir/fixtures/spinnaker-gc.tgz", + }, +} + type SuiteRepository struct { - repos map[string]*Repository + repos map[string]*Repository + dirFixturePaths map[string]string } var _ = Suite(&SuiteRepository{}) func (s *SuiteRepository) SetUpSuite(c *C) { s.repos = unpackFixtures(c, tagFixtures, treeWalkerFixtures) + + s.dirFixturePaths = make(map[string]string, len(dirFixtures)) + for _, fixture := range dirFixtures { + comment := Commentf("fixture name = %s\n", fixture.name) + + path, err := tgz.Extract(fixture.tgz) + c.Assert(err, IsNil, comment) + + s.dirFixturePaths[fixture.name] = filepath.Join(path, ".git") + } +} + +func (s *SuiteRepository) TearDownSuite(c *C) { + for name, path := range s.dirFixturePaths { + err := os.RemoveAll(path) + c.Assert(err, IsNil, Commentf("cannot delete tmp dir for fixture %s: %s\n", + name, path)) + } } func (s *SuiteRepository) TestNewRepository(c *C) { @@ -33,6 +66,20 @@ func (s *SuiteRepository) TestNewRepositoryWithAuth(c *C) { c.Assert(r.Remotes["origin"].Auth, Equals, auth) } +func (s *SuiteRepository) TestNewSeekableRepository(c *C) { + for name, path := range s.dirFixturePaths { + comment := Commentf("dir fixture %q → %q\n", name, path) + repo, err := NewRepository("dir://"+path, nil) + c.Assert(err, IsNil, comment) + + err = repo.PullDefault() + c.Assert(err, IsNil, comment) + + c.Assert(repo.Storage, NotNil, comment) + c.Assert(repo.Storage, FitsTypeOf, &seekable.ObjectStorage{}, comment) + } +} + func (s *SuiteRepository) TestPull(c *C) { r, err := NewRepository(RepositoryFixture, nil) r.Remotes["origin"].upSrv = &MockGitUploadPackService{} @@ -124,11 +171,9 @@ func (s *SuiteRepository) TestTags(c *C) { for i, t := range tagTests { r, ok := s.repos[t.repo] c.Assert(ok, Equals, true) - - tags, err := r.Tags() + tagsIter, err := r.Tags() c.Assert(err, IsNil) - - testTagIter(c, tags, t.tags, fmt.Sprintf("subtest %d, ", i)) + testTagIter(c, tagsIter, t.tags, fmt.Sprintf("subtest %d, ", i)) } } From ec5dc02297dc3d6261c0009cd1067ee0c5b2077d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Tue, 31 May 2016 17:43:08 +0200 Subject: [PATCH 023/143] clean prints --- repository.go | 1 - 1 file changed, 1 deletion(-) diff --git a/repository.go b/repository.go index 79d3c8eb6..802e16c76 100644 --- a/repository.go +++ b/repository.go @@ -114,7 +114,6 @@ func (r *Repository) Pull(remoteName, branch string) (err error) { const dirScheme = "dir://" func isDirRepo(url string) bool { - fmt.Println("pulling ", url) if strings.HasPrefix(url, dirScheme) { return true } From 60cb1c4a38ea37683d693f46327a61c8e4ea4df8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Thu, 2 Jun 2016 09:48:10 +0200 Subject: [PATCH 024/143] Add dir client documentation to README --- README.md | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 57f7f6427..ad8107182 100644 --- a/README.md +++ b/README.md @@ -67,6 +67,23 @@ for { } ``` +Bare and non-bare local repositories are also supported as remotes using the +`dir://` scheme and the path of their `.git` directory: + +```go +// pushd /tmp ; git clone https://github.com/src-d/go-git ; popd +r, err := git.NewRepository("dir:///tmp/go-git/.git", nil) +if err != nil { + panic(err) +} + +if err := r.PullDefault(); err != nil { + panic(err) +} + +// ... +``` + Outputs: ``` commit 2275fa7d0c75d20103f90b0e1616937d5a9fc5e6 @@ -112,7 +129,6 @@ if err != nil { fmt.Println(commit) ``` - Acknowledgements ---------------- From 1b6f227d8842fbe99748c341f5e5b237343eff83 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Thu, 2 Jun 2016 09:52:20 +0200 Subject: [PATCH 025/143] Organize the README --- README.md | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index ad8107182..2b1274d75 100644 --- a/README.md +++ b/README.md @@ -67,23 +67,6 @@ for { } ``` -Bare and non-bare local repositories are also supported as remotes using the -`dir://` scheme and the path of their `.git` directory: - -```go -// pushd /tmp ; git clone https://github.com/src-d/go-git ; popd -r, err := git.NewRepository("dir:///tmp/go-git/.git", nil) -if err != nil { - panic(err) -} - -if err := r.PullDefault(); err != nil { - panic(err) -} - -// ... -``` - Outputs: ``` commit 2275fa7d0c75d20103f90b0e1616937d5a9fc5e6 @@ -104,6 +87,23 @@ Date: 2015-12-11 17:57:10 +0100 +0100 ... ``` +Bare and non-bare local repositories are also supported as remotes using the +`dir://` scheme and the path of their `.git` directory: + +```go +// pushd /tmp ; git clone https://github.com/src-d/go-git ; popd +r, err := git.NewRepository("dir:///tmp/go-git/.git", nil) +if err != nil { + panic(err) +} + +if err := r.PullDefault(); err != nil { + panic(err) +} + +// ... +``` + Retrieving the latest commit for a given repository: ```go From 137fd9f61df3d77f4db199906586b6c833fa79b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Fri, 3 Jun 2016 11:46:58 +0200 Subject: [PATCH 026/143] README --- README.md | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 2b1274d75..86dba6e36 100644 --- a/README.md +++ b/README.md @@ -87,8 +87,14 @@ Date: 2015-12-11 17:57:10 +0100 +0100 ... ``` -Bare and non-bare local repositories are also supported as remotes using the -`dir://` scheme and the path of their `.git` directory: +Bare and non-bare local repositories are also supported using the `dir://` +scheme and the path of the desired `.git` directory. To be able to use a git +repository as a `dir://` remote, you must first prepare it by running `git gc` +on it. + +When using this kind of remote, git objects are not cached in memory and all +operations require a read from the packfile on disk, this is much slower than +having all the repository contents in memory, but uses very little memory. ```go // pushd /tmp ; git clone https://github.com/src-d/go-git ; popd From 265a977afaf7525890643d90db4cea5442cd1c55 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Fri, 3 Jun 2016 13:53:16 +0200 Subject: [PATCH 027/143] Clean tgz package --- utils/tgz/fixtures/invalid-gzip.tgz | Bin 0 -> 10 bytes utils/tgz/fixtures/not-a-tar.tgz | Bin 0 -> 37 bytes utils/tgz/fixtures/test-01.tgz | Bin 0 -> 146 bytes utils/tgz/fixtures/test-02.tgz | Bin 0 -> 143 bytes utils/tgz/fixtures/test-03.tgz | Bin 0 -> 264 bytes utils/tgz/tgz.go | 22 +++--- utils/tgz/tgz_test.go | 105 ++++++++++++++++++++++++++++ 7 files changed, 116 insertions(+), 11 deletions(-) create mode 100644 utils/tgz/fixtures/invalid-gzip.tgz create mode 100644 utils/tgz/fixtures/not-a-tar.tgz create mode 100644 utils/tgz/fixtures/test-01.tgz create mode 100644 utils/tgz/fixtures/test-02.tgz create mode 100644 utils/tgz/fixtures/test-03.tgz create mode 100644 utils/tgz/tgz_test.go diff --git a/utils/tgz/fixtures/invalid-gzip.tgz b/utils/tgz/fixtures/invalid-gzip.tgz new file mode 100644 index 0000000000000000000000000000000000000000..cb43b5ce1342e5d73830ac8b6a37ea870fae2632 GIT binary patch literal 10 KcmZQzfB^si3IG8B literal 0 HcmV?d00001 diff --git a/utils/tgz/fixtures/not-a-tar.tgz b/utils/tgz/fixtures/not-a-tar.tgz new file mode 100644 index 0000000000000000000000000000000000000000..3afd7b12d9ae8eb62caf0ff0e188af23618b049c GIT binary patch literal 37 qcmb2|=HQr~7#PmLoR?pso2XloSfmHU49N)%j0|NNU5~jK7#IN0=?cF9 literal 0 HcmV?d00001 diff --git a/utils/tgz/fixtures/test-01.tgz b/utils/tgz/fixtures/test-01.tgz new file mode 100644 index 0000000000000000000000000000000000000000..c922f2935d82cb5d3ff726892aca0c3630914ea7 GIT binary patch literal 146 zcmb2|=3sE%?iIHw+e_nFIht>I!Lw|gF#>=2vN1b2%*150H z$TEL!ipBNJbM94V-`UPT!p^(V`_<9P_g(^%kMCF8l%E^dJMm}P&UI_+?))~h*RKc=hjz8bHa4u8ZmDWp_zsv8M;-jg#C;y@X ze_MOj&Nshyo}Tq3t>>eiuKM3O`APF^tGsT;Ub)lm*tG7~>gks^PPb&y48D7QZ*A@N sE&qc{wQj%4|9J7f+pqtJ7H;kRdj0v|^k2*jNWgoY(3Jzi3>pj!0L0`(umAu6 literal 0 HcmV?d00001 diff --git a/utils/tgz/fixtures/test-03.tgz b/utils/tgz/fixtures/test-03.tgz new file mode 100644 index 0000000000000000000000000000000000000000..142da5ddf5dd15edf4350018e4a1c8cacdbd1c62 GIT binary patch literal 264 zcmV+j0r&nNiwFShZBbVM1MSyQYJ@Nl#_=4*6Le>inaOz!v`+=WwNQHcCW_!oX+xQ? z3*Ya>2L*+{8Dp8(TX05IR&7VlO4s8laLiGnnHmRTmYl<+-VfG%+_!n1rZB&k*L7Qd zyzaO2PpZ`ZZ_DzseQs{|Xn{@SZ~et;|3oZdBDW{HK>u5rzaFRmzWx(YME? Date: Fri, 3 Jun 2016 14:21:15 +0200 Subject: [PATCH 028/143] Clean temp dirs after tgz tests --- utils/tgz/tgz_test.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/utils/tgz/tgz_test.go b/utils/tgz/tgz_test.go index 71e26a6fd..b45d1cdc1 100644 --- a/utils/tgz/tgz_test.go +++ b/utils/tgz/tgz_test.go @@ -22,6 +22,9 @@ func (s *SuiteTGZ) TestExtract(c *C) { path, err := Extract(test.tgz) if test.err != "" { c.Assert(err, ErrorMatches, test.err, comment) + + _, err := os.Stat(path) + c.Assert(os.IsNotExist(err), Equals, true, comment) } else { c.Assert(err, IsNil, comment) @@ -30,6 +33,9 @@ func (s *SuiteTGZ) TestExtract(c *C) { sort.Strings(test.tree) c.Assert(obtained, DeepEquals, test.tree, comment) + + err = os.RemoveAll(path) + c.Assert(err, IsNil, comment) } } } From 7e5de245fff61c9a157e9765d92b334b23d8b520 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Fri, 3 Jun 2016 14:34:09 +0200 Subject: [PATCH 029/143] Gometalinter on gitdir --- formats/gitdir/dir.go | 66 +++++++++++++++++++++++++++++--------- formats/gitdir/dir_test.go | 17 ++++++---- formats/gitdir/refs.go | 12 +++++-- 3 files changed, 71 insertions(+), 24 deletions(-) diff --git a/formats/gitdir/dir.go b/formats/gitdir/dir.go index 11455ea5e..f926eef3e 100644 --- a/formats/gitdir/dir.go +++ b/formats/gitdir/dir.go @@ -16,15 +16,18 @@ import ( const ( suffix = ".git" - refsDir = "refs/" packedRefsPath = "packed-refs" ) var ( + // ErrBadGitDirName is returned when the passed path is not a .git directory. ErrBadGitDirName = errors.New(`Bad git dir name (must end in ".git")`) - ErrIdxNotFound = errors.New("idx file not found") + // ErrIdxNotFound is returned when the idx file is not found on the repository. + ErrIdxNotFound = errors.New("idx file not found") ) +// The Dir type represents a local git repository on disk. This +// type is not zero-value-safe, use the New function to initialize it. type Dir struct { path string refs map[string]core.Hash @@ -82,9 +85,9 @@ func (d *Dir) Refs() (map[string]core.Hash, error) { func (d *Dir) Capabilities() (*common.Capabilities, error) { caps := common.NewCapabilities() - d.addSymRefCapability(caps) + err := d.addSymRefCapability(caps) - return caps, nil + return caps, err } func (d *Dir) addSymRefCapability(cap *common.Capabilities) (err error) { @@ -113,6 +116,7 @@ func (d *Dir) addSymRefCapability(cap *common.Capabilities) (err error) { return nil } +// Packfile returns a readseeker of the packfile in the repository. func (d *Dir) Packfile() (io.ReadSeeker, error) { pattern := d.pattern(true) list, err := filepath.Glob(pattern) @@ -131,29 +135,61 @@ func (d *Dir) Packfile() (io.ReadSeeker, error) { return os.Open(list[0]) } -func (d *Dir) pattern(isPackfile bool) string { +func (d *Dir) pattern(isPackfile bool) (string, err) { // packfile pattern: dpath + /objects/pack/pack-????????????????????????????????????????.pack // idx pattern: dpath + /objects/pack/pack-????????????????????????????????????????.idx var buf bytes.Buffer - buf.WriteString(d.path) - buf.WriteByte(os.PathSeparator) - buf.WriteString("objects") - buf.WriteByte(os.PathSeparator) - buf.WriteString("pack") - buf.WriteByte(os.PathSeparator) - buf.WriteString("pack-") + _, err := buf.WriteString(d.path) + if err != nil { + return "", nil + } + _, err := buf.WriteByte(os.PathSeparator) + if err != nil { + return "", nil + } + _, err := buf.WriteString("objects") + if err != nil { + return "", nil + } + _, err := buf.WriteByte(os.PathSeparator) + if err != nil { + return "", nil + } + _, err := buf.WriteString("pack") + if err != nil { + return "", nil + } + _, err := buf.WriteByte(os.PathSeparator) + if err != nil { + return "", nil + } + _, err := buf.WriteString("pack-") + if err != nil { + return "", nil + } for i := 0; i < 40; i++ { - buf.WriteString("[0-9a-f]") + _, err := buf.WriteString("[0-9a-f]") + if err != nil { + return "", nil + } } if isPackfile { - buf.WriteString(".pack") + _, err := buf.WriteString(".pack") + if err != nil { + return "", nil + } } else { - buf.WriteString(".idx") + _, err := buf.WriteString(".idx") + if err != nil { + return "", nil + } } return buf.String() } +// Idxfile returns a reader of the idx file in the repository. +// TODO: should it return a readcloser instead? func (d *Dir) Idxfile() (io.Reader, error) { pattern := d.pattern(false) list, err := filepath.Glob(pattern) diff --git a/formats/gitdir/dir_test.go b/formats/gitdir/dir_test.go index f9cc65431..9490c8481 100644 --- a/formats/gitdir/dir_test.go +++ b/formats/gitdir/dir_test.go @@ -1,6 +1,7 @@ package gitdir import ( + "fmt" "os" "path/filepath" "testing" @@ -12,7 +13,7 @@ import ( func Test(t *testing.T) { TestingT(t) } -var fixtures = [...]struct { +var initFixtures = [...]struct { name string tgz string }{ @@ -23,26 +24,28 @@ var fixtures = [...]struct { } type SuiteGitDir struct { - fixturePath map[string]string // repo names to paths of the extracted tgz + fixtures map[string]string // repo names to paths of the extracted tgz } var _ = Suite(&SuiteGitDir{}) func (s *SuiteGitDir) SetUpSuite(c *C) { - s.fixturePath = make(map[string]string, len(fixtures)) + s.fixtures = make(map[string]string, len(initFixtures)) - for _, fixture := range fixtures { + for _, fixture := range initFixtures { comment := Commentf("fixture name = %s\n", fixture.name) path, err := tgz.Extract(fixture.tgz) c.Assert(err, IsNil, comment) - s.fixturePath[fixture.name] = filepath.Join(path, ".git") + s.fixtures[fixture.name] = filepath.Join(path, ".git") } } func (s *SuiteGitDir) TearDownSuite(c *C) { - for name, path := range s.fixturePath { + for name, path := range s.fixtures { + dir := filepath.Base(path) + fmt.Println(dir, path) err := os.RemoveAll(path) c.Assert(err, IsNil, Commentf("cannot delete tmp dir for fixture %s: %s\n", name, path)) @@ -137,7 +140,7 @@ func (s *SuiteGitDir) TestRefs(c *C) { } { comment := Commentf("subtest %d", i) - dir, err := New(s.fixturePath[test.fixture]) + dir, err := New(s.fixtures[test.fixture]) c.Assert(err, IsNil, comment) refs, err := dir.Refs() diff --git a/formats/gitdir/refs.go b/formats/gitdir/refs.go index 64287d731..44209c7cc 100644 --- a/formats/gitdir/refs.go +++ b/formats/gitdir/refs.go @@ -12,9 +12,17 @@ import ( ) var ( + // ErrPackedRefsDuplicatedRef is returned when a duplicated + // reference is found in the packed-ref file. This is usually the + // case for corrupted git repositories. ErrPackedRefsDuplicatedRef = errors.New("duplicated ref found in packed-ref file") - ErrPackedRefsBadFormat = errors.New("malformed packed-ref") - ErrSymRefTargetNotFound = errors.New("symbolic reference target not found") + // ErrPackedRefsBadFormat is returned when the packed-ref file + // corrupt. + ErrPackedRefsBadFormat = errors.New("malformed packed-ref") + // ErrSymRefTargetNotFound is returned when a symbolic reference is + // targeting a non-existing object. This usually means the + // repository is corrupt. + ErrSymRefTargetNotFound = errors.New("symbolic reference target not found") ) const ( From 41f66dfc8a9fc6fff00d9a121f27a82547c4969d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Fri, 3 Jun 2016 14:48:17 +0200 Subject: [PATCH 030/143] Clean pattern function --- formats/gitdir/dir.go | 34 ++++++++++++---------------------- 1 file changed, 12 insertions(+), 22 deletions(-) diff --git a/formats/gitdir/dir.go b/formats/gitdir/dir.go index f926eef3e..b7ac207c3 100644 --- a/formats/gitdir/dir.go +++ b/formats/gitdir/dir.go @@ -136,51 +136,41 @@ func (d *Dir) Packfile() (io.ReadSeeker, error) { } func (d *Dir) pattern(isPackfile bool) (string, err) { - // packfile pattern: dpath + /objects/pack/pack-????????????????????????????????????????.pack - // idx pattern: dpath + /objects/pack/pack-????????????????????????????????????????.idx + // packfile pattern: dpath + /objects/pack/pack-40hexs.pack + // idx pattern: dpath + /objects/pack/pack-40hexs.idx var buf bytes.Buffer - _, err := buf.WriteString(d.path) - if err != nil { + if _, err := buf.WriteString(d.path); err != nil { return "", nil } - _, err := buf.WriteByte(os.PathSeparator) - if err != nil { + if _, err := buf.WriteByte(os.PathSeparator); err != nil { return "", nil } - _, err := buf.WriteString("objects") - if err != nil { + if _, err := buf.WriteString("objects"); err != nil { return "", nil } - _, err := buf.WriteByte(os.PathSeparator) - if err != nil { + if _, err := buf.WriteByte(os.PathSeparator); err != nil { return "", nil } - _, err := buf.WriteString("pack") - if err != nil { + if _, err := buf.WriteString("pack"); err != nil { return "", nil } - _, err := buf.WriteByte(os.PathSeparator) - if err != nil { + if _, err := buf.WriteByte(os.PathSeparator); err != nil { return "", nil } - _, err := buf.WriteString("pack-") - if err != nil { + if _, err := buf.WriteString("pack-"); err != nil { return "", nil } for i := 0; i < 40; i++ { - _, err := buf.WriteString("[0-9a-f]") - if err != nil { + if _, err := buf.WriteString("[0-9a-f]"); err != nil { return "", nil } } if isPackfile { - _, err := buf.WriteString(".pack") - if err != nil { + if _, err := buf.WriteString(".pack"); err != nil { return "", nil } } else { - _, err := buf.WriteString(".idx") - if err != nil { + if _, err := buf.WriteString(".idx"); err != nil { return "", nil } } From d4d4dc821f890e9a27c9efa7405f9ab043abca5c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Fri, 3 Jun 2016 14:52:26 +0200 Subject: [PATCH 031/143] metalinter tgz --- utils/tgz/tgz_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utils/tgz/tgz_test.go b/utils/tgz/tgz_test.go index b45d1cdc1..159fa540e 100644 --- a/utils/tgz/tgz_test.go +++ b/utils/tgz/tgz_test.go @@ -23,7 +23,7 @@ func (s *SuiteTGZ) TestExtract(c *C) { if test.err != "" { c.Assert(err, ErrorMatches, test.err, comment) - _, err := os.Stat(path) + _, err = os.Stat(path) c.Assert(os.IsNotExist(err), Equals, true, comment) } else { c.Assert(err, IsNil, comment) From f782d0ec32dfcdfa232da6b47f7c48c94f238321 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Fri, 3 Jun 2016 14:59:41 +0200 Subject: [PATCH 032/143] metalinter gitdir --- formats/gitdir/dir.go | 35 +++++++++++++++-------------------- 1 file changed, 15 insertions(+), 20 deletions(-) diff --git a/formats/gitdir/dir.go b/formats/gitdir/dir.go index b7ac207c3..78f6c8efa 100644 --- a/formats/gitdir/dir.go +++ b/formats/gitdir/dir.go @@ -118,7 +118,11 @@ func (d *Dir) addSymRefCapability(cap *common.Capabilities) (err error) { // Packfile returns a readseeker of the packfile in the repository. func (d *Dir) Packfile() (io.ReadSeeker, error) { - pattern := d.pattern(true) + pattern, err := d.pattern(true) + if err != nil { + return nil, err + } + list, err := filepath.Glob(pattern) if err != nil { return nil, err @@ -135,26 +139,13 @@ func (d *Dir) Packfile() (io.ReadSeeker, error) { return os.Open(list[0]) } -func (d *Dir) pattern(isPackfile bool) (string, err) { +func (d *Dir) pattern(isPackfile bool) (string, error) { // packfile pattern: dpath + /objects/pack/pack-40hexs.pack // idx pattern: dpath + /objects/pack/pack-40hexs.idx + base := filepath.Join(d.path, "objects") + base = filepath.Join(base, "pack") var buf bytes.Buffer - if _, err := buf.WriteString(d.path); err != nil { - return "", nil - } - if _, err := buf.WriteByte(os.PathSeparator); err != nil { - return "", nil - } - if _, err := buf.WriteString("objects"); err != nil { - return "", nil - } - if _, err := buf.WriteByte(os.PathSeparator); err != nil { - return "", nil - } - if _, err := buf.WriteString("pack"); err != nil { - return "", nil - } - if _, err := buf.WriteByte(os.PathSeparator); err != nil { + if _, err := buf.WriteString(base); err != nil { return "", nil } if _, err := buf.WriteString("pack-"); err != nil { @@ -175,13 +166,17 @@ func (d *Dir) pattern(isPackfile bool) (string, err) { } } - return buf.String() + return buf.String(), nil } // Idxfile returns a reader of the idx file in the repository. // TODO: should it return a readcloser instead? func (d *Dir) Idxfile() (io.Reader, error) { - pattern := d.pattern(false) + pattern, err := d.pattern(false) + if err != nil { + return nil, err + } + list, err := filepath.Glob(pattern) if err != nil { return nil, err From ab8619d615536b0de61bac3c9690c19ddecf14a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Fri, 3 Jun 2016 17:05:55 +0200 Subject: [PATCH 033/143] gitdir coverage and remove seekable packfile filedescriptor leak --- formats/gitdir/dir.go | 68 +++++++++------------ formats/gitdir/dir_test.go | 107 +++++++++++++++++++++++++++------ formats/gitdir/refs.go | 24 +++----- storage/seekable/store.go | 58 +++++++++++++----- storage/seekable/store_test.go | 20 ++---- 5 files changed, 175 insertions(+), 102 deletions(-) diff --git a/formats/gitdir/dir.go b/formats/gitdir/dir.go index 78f6c8efa..475866ceb 100644 --- a/formats/gitdir/dir.go +++ b/formats/gitdir/dir.go @@ -1,7 +1,6 @@ package gitdir import ( - "bytes" "errors" "fmt" "io" @@ -69,8 +68,7 @@ func (d *Dir) isInvalidPath() bool { func (d *Dir) Refs() (map[string]core.Hash, error) { var err error - d.refs, err = d.initRefsFromPackedRefs() - if err != nil { + if err = d.initRefsFromPackedRefs(); err != nil { return nil, err } @@ -116,66 +114,56 @@ func (d *Dir) addSymRefCapability(cap *common.Capabilities) (err error) { return nil } -// Packfile returns a readseeker of the packfile in the repository. -func (d *Dir) Packfile() (io.ReadSeeker, error) { - pattern, err := d.pattern(true) - if err != nil { - return nil, err - } +// ReadSeekCloser is an io.ReadSeeker with a Close method. +type ReadSeekCloser interface { + io.ReadSeeker + Close() error +} + +// Packfile returns the path of the packfile in the repository. +func (d *Dir) Packfile() (string, error) { + pattern := d.pattern(true) list, err := filepath.Glob(pattern) if err != nil { - return nil, err + return "", err } if len(list) == 0 { - return nil, fmt.Errorf("packfile not found") + return "", fmt.Errorf("packfile not found") } if len(list) > 1 { - return nil, fmt.Errorf("found more than one packfile") + return "", fmt.Errorf("found more than one packfile") } - return os.Open(list[0]) + return list[0], nil } -func (d *Dir) pattern(isPackfile bool) (string, error) { - // packfile pattern: dpath + /objects/pack/pack-40hexs.pack - // idx pattern: dpath + /objects/pack/pack-40hexs.idx +func (d *Dir) pattern(isPackfile bool) string { + // packfile pattern: d.path + /objects/pack/pack-40hexs.pack + // idx pattern: d.path + /objects/pack/pack-40hexs.idx base := filepath.Join(d.path, "objects") base = filepath.Join(base, "pack") - var buf bytes.Buffer - if _, err := buf.WriteString(base); err != nil { - return "", nil - } - if _, err := buf.WriteString("pack-"); err != nil { - return "", nil - } - for i := 0; i < 40; i++ { - if _, err := buf.WriteString("[0-9a-f]"); err != nil { - return "", nil - } - } + file := filePattern + extension(isPackfile) + return filepath.Join(base, file) +} + +func extension(isPackfile bool) string { if isPackfile { - if _, err := buf.WriteString(".pack"); err != nil { - return "", nil - } - } else { - if _, err := buf.WriteString(".idx"); err != nil { - return "", nil - } + return ".pack" } - return buf.String(), nil + return ".idx" } +// "pack-" followed by 40 chars representing hexadecimal numbers +const filePattern = "pack-[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]" + // Idxfile returns a reader of the idx file in the repository. // TODO: should it return a readcloser instead? func (d *Dir) Idxfile() (io.Reader, error) { - pattern, err := d.pattern(false) - if err != nil { - return nil, err - } + pattern := d.pattern(false) list, err := filepath.Glob(pattern) if err != nil { diff --git a/formats/gitdir/dir_test.go b/formats/gitdir/dir_test.go index 9490c8481..5b2ed7784 100644 --- a/formats/gitdir/dir_test.go +++ b/formats/gitdir/dir_test.go @@ -1,12 +1,12 @@ package gitdir import ( - "fmt" "os" "path/filepath" "testing" . "gopkg.in/check.v1" + "gopkg.in/src-d/go-git.v3/clients/common" "gopkg.in/src-d/go-git.v3/core" "gopkg.in/src-d/go-git.v3/utils/tgz" ) @@ -14,41 +14,63 @@ import ( func Test(t *testing.T) { TestingT(t) } var initFixtures = [...]struct { - name string - tgz string + name string + tgz string + capabilities [][2]string + packfile string }{ { name: "spinnaker", tgz: "fixtures/spinnaker-gc.tgz", + capabilities: [][2]string{ + {"symref", "HEAD:refs/heads/master"}, + }, + packfile: "objects/pack/pack-584416f86235cac0d54bfabbdc399fb2b09a5269.pack", }, } +type fixture struct { + path string // repo names to paths of the extracted tgz + capabilities *common.Capabilities // expected capabilities + packfile string // path of the packfile +} + type SuiteGitDir struct { - fixtures map[string]string // repo names to paths of the extracted tgz + fixtures map[string]fixture } var _ = Suite(&SuiteGitDir{}) func (s *SuiteGitDir) SetUpSuite(c *C) { - s.fixtures = make(map[string]string, len(initFixtures)) + s.fixtures = make(map[string]fixture, len(initFixtures)) - for _, fixture := range initFixtures { - comment := Commentf("fixture name = %s\n", fixture.name) + for _, init := range initFixtures { + comment := Commentf("fixture name = %s\n", init.name) - path, err := tgz.Extract(fixture.tgz) + path, err := tgz.Extract(init.tgz) c.Assert(err, IsNil, comment) - s.fixtures[fixture.name] = filepath.Join(path, ".git") + fixt := fixture{} + + fixt.path = filepath.Join(path, ".git") + + fixt.capabilities = common.NewCapabilities() + for _, pair := range init.capabilities { + fixt.capabilities.Add(pair[0], pair[1]) + } + + fixt.packfile = init.packfile + + s.fixtures[init.name] = fixt } } func (s *SuiteGitDir) TearDownSuite(c *C) { - for name, path := range s.fixtures { - dir := filepath.Base(path) - fmt.Println(dir, path) - err := os.RemoveAll(path) + for name, fixture := range s.fixtures { + dir := filepath.Dir(fixture.path) + err := os.RemoveAll(dir) c.Assert(err, IsNil, Commentf("cannot delete tmp dir for fixture %s: %s\n", - name, path)) + name, dir)) } } @@ -61,6 +83,9 @@ func (s *SuiteGitDir) TestNewDir(c *C) { { input: "", err: ErrBadGitDirName, + }, { + input: "foo", + err: ErrBadGitDirName, }, { input: "/", err: ErrBadGitDirName, @@ -139,12 +164,60 @@ func (s *SuiteGitDir) TestRefs(c *C) { }, } { comment := Commentf("subtest %d", i) - - dir, err := New(s.fixtures[test.fixture]) - c.Assert(err, IsNil, comment) + _, dir := s.newFixtureDir(c, test.fixture) refs, err := dir.Refs() c.Assert(err, IsNil, comment) c.Assert(refs, DeepEquals, test.refs, comment) } } + +func (s *SuiteGitDir) newFixtureDir(c *C, fixName string) (*fixture, *Dir) { + fixture, ok := s.fixtures[fixName] + c.Assert(ok, Equals, true) + + dir, err := New(fixture.path) + c.Assert(err, IsNil) + + return &fixture, dir +} + +func (s *SuiteGitDir) TestCapabilities(c *C) { + for i, test := range [...]struct { + fixture string + capabilities *common.Capabilities + }{ + { + fixture: "spinnaker", + }, + } { + comment := Commentf("subtest %d", i) + fixture, dir := s.newFixtureDir(c, test.fixture) + + capabilities, err := dir.Capabilities() + c.Assert(err, IsNil, comment) + c.Assert(capabilities, DeepEquals, fixture.capabilities, comment) + } +} + +func (s *SuiteGitDir) TestPackfile(c *C) { + for i, test := range [...]struct { + fixture string + capabilities *common.Capabilities + }{ + { + fixture: "spinnaker", + }, + } { + comment := Commentf("subtest %d", i) + fixture, dir := s.newFixtureDir(c, test.fixture) + + packfile, err := dir.Packfile() + c.Assert(err, IsNil, comment) + + relativeFixturePackfile, err := filepath.Rel(dir.path, packfile) + c.Assert(err, IsNil, comment) + + c.Assert(relativeFixturePackfile, Equals, fixture.packfile) + } +} diff --git a/formats/gitdir/refs.go b/formats/gitdir/refs.go index 44209c7cc..b7e640603 100644 --- a/formats/gitdir/refs.go +++ b/formats/gitdir/refs.go @@ -29,16 +29,16 @@ const ( symRefPrefix = "ref: " ) -func (d *Dir) initRefsFromPackedRefs() (m map[string]core.Hash, err error) { - result := make(map[string]core.Hash) +func (d *Dir) initRefsFromPackedRefs() (err error) { + d.refs = make(map[string]core.Hash) path := filepath.Join(d.path, packedRefsPath) file, err := os.Open(path) if err != nil { if err == os.ErrNotExist { - return result, nil + return nil } - return nil, err + return err } defer func() { errClose := file.Close() @@ -50,20 +50,16 @@ func (d *Dir) initRefsFromPackedRefs() (m map[string]core.Hash, err error) { scanner := bufio.NewScanner(file) for scanner.Scan() { line := scanner.Text() - if err = processLine(line, result); err != nil { - return nil, err + if err = d.processLine(line); err != nil { + return err } } - if err := scanner.Err(); err != nil { - return nil, err - } - - return result, nil + return scanner.Err() } // process lines from a packed-refs file -func processLine(line string, refs map[string]core.Hash) error { +func (d *Dir) processLine(line string) error { switch line[0] { case '#': // comment - ignore return nil @@ -76,10 +72,10 @@ func processLine(line string, refs map[string]core.Hash) error { } hash, ref := words[0], words[1] - if _, ok := refs[ref]; ok { + if _, ok := d.refs[ref]; ok { return ErrPackedRefsDuplicatedRef } - refs[ref] = core.NewHash(hash) + d.refs[ref] = core.NewHash(hash) } return nil diff --git a/storage/seekable/store.go b/storage/seekable/store.go index 3018c8090..bb7b275c9 100644 --- a/storage/seekable/store.go +++ b/storage/seekable/store.go @@ -1,9 +1,9 @@ package seekable import ( - "errors" "fmt" "io" + "os" "gopkg.in/src-d/go-git.v3/core" "gopkg.in/src-d/go-git.v3/formats/packfile" @@ -22,35 +22,39 @@ import ( // This means the memory footprint of this storage is much smaller // than a memory.ObjectStorage, but it will also be probably slower. type ObjectStorage struct { - packfile io.ReadSeeker + packfile string // path index index.Index } -// ErrNotEnoughData is returned when there is not enough data to -// create the ObjectStorage. -var ErrNotEnoughData = errors.New("no packfile or idx provided") - // New returns a new ObjectStorage for the packfile at path. // // If no idx reader is provided, the index will be generated // by reading the packfile. -func New(packfile io.ReadSeeker, idx io.Reader) (*ObjectStorage, error) { - index, err := buildIndex(packfile, idx) +func New(path string, idx io.Reader) (s *ObjectStorage, err error) { + file, err := os.Open(path) + if err != nil { + return nil, err + } + + defer func() { + errClose := file.Close() + if err == nil { + err = errClose + } + }() + + index, err := buildIndex(file, idx) if err != nil { return nil, err } return &ObjectStorage{ - packfile: packfile, + packfile: path, index: index, }, nil } func buildIndex(packfile io.Reader, idx io.Reader) (index.Index, error) { - if packfile == nil && idx == nil { - return nil, ErrNotEnoughData - } - if idx != nil { return index.NewFromIdx(idx) } @@ -78,7 +82,19 @@ func (s *ObjectStorage) Get(h core.Hash) (core.Object, error) { return nil, err } - return packfile.ObjectAt(s.packfile, offset, s) + file, err := os.Open(s.packfile) + if err != nil { + return nil, err + } + + defer func() { + errClose := file.Close() + if err == nil { + err = errClose + } + }() + + return packfile.ObjectAt(file, offset, s) } // Iter returns an iterator for all the objects in the packfile with the @@ -112,5 +128,17 @@ func (s *ObjectStorage) ByHash(hash core.Hash) (core.Object, error) { // Given the nature of this storage, it also returns objects that // have not yet been seen. func (s *ObjectStorage) ByOffset(offset int64) (core.Object, error) { - return packfile.ObjectAt(s.packfile, offset, s) + file, err := os.Open(s.packfile) + if err != nil { + return nil, err + } + + defer func() { + errClose := file.Close() + if err == nil { + err = errClose + } + }() + + return packfile.ObjectAt(file, offset, s) } diff --git a/storage/seekable/store_test.go b/storage/seekable/store_test.go index 287ffba4d..76a0f2fb0 100644 --- a/storage/seekable/store_test.go +++ b/storage/seekable/store_test.go @@ -21,8 +21,8 @@ type SeekableSuite struct{} var _ = Suite(&SeekableSuite{}) func (s *SeekableSuite) TestNewFailNoData(c *C) { - _, err := seekable.New(nil, nil) - c.Assert(err, Equals, seekable.ErrNotEnoughData) + _, err := seekable.New("", nil) + c.Assert(err, ErrorMatches, ".* no such file or directory") } func (s *SeekableSuite) TestGetCompareWithMemoryStorage(c *C) { @@ -42,15 +42,12 @@ func (s *SeekableSuite) TestGetCompareWithMemoryStorage(c *C) { err = packfileFile.Close() c.Assert(err, IsNil, comment) - packfile, err := os.Open(packfilePath) - c.Assert(err, IsNil, comment) - lastDot := strings.LastIndex(packfilePath, ".") idxPath := packfilePath[:lastDot] + ".idx" idx, err := os.Open(idxPath) c.Assert(err, IsNil, comment) - storage, err := seekable.New(packfile, idx) + storage, err := seekable.New(packfilePath, idx) c.Assert(err, IsNil, comment) err = idx.Close() c.Assert(err, IsNil, comment) @@ -85,9 +82,6 @@ func (s *SeekableSuite) TestGetCompareWithMemoryStorage(c *C) { iter.Close() } - - err = packfile.Close() - c.Assert(err, IsNil, comment) } } @@ -108,15 +102,12 @@ func (s *SeekableSuite) TestIterCompareWithMemoryStorage(c *C) { err = packfileFile.Close() c.Assert(err, IsNil, comment) - packfile, err := os.Open(packfilePath) - c.Assert(err, IsNil, comment) - lastDot := strings.LastIndex(packfilePath, ".") idxPath := packfilePath[:lastDot] + ".idx" idx, err := os.Open(idxPath) c.Assert(err, IsNil, comment) - storage, err := seekable.New(packfile, idx) + storage, err := seekable.New(packfilePath, idx) c.Assert(err, IsNil, comment) err = idx.Close() c.Assert(err, IsNil, comment) @@ -138,9 +129,6 @@ func (s *SeekableSuite) TestIterCompareWithMemoryStorage(c *C) { c.Assert(seekableObjects[i].Hash(), Equals, expected.Hash(), comment) } } - - err = packfile.Close() - c.Assert(err, IsNil, comment) } } From 4ca1404ecea6f2b89277f3966eb76d965995fdc1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Fri, 3 Jun 2016 17:55:26 +0200 Subject: [PATCH 034/143] gitdir Idxfile tests and remove file descriptor leak --- formats/gitdir/dir.go | 13 +++--- formats/gitdir/dir_test.go | 58 ++++++++++++++++++++---- formats/gitdir/fixtures/no-packfile.tgz | Bin 0 -> 116 bytes storage/seekable/store.go | 22 +++++++-- storage/seekable/store_test.go | 14 ++---- 5 files changed, 74 insertions(+), 33 deletions(-) create mode 100644 formats/gitdir/fixtures/no-packfile.tgz diff --git a/formats/gitdir/dir.go b/formats/gitdir/dir.go index 475866ceb..92e309ad8 100644 --- a/formats/gitdir/dir.go +++ b/formats/gitdir/dir.go @@ -160,23 +160,22 @@ func extension(isPackfile bool) string { // "pack-" followed by 40 chars representing hexadecimal numbers const filePattern = "pack-[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]" -// Idxfile returns a reader of the idx file in the repository. -// TODO: should it return a readcloser instead? -func (d *Dir) Idxfile() (io.Reader, error) { +// Idxfile returns the path of the idx file in the repository. +func (d *Dir) Idxfile() (string, error) { pattern := d.pattern(false) list, err := filepath.Glob(pattern) if err != nil { - return nil, err + return "", err } if len(list) == 0 { - return nil, ErrIdxNotFound + return "", ErrIdxNotFound } if len(list) > 1 { - return nil, fmt.Errorf("found more than one idxfile") + return "", fmt.Errorf("found more than one idxfile") } - return os.Open(list[0]) + return list[0], nil } diff --git a/formats/gitdir/dir_test.go b/formats/gitdir/dir_test.go index 5b2ed7784..ff7184093 100644 --- a/formats/gitdir/dir_test.go +++ b/formats/gitdir/dir_test.go @@ -18,6 +18,7 @@ var initFixtures = [...]struct { tgz string capabilities [][2]string packfile string + idxfile string }{ { name: "spinnaker", @@ -26,6 +27,11 @@ var initFixtures = [...]struct { {"symref", "HEAD:refs/heads/master"}, }, packfile: "objects/pack/pack-584416f86235cac0d54bfabbdc399fb2b09a5269.pack", + idxfile: "objects/pack/pack-584416f86235cac0d54bfabbdc399fb2b09a5269.idx", + }, + { + name: "no-packfile", + tgz: "fixtures/no-packfile.tgz", }, } @@ -33,6 +39,7 @@ type fixture struct { path string // repo names to paths of the extracted tgz capabilities *common.Capabilities // expected capabilities packfile string // path of the packfile + idxfile string // path of the idxfile } type SuiteGitDir struct { @@ -60,6 +67,7 @@ func (s *SuiteGitDir) SetUpSuite(c *C) { } fixt.packfile = init.packfile + fixt.idxfile = init.idxfile s.fixtures[init.name] = fixt } @@ -201,23 +209,53 @@ func (s *SuiteGitDir) TestCapabilities(c *C) { } func (s *SuiteGitDir) TestPackfile(c *C) { - for i, test := range [...]struct { - fixture string - capabilities *common.Capabilities + for _, test := range [...]struct { + fixture string + err string // error regexp }{ { fixture: "spinnaker", + }, { + fixture: "no-packfile", + err: "packfile not found", }, } { - comment := Commentf("subtest %d", i) - fixture, dir := s.newFixtureDir(c, test.fixture) + s.checkFile(c, true, test.fixture, test.err) + } +} - packfile, err := dir.Packfile() - c.Assert(err, IsNil, comment) +func (s *SuiteGitDir) TestIdxfile(c *C) { + for _, fixture := range []string{ + "spinnaker", + } { + s.checkFile(c, false, fixture, "") + } +} - relativeFixturePackfile, err := filepath.Rel(dir.path, packfile) - c.Assert(err, IsNil, comment) +func (s *SuiteGitDir) checkFile(c *C, isPackfile bool, + fixtureName string, expectedErr string) { + + fixt, dir := s.newFixtureDir(c, fixtureName) + + var path string + var fixturePath string + var err error + if isPackfile { + path, err = dir.Packfile() + fixturePath = fixt.packfile + } else { + path, err = dir.Idxfile() + fixturePath = fixt.idxfile + } + + if expectedErr != "" { + c.Assert(err, ErrorMatches, expectedErr) + } else { + c.Assert(err, IsNil) + + relative, err := filepath.Rel(dir.path, path) + c.Assert(err, IsNil) - c.Assert(relativeFixturePackfile, Equals, fixture.packfile) + c.Assert(relative, Equals, fixturePath) } } diff --git a/formats/gitdir/fixtures/no-packfile.tgz b/formats/gitdir/fixtures/no-packfile.tgz new file mode 100644 index 0000000000000000000000000000000000000000..88fabf17c33cc8f1e0e1b5768b48a2924997191e GIT binary patch literal 116 zcmb2|=3uxtH!z%m`RzGdE+#_>mJ2ef>K9V(<`>TsbzyOgc>MP-<3YDI*Iw;S>zbKl zc0Bn0veK#TVjs`kT2%8adX=;EvDmrG%$5aZZ}G4U`}ehI_qWQEmS>;;O?)|h{qA^M S1{nBrQPy4Jz6^r~0|Nl_{4;w1 literal 0 HcmV?d00001 diff --git a/storage/seekable/store.go b/storage/seekable/store.go index bb7b275c9..91e51b251 100644 --- a/storage/seekable/store.go +++ b/storage/seekable/store.go @@ -30,26 +30,38 @@ type ObjectStorage struct { // // If no idx reader is provided, the index will be generated // by reading the packfile. -func New(path string, idx io.Reader) (s *ObjectStorage, err error) { - file, err := os.Open(path) +func New(packfilePath, idxPath string) (s *ObjectStorage, err error) { + packfile, err := os.Open(packfilePath) if err != nil { return nil, err } defer func() { - errClose := file.Close() + errClose := packfile.Close() + if err == nil { + err = errClose + } + }() + + idxfile, err := os.Open(idxPath) + if err != nil { + return nil, err + } + + defer func() { + errClose := idxfile.Close() if err == nil { err = errClose } }() - index, err := buildIndex(file, idx) + index, err := buildIndex(packfile, idxfile) if err != nil { return nil, err } return &ObjectStorage{ - packfile: path, + packfile: packfilePath, index: index, }, nil } diff --git a/storage/seekable/store_test.go b/storage/seekable/store_test.go index 76a0f2fb0..897e19e71 100644 --- a/storage/seekable/store_test.go +++ b/storage/seekable/store_test.go @@ -21,7 +21,7 @@ type SeekableSuite struct{} var _ = Suite(&SeekableSuite{}) func (s *SeekableSuite) TestNewFailNoData(c *C) { - _, err := seekable.New("", nil) + _, err := seekable.New("", "") c.Assert(err, ErrorMatches, ".* no such file or directory") } @@ -44,12 +44,8 @@ func (s *SeekableSuite) TestGetCompareWithMemoryStorage(c *C) { lastDot := strings.LastIndex(packfilePath, ".") idxPath := packfilePath[:lastDot] + ".idx" - idx, err := os.Open(idxPath) - c.Assert(err, IsNil, comment) - storage, err := seekable.New(packfilePath, idx) - c.Assert(err, IsNil, comment) - err = idx.Close() + storage, err := seekable.New(packfilePath, idxPath) c.Assert(err, IsNil, comment) for _, typ := range [...]core.ObjectType{ @@ -104,12 +100,8 @@ func (s *SeekableSuite) TestIterCompareWithMemoryStorage(c *C) { lastDot := strings.LastIndex(packfilePath, ".") idxPath := packfilePath[:lastDot] + ".idx" - idx, err := os.Open(idxPath) - c.Assert(err, IsNil, comment) - storage, err := seekable.New(packfilePath, idx) - c.Assert(err, IsNil, comment) - err = idx.Close() + storage, err := seekable.New(packfilePath, idxPath) c.Assert(err, IsNil, comment) for _, typ := range [...]core.ObjectType{ From d8a204734b66494d03dbfadddb7467fcc05089e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Fri, 3 Jun 2016 17:59:11 +0200 Subject: [PATCH 035/143] gitdir Idxfile tests when no idx is found --- formats/gitdir/dir_test.go | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/formats/gitdir/dir_test.go b/formats/gitdir/dir_test.go index ff7184093..2f96d7fcb 100644 --- a/formats/gitdir/dir_test.go +++ b/formats/gitdir/dir_test.go @@ -225,10 +225,18 @@ func (s *SuiteGitDir) TestPackfile(c *C) { } func (s *SuiteGitDir) TestIdxfile(c *C) { - for _, fixture := range []string{ - "spinnaker", + for _, test := range [...]struct { + fixture string + err string // error regexp + }{ + { + fixture: "spinnaker", + }, { + fixture: "no-packfile", + err: "idx file not found", + }, } { - s.checkFile(c, false, fixture, "") + s.checkFile(c, false, test.fixture, test.err) } } From 2b49f9c9367de91402418c72d58a036a1d61d0cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Mon, 6 Jun 2016 17:31:44 +0200 Subject: [PATCH 036/143] clean storage/seekable/internal/index and some formats/idxfile API issues --- formats/idxfile/idx.go | 34 +++++++++++++++++ formats/idxfile/reader.go | 35 +++++------------- formats/idxfile/reader_test.go | 6 +-- formats/idxfile/writer.go | 6 +-- formats/packfile/fixtures/invalid.idx | Bin 0 -> 10 bytes storage/seekable/internal/index/index.go | 9 ++--- storage/seekable/internal/index/index_test.go | 26 +++++++++---- 7 files changed, 72 insertions(+), 44 deletions(-) create mode 100644 formats/idxfile/idx.go create mode 100644 formats/packfile/fixtures/invalid.idx diff --git a/formats/idxfile/idx.go b/formats/idxfile/idx.go new file mode 100644 index 000000000..a6fe99428 --- /dev/null +++ b/formats/idxfile/idx.go @@ -0,0 +1,34 @@ +package idxfile + +import ( + "io" + + "gopkg.in/src-d/go-git.v3/core" +) + +type Idx struct { + Version uint32 + Fanout [255]uint32 + ObjectCount uint32 + Entries []IdxEntry + PackfileChecksum [20]byte + IdxChecksum [20]byte +} + +type IdxEntry struct { + Hash core.Hash + CRC32 [4]byte + Offset uint64 +} + +func New(r io.Reader) (*Idx, error) { + idx := &Idx{} + + idxReader := NewReader(r) + _, err := idxReader.Read(idx) + if err != nil { + return nil, err + } + + return idx, nil +} diff --git a/formats/idxfile/reader.go b/formats/idxfile/reader.go index 96fb60a1d..8e3bd1e34 100644 --- a/formats/idxfile/reader.go +++ b/formats/idxfile/reader.go @@ -16,25 +16,10 @@ const ( var ( IdxHeader = []byte{255, 't', 'O', 'c'} - UnsupportedVersionErr = errors.New("Unsuported version") - MalformedIdxFileErr = errors.New("Malformed IDX file") + ErrUnsupportedVersion = errors.New("Unsuported version") + ErrMalformedIdxFile = errors.New("Malformed IDX file") ) -type Idx struct { - Version uint32 - Fanout [255]uint32 - ObjectCount uint32 - Objects []IdxEntry - PackfileChecksum [20]byte - IdxChecksum [20]byte -} - -type IdxEntry struct { - Hash core.Hash - CRC32 [4]byte - Offset uint64 -} - type Reader struct { r io.Reader } @@ -64,7 +49,7 @@ func (r *Reader) Read(idx *Idx) (int64, error) { } if !r.isValid(idx) { - return -1, MalformedIdxFileErr + return -1, ErrMalformedIdxFile } return 0, nil @@ -77,7 +62,7 @@ func (r *Reader) validateHeader() error { } if !bytes.Equal(header, IdxHeader) { - return MalformedIdxFileErr + return ErrMalformedIdxFile } return nil @@ -90,7 +75,7 @@ func (r *Reader) readVersion(idx *Idx) error { } if version > IdxVersionSupported { - return UnsupportedVersionErr + return ErrUnsupportedVersion } idx.Version = version @@ -124,7 +109,7 @@ func (r *Reader) readObjectNames(idx *Idx) error { return err } - idx.Objects = append(idx.Objects, IdxEntry{Hash: ref}) + idx.Entries = append(idx.Entries, IdxEntry{Hash: ref}) } return nil @@ -133,7 +118,7 @@ func (r *Reader) readObjectNames(idx *Idx) error { func (r *Reader) readCRC32(idx *Idx) error { count := int(idx.ObjectCount) for i := 0; i < count; i++ { - if _, err := r.r.Read(idx.Objects[i].CRC32[:]); err != nil { + if _, err := r.r.Read(idx.Entries[i].CRC32[:]); err != nil { return err } } @@ -149,7 +134,7 @@ func (r *Reader) readOffsets(idx *Idx) error { return err } - idx.Objects[i].Offset = uint64(offset) + idx.Entries[i].Offset = uint64(offset) } return nil @@ -164,7 +149,7 @@ func (r *Reader) read64bitsOffsets(idx *Idx) error { } if offset != 0 { - idx.Objects[i].Offset = offset + idx.Entries[i].Offset = offset } fmt.Println(uint64(offset)) @@ -217,7 +202,7 @@ func (r *Reader) readInt64() (uint64, error) { func calculateFanout(idx *Idx) [256]uint32 { fanout := [256]uint32{} var c uint32 - for _, e := range idx.Objects { + for _, e := range idx.Entries { c++ fanout[e.Hash[0]] = c } diff --git a/formats/idxfile/reader_test.go b/formats/idxfile/reader_test.go index 0a73352df..3bd648c28 100644 --- a/formats/idxfile/reader_test.go +++ b/formats/idxfile/reader_test.go @@ -27,9 +27,9 @@ func (s *ReaderSuite) TestReadPackfile(c *C) { c.Assert(l, Equals, int64(0)) c.Assert(int(idx.ObjectCount), Equals, 31) - c.Assert(idx.Objects, HasLen, 31) - c.Assert(idx.Objects[0].Hash.String(), Equals, "1669dce138d9b841a518c64b10914d88f5e488ea") - c.Assert(idx.Objects[0].Offset, Equals, uint64(615)) + c.Assert(idx.Entries, HasLen, 31) + c.Assert(idx.Entries[0].Hash.String(), Equals, "1669dce138d9b841a518c64b10914d88f5e488ea") + c.Assert(idx.Entries[0].Offset, Equals, uint64(615)) c.Assert(fmt.Sprintf("%x", idx.IdxChecksum), Equals, "bba9b7a9895724819225a044c857d391bb9d61d9") c.Assert(fmt.Sprintf("%x", idx.PackfileChecksum), Equals, "54bb61360ab2dad1a3e344a8cd3f82b848518cba") diff --git a/formats/idxfile/writer.go b/formats/idxfile/writer.go index e8b525ea6..99cc95b09 100644 --- a/formats/idxfile/writer.go +++ b/formats/idxfile/writer.go @@ -66,7 +66,7 @@ func (w *Writer) writeFanout(idx *Idx) (int, error) { func (w *Writer) writeObjectsNames(idx *Idx) (int, error) { size := 0 - for _, e := range idx.Objects { + for _, e := range idx.Entries { i, err := w.w.Write(e.Hash[:]) size += i @@ -80,7 +80,7 @@ func (w *Writer) writeObjectsNames(idx *Idx) (int, error) { func (w *Writer) writeCRC32(idx *Idx) (int, error) { size := 0 - for _, e := range idx.Objects { + for _, e := range idx.Entries { i, err := w.w.Write(e.CRC32[:]) size += i @@ -94,7 +94,7 @@ func (w *Writer) writeCRC32(idx *Idx) (int, error) { func (w *Writer) writeOffsets(idx *Idx) (int, error) { size := 0 - for _, e := range idx.Objects { + for _, e := range idx.Entries { if err := w.writeInt32(uint32(e.Offset)); err != nil { return size, err } diff --git a/formats/packfile/fixtures/invalid.idx b/formats/packfile/fixtures/invalid.idx new file mode 100644 index 0000000000000000000000000000000000000000..cb43b5ce1342e5d73830ac8b6a37ea870fae2632 GIT binary patch literal 10 KcmZQzfB^si3IG8B literal 0 HcmV?d00001 diff --git a/storage/seekable/internal/index/index.go b/storage/seekable/internal/index/index.go index e165fc91c..ff702ab89 100644 --- a/storage/seekable/internal/index/index.go +++ b/storage/seekable/internal/index/index.go @@ -12,21 +12,20 @@ import ( // the packfile. type Index map[core.Hash]int64 -// NewFromPackfile returns a new index from a packfile. +// NewFromPackfile returns a new index from a packfile file reader. func NewFromPackfile(packfile io.Reader) (Index, error) { return nil, fmt.Errorf("not implemented yet") } +// NewFromIdx returns a new index from an idx file reader. func NewFromIdx(r io.Reader) (Index, error) { - idx := &idxfile.Idx{} - idxReader := idxfile.NewReader(r) - _, err := idxReader.Read(idx) + idx, err := idxfile.New(r) if err != nil { return nil, err } result := make(Index) - for _, entry := range idx.Objects { + for _, entry := range idx.Entries { if _, ok := result[entry.Hash]; ok { return nil, fmt.Errorf("duplicated hash: %s", entry.Hash) } diff --git a/storage/seekable/internal/index/index_test.go b/storage/seekable/internal/index/index_test.go index 0266a47e0..0c9736af7 100644 --- a/storage/seekable/internal/index/index_test.go +++ b/storage/seekable/internal/index/index_test.go @@ -1,10 +1,12 @@ package index import ( + "fmt" "os" "testing" "gopkg.in/src-d/go-git.v3/core" + "gopkg.in/src-d/go-git.v3/formats/idxfile" . "gopkg.in/check.v1" ) @@ -17,24 +19,32 @@ var _ = Suite(&SuiteIndex{}) func (s *SuiteIndex) TestNewFromIdx(c *C) { for i, test := range [...]struct { - idx string - len int + idxPath string + errRegexp string }{ { - idx: "../../../../formats/packfile/fixtures/spinnaker-spinnaker.idx", + idxPath: "../../../../formats/packfile/fixtures/spinnaker-spinnaker.idx", + }, { + idxPath: "../../../../formats/packfile/fixtures/invalid.idx", + errRegexp: idxfile.ErrMalformedIdxFile.Error(), }, } { comment := Commentf("subtest %d", i) - idx, err := os.Open(test.idx) + idx, err := os.Open(test.idxPath) c.Assert(err, IsNil, comment) index, err := NewFromIdx(idx) - c.Assert(err, IsNil, comment) - c.Assert(index, DeepEquals, expectedIndexes[test.idx], comment) + if test.errRegexp != "" { + fmt.Println(err) + c.Assert(err, ErrorMatches, test.errRegexp, comment) + } else { + c.Assert(err, IsNil, comment) + c.Assert(index, DeepEquals, expectedIndexes[test.idxPath], comment) - err = idx.Close() - c.Assert(err, IsNil, comment) + err = idx.Close() + c.Assert(err, IsNil, comment) + } } } From 8d196fa6083239576443256c8a32188442eb61fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Mon, 6 Jun 2016 18:34:36 +0200 Subject: [PATCH 037/143] clean storage/seekable --- core/object.go | 1 - storage/memory/storage.go | 5 ----- storage/memory/storage_test.go | 16 ++-------------- storage/seekable/store.go | 20 +++++++------------- storage/seekable/store_test.go | 12 ++++++++++++ 5 files changed, 21 insertions(+), 33 deletions(-) diff --git a/core/object.go b/core/object.go index 11dcae6c5..4610c45c3 100644 --- a/core/object.go +++ b/core/object.go @@ -41,7 +41,6 @@ type Object interface { // ObjectStorage generic storage of objects type ObjectStorage interface { - New() (Object, error) Set(Object) (Hash, error) Get(Hash) (Object, error) Iter(ObjectType) (ObjectIter, error) diff --git a/storage/memory/storage.go b/storage/memory/storage.go index 4b99ab5b4..84de9809c 100644 --- a/storage/memory/storage.go +++ b/storage/memory/storage.go @@ -28,11 +28,6 @@ func NewObjectStorage() *ObjectStorage { } } -// New returns a new empty memory.Object -func (o *ObjectStorage) New() (core.Object, error) { - return &Object{}, nil -} - // Set stores an object, the object should be properly filled before set it. func (o *ObjectStorage) Set(obj core.Object) (core.Hash, error) { h := obj.Hash() diff --git a/storage/memory/storage_test.go b/storage/memory/storage_test.go index df6d5cf3f..19f4476c4 100644 --- a/storage/memory/storage_test.go +++ b/storage/memory/storage_test.go @@ -9,20 +9,10 @@ type ObjectStorageSuite struct{} var _ = Suite(&ObjectStorageSuite{}) -func (s *ObjectStorageSuite) TestNew(c *C) { - os := NewObjectStorage() - - o, err := os.New() - c.Assert(err, IsNil) - c.Assert(o.Size(), Equals, int64(0)) -} - func (s *ObjectStorageSuite) TestSet(c *C) { os := NewObjectStorage() - o, err := os.New() - c.Assert(err, IsNil) - + o := &Object{} o.SetType(core.CommitObject) o.SetSize(3) @@ -40,9 +30,7 @@ func (s *ObjectStorageSuite) TestSet(c *C) { func (s *ObjectStorageSuite) TestGet(c *C) { os := NewObjectStorage() - o, err := os.New() - c.Assert(err, IsNil) - + o := &Object{} o.SetType(core.CommitObject) o.SetSize(3) diff --git a/storage/seekable/store.go b/storage/seekable/store.go index 91e51b251..9b7179f27 100644 --- a/storage/seekable/store.go +++ b/storage/seekable/store.go @@ -7,7 +7,6 @@ import ( "gopkg.in/src-d/go-git.v3/core" "gopkg.in/src-d/go-git.v3/formats/packfile" - "gopkg.in/src-d/go-git.v3/storage/memory" "gopkg.in/src-d/go-git.v3/storage/seekable/internal/index" ) @@ -22,8 +21,8 @@ import ( // This means the memory footprint of this storage is much smaller // than a memory.ObjectStorage, but it will also be probably slower. type ObjectStorage struct { - packfile string // path - index index.Index + path string + index index.Index } // New returns a new ObjectStorage for the packfile at path. @@ -61,8 +60,8 @@ func New(packfilePath, idxPath string) (s *ObjectStorage, err error) { } return &ObjectStorage{ - packfile: packfilePath, - index: index, + path: packfilePath, + index: index, }, nil } @@ -74,16 +73,11 @@ func buildIndex(packfile io.Reader, idx io.Reader) (index.Index, error) { return index.NewFromPackfile(packfile) } -// New returns a new empty object. Unused method. -func (s *ObjectStorage) New() (core.Object, error) { - return &memory.Object{}, nil -} - // Set adds a new object to the storage. // This method always returns an error as this particular // implementation is read only. func (s *ObjectStorage) Set(core.Object) (core.Hash, error) { - return core.ZeroHash, fmt.Errorf("set operation is not allowed") + return core.ZeroHash, fmt.Errorf("set operation not permitted") } // Get returns the object with the given hash, by searching the @@ -94,7 +88,7 @@ func (s *ObjectStorage) Get(h core.Hash) (core.Object, error) { return nil, err } - file, err := os.Open(s.packfile) + file, err := os.Open(s.path) if err != nil { return nil, err } @@ -140,7 +134,7 @@ func (s *ObjectStorage) ByHash(hash core.Hash) (core.Object, error) { // Given the nature of this storage, it also returns objects that // have not yet been seen. func (s *ObjectStorage) ByOffset(offset int64) (core.Object, error) { - file, err := os.Open(s.packfile) + file, err := os.Open(s.path) if err != nil { return nil, err } diff --git a/storage/seekable/store_test.go b/storage/seekable/store_test.go index 897e19e71..a53b82d3b 100644 --- a/storage/seekable/store_test.go +++ b/storage/seekable/store_test.go @@ -156,3 +156,15 @@ func (a byHash) Swap(i, j int) { a[i], a[j] = a[j], a[i] } func (a byHash) Less(i, j int) bool { return a[i].Hash().String() < a[j].Hash().String() } + +func (s *SeekableSuite) TestSet(c *C) { + packfilePath := "../../formats/packfile/fixtures/spinnaker-spinnaker.pack" + lastDot := strings.LastIndex(packfilePath, ".") + idxPath := packfilePath[:lastDot] + ".idx" + + storage, err := seekable.New(packfilePath, idxPath) + c.Assert(err, IsNil) + + _, err = storage.Set(&memory.Object{}) + c.Assert(err, ErrorMatches, "set operation not permitted") +} From 62240e953102362903b2c4ac35975c9dfa9f7fb1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Tue, 7 Jun 2016 12:49:46 +0200 Subject: [PATCH 038/143] clean formats/idx --- formats/idxfile/decoder.go | 160 +++++++++++++ formats/idxfile/decoder_test.go | 40 ++++ formats/idxfile/doc.go | 129 ---------- formats/idxfile/doc.txt | 127 ++++++++++ formats/idxfile/encoder.go | 125 ++++++++++ formats/idxfile/encoder_test.go | 47 ++++ formats/idxfile/fixtures/git-fixture.pack | Bin 85474 -> 0 bytes formats/idxfile/idx.go | 34 --- formats/idxfile/idxfile.go | 61 +++++ formats/idxfile/reader.go | 220 ------------------ formats/idxfile/reader_test.go | 45 ---- formats/idxfile/writer.go | 125 ---------- formats/packfile/fixtures/invalid.idx | Bin 10 -> 100 bytes storage/seekable/internal/index/index.go | 4 +- storage/seekable/internal/index/index_test.go | 2 +- 15 files changed, 564 insertions(+), 555 deletions(-) create mode 100644 formats/idxfile/decoder.go create mode 100644 formats/idxfile/decoder_test.go delete mode 100644 formats/idxfile/doc.go create mode 100644 formats/idxfile/doc.txt create mode 100644 formats/idxfile/encoder.go create mode 100644 formats/idxfile/encoder_test.go delete mode 100644 formats/idxfile/fixtures/git-fixture.pack delete mode 100644 formats/idxfile/idx.go create mode 100644 formats/idxfile/idxfile.go delete mode 100644 formats/idxfile/reader.go delete mode 100644 formats/idxfile/reader_test.go delete mode 100644 formats/idxfile/writer.go diff --git a/formats/idxfile/decoder.go b/formats/idxfile/decoder.go new file mode 100644 index 000000000..46aa320cc --- /dev/null +++ b/formats/idxfile/decoder.go @@ -0,0 +1,160 @@ +package idxfile + +import ( + "bytes" + "encoding/binary" + "errors" + "io" + + "gopkg.in/src-d/go-git.v3/core" +) + +var ( + // ErrUnsupportedVersion is returned by Decode when the idx file version + // is not supported. + ErrUnsupportedVersion = errors.New("Unsuported version") + // ErrMalformedIdxFile is returned by Decode when the idx file is corrupted. + ErrMalformedIdxFile = errors.New("Malformed IDX file") +) + +// A Decoder reads and decodes idx files from an input stream. +type Decoder struct { + io.Reader +} + +// NewDecoder returns a new decoder that reads from r. +func NewDecoder(r io.Reader) *Decoder { + return &Decoder{r} +} + +// Decode reads the whole idx object from its input and stores it in the +// value pointed to by idx. +func (d *Decoder) Decode(idx *Idxfile) error { + if err := validateHeader(d); err != nil { + return err + } + + flow := []func(*Idxfile, io.Reader) error{ + readVersion, + readFanout, + readObjectNames, + readCRC32, + readOffsets, + readChecksums, + } + + for _, f := range flow { + if err := f(idx, d); err != nil { + return err + } + } + + if !idx.isValid() { + return ErrMalformedIdxFile + } + + return nil +} + +func validateHeader(r io.Reader) error { + var header = make([]byte, 4) + if _, err := r.Read(header); err != nil { + return err + } + + if !bytes.Equal(header, idxHeader) { + return ErrMalformedIdxFile + } + + return nil +} + +func readVersion(idx *Idxfile, r io.Reader) error { + version, err := readInt32(r) + if err != nil { + return err + } + + if version > VersionSupported { + return ErrUnsupportedVersion + } + + idx.Version = version + + return nil +} + +func readFanout(idx *Idxfile, r io.Reader) error { + var err error + + for i := 0; i < 255; i++ { + idx.Fanout[i], err = readInt32(r) + if err != nil { + return err + } + } + + idx.ObjectCount, err = readInt32(r) + + return err +} + +func readObjectNames(idx *Idxfile, r io.Reader) error { + count := int(idx.ObjectCount) + for i := 0; i < count; i++ { + var ref core.Hash + if _, err := r.Read(ref[:]); err != nil { + return err + } + + idx.Entries = append(idx.Entries, Entry{Hash: ref}) + } + + return nil +} + +func readCRC32(idx *Idxfile, r io.Reader) error { + count := int(idx.ObjectCount) + for i := 0; i < count; i++ { + if _, err := r.Read(idx.Entries[i].CRC32[:]); err != nil { + return err + } + } + + return nil +} + +func readOffsets(idx *Idxfile, r io.Reader) error { + count := int(idx.ObjectCount) + for i := 0; i < count; i++ { + offset, err := readInt32(r) + if err != nil { + return err + } + + idx.Entries[i].Offset = uint64(offset) + } + + return nil +} + +func readChecksums(idx *Idxfile, r io.Reader) error { + if _, err := r.Read(idx.PackfileChecksum[:]); err != nil { + return err + } + + if _, err := r.Read(idx.IdxChecksum[:]); err != nil { + return err + } + + return nil +} + +func readInt32(r io.Reader) (uint32, error) { + var value uint32 + if err := binary.Read(r, binary.BigEndian, &value); err != nil { + return 0, err + } + + return value, nil +} diff --git a/formats/idxfile/decoder_test.go b/formats/idxfile/decoder_test.go new file mode 100644 index 000000000..cba30c65b --- /dev/null +++ b/formats/idxfile/decoder_test.go @@ -0,0 +1,40 @@ +package idxfile + +import ( + "fmt" + "os" + "testing" + + . "gopkg.in/check.v1" +) + +func Test(t *testing.T) { TestingT(t) } + +type IdxfileSuite struct{} + +var _ = Suite(&IdxfileSuite{}) + +func (s *IdxfileSuite) TestDecode(c *C) { + file, err := os.Open("fixtures/git-fixture.idx") + c.Assert(err, IsNil) + + decoder := NewDecoder(file) + idx := &Idxfile{} + err = decoder.Decode(idx) + c.Assert(err, IsNil) + + err = file.Close() + c.Assert(err, IsNil) + + c.Assert(int(idx.ObjectCount), Equals, 31) + c.Assert(idx.Entries, HasLen, 31) + c.Assert(idx.Entries[0].Hash.String(), Equals, + "1669dce138d9b841a518c64b10914d88f5e488ea") + c.Assert(idx.Entries[0].Offset, Equals, uint64(615)) + + c.Assert(fmt.Sprintf("%x", idx.IdxChecksum), Equals, + "bba9b7a9895724819225a044c857d391bb9d61d9") + c.Assert(fmt.Sprintf("%x", idx.PackfileChecksum), Equals, + "54bb61360ab2dad1a3e344a8cd3f82b848518cba") + +} diff --git a/formats/idxfile/doc.go b/formats/idxfile/doc.go deleted file mode 100644 index b5392e2d8..000000000 --- a/formats/idxfile/doc.go +++ /dev/null @@ -1,129 +0,0 @@ -package idxfile - -// == Original (version 1) pack-*.idx files have the following format: -// -// - The header consists of 256 4-byte network byte order -// integers. N-th entry of this table records the number of -// objects in the corresponding pack, the first byte of whose -// object name is less than or equal to N. This is called the -// 'first-level fan-out' table. -// -// - The header is followed by sorted 24-byte entries, one entry -// per object in the pack. Each entry is: -// -// 4-byte network byte order integer, recording where the -// object is stored in the packfile as the offset from the -// beginning. -// -// 20-byte object name. -// -// - The file is concluded with a trailer: -// -// A copy of the 20-byte SHA1 checksum at the end of -// corresponding packfile. -// -// 20-byte SHA1-checksum of all of the above. -// -// Pack Idx file: -// -// -- +--------------------------------+ -// fanout | fanout[0] = 2 (for example) |-. -// table +--------------------------------+ | -// | fanout[1] | | -// +--------------------------------+ | -// | fanout[2] | | -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | -// | fanout[255] = total objects |---. -// -- +--------------------------------+ | | -// main | offset | | | -// index | object name 00XXXXXXXXXXXXXXXX | | | -// table +--------------------------------+ | | -// | offset | | | -// | object name 00XXXXXXXXXXXXXXXX | | | -// +--------------------------------+<+ | -// .-| offset | | -// | | object name 01XXXXXXXXXXXXXXXX | | -// | +--------------------------------+ | -// | | offset | | -// | | object name 01XXXXXXXXXXXXXXXX | | -// | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | -// | | offset | | -// | | object name FFXXXXXXXXXXXXXXXX | | -// --| +--------------------------------+<--+ -// trailer | | packfile checksum | -// | +--------------------------------+ -// | | idxfile checksum | -// | +--------------------------------+ -// .-------. -// | -// Pack file entry: <+ -// -// packed object header: -// 1-byte size extension bit (MSB) -// type (next 3 bit) -// size0 (lower 4-bit) -// n-byte sizeN (as long as MSB is set, each 7-bit) -// size0..sizeN form 4+7+7+..+7 bit integer, size0 -// is the least significant part, and sizeN is the -// most significant part. -// packed object data: -// If it is not DELTA, then deflated bytes (the size above -// is the size before compression). -// If it is REF_DELTA, then -// 20-byte base object name SHA1 (the size above is the -// size of the delta data that follows). -// delta data, deflated. -// If it is OFS_DELTA, then -// n-byte offset (see below) interpreted as a negative -// offset from the type-byte of the header of the -// ofs-delta entry (the size above is the size of -// the delta data that follows). -// delta data, deflated. -// -// offset encoding: -// n bytes with MSB set in all but the last one. -// The offset is then the number constructed by -// concatenating the lower 7 bit of each byte, and -// for n >= 2 adding 2^7 + 2^14 + ... + 2^(7*(n-1)) -// to the result. -// -// -// -// == Version 2 pack-*.idx files support packs larger than 4 GiB, and -// have some other reorganizations. They have the format: -// -// - A 4-byte magic number '\377tOc' which is an unreasonable -// fanout[0] value. -// -// - A 4-byte version number (= 2) -// -// - A 256-entry fan-out table just like v1. -// -// - A table of sorted 20-byte SHA1 object names. These are -// packed together without offset values to reduce the cache -// footprint of the binary search for a specific object name. -// -// - A table of 4-byte CRC32 values of the packed object data. -// This is new in v2 so compressed data can be copied directly -// from pack to pack during repacking without undetected -// data corruption. -// -// - A table of 4-byte offset values (in network byte order). -// These are usually 31-bit pack file offsets, but large -// offsets are encoded as an index into the next table with -// the msbit set. -// -// - A table of 8-byte offset entries (empty for pack files less -// than 2 GiB). Pack files are organized with heavily used -// objects toward the front, so most object references should -// not need to refer to this table. -// -// - The same trailer as a v1 pack file: -// -// A copy of the 20-byte SHA1 checksum at the end of -// corresponding packfile. -// -// 20-byte SHA1-checksum of all of the above. -// -// From: -// https://www.kernel.org/pub/software/scm/git/docs/v1.7.5/technical/pack-protocol.txt diff --git a/formats/idxfile/doc.txt b/formats/idxfile/doc.txt new file mode 100644 index 000000000..2dcfa4bf5 --- /dev/null +++ b/formats/idxfile/doc.txt @@ -0,0 +1,127 @@ +== Original (version 1) pack-*.idx files have the following format: + + - The header consists of 256 4-byte network byte order + integers. N-th entry of this table records the number of + objects in the corresponding pack, the first byte of whose + object name is less than or equal to N. This is called the + 'first-level fan-out' table. + + - The header is followed by sorted 24-byte entries, one entry + per object in the pack. Each entry is: + + 4-byte network byte order integer, recording where the + object is stored in the packfile as the offset from the + beginning. + + 20-byte object name. + + - The file is concluded with a trailer: + + A copy of the 20-byte SHA1 checksum at the end of + corresponding packfile. + + 20-byte SHA1-checksum of all of the above. + +Pack Idx file: + + -- +--------------------------------+ +fanout | fanout[0] = 2 (for example) |-. +table +--------------------------------+ | + | fanout[1] | | + +--------------------------------+ | + | fanout[2] | | + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | + | fanout[255] = total objects |---. + -- +--------------------------------+ | | +main | offset | | | +index | object name 00XXXXXXXXXXXXXXXX | | | +table +--------------------------------+ | | + | offset | | | + | object name 00XXXXXXXXXXXXXXXX | | | + +--------------------------------+<+ | + .-| offset | | + | | object name 01XXXXXXXXXXXXXXXX | | + | +--------------------------------+ | + | | offset | | + | | object name 01XXXXXXXXXXXXXXXX | | + | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | + | | offset | | + | | object name FFXXXXXXXXXXXXXXXX | | + --| +--------------------------------+<--+ +trailer | | packfile checksum | + | +--------------------------------+ + | | idxfile checksum | + | +--------------------------------+ + .-------. + | +Pack file entry: <+ + + packed object header: + 1-byte size extension bit (MSB) + type (next 3 bit) + size0 (lower 4-bit) + n-byte sizeN (as long as MSB is set, each 7-bit) + size0..sizeN form 4+7+7+..+7 bit integer, size0 + is the least significant part, and sizeN is the + most significant part. + packed object data: + If it is not DELTA, then deflated bytes (the size above + is the size before compression). + If it is REF_DELTA, then + 20-byte base object name SHA1 (the size above is the + size of the delta data that follows). + delta data, deflated. + If it is OFS_DELTA, then + n-byte offset (see below) interpreted as a negative + offset from the type-byte of the header of the + ofs-delta entry (the size above is the size of + the delta data that follows). + delta data, deflated. + + offset encoding: + n bytes with MSB set in all but the last one. + The offset is then the number constructed by + concatenating the lower 7 bit of each byte, and + for n >= 2 adding 2^7 + 2^14 + ... + 2^(7*(n-1)) + to the result. + + + +== Version 2 pack-*.idx files support packs larger than 4 GiB, and + have some other reorganizations. They have the format: + + - A 4-byte magic number '\377tOc' which is an unreasonable + fanout[0] value. + + - A 4-byte version number (= 2) + + - A 256-entry fan-out table just like v1. + + - A table of sorted 20-byte SHA1 object names. These are + packed together without offset values to reduce the cache + footprint of the binary search for a specific object name. + + - A table of 4-byte CRC32 values of the packed object data. + This is new in v2 so compressed data can be copied directly + from pack to pack during repacking without undetected + data corruption. + + - A table of 4-byte offset values (in network byte order). + These are usually 31-bit pack file offsets, but large + offsets are encoded as an index into the next table with + the msbit set. + + - A table of 8-byte offset entries (empty for pack files less + than 2 GiB). Pack files are organized with heavily used + objects toward the front, so most object references should + not need to refer to this table. + + - The same trailer as a v1 pack file: + + A copy of the 20-byte SHA1 checksum at the end of + corresponding packfile. + + 20-byte SHA1-checksum of all of the above. + +From: +https://www.kernel.org/pub/software/scm/git/docs/v1.7.5/technical/pack-protocol.txt diff --git a/formats/idxfile/encoder.go b/formats/idxfile/encoder.go new file mode 100644 index 000000000..277a811b1 --- /dev/null +++ b/formats/idxfile/encoder.go @@ -0,0 +1,125 @@ +package idxfile + +import ( + "crypto/sha1" + "encoding/binary" + "hash" + "io" +) + +// An Encoder writes idx files to an output stream. +type Encoder struct { + io.Writer + hash hash.Hash +} + +// NewEncoder returns a new encoder that writes to w. +func NewEncoder(w io.Writer) *Encoder { + hash := sha1.New() + writer := io.MultiWriter(w, hash) + return &Encoder{writer, hash} +} + +// Encode writes the idx in an idx file format to the stream of the encoder. +func (e *Encoder) Encode(idx *Idxfile) (int, error) { + flow := []func(*Idxfile) (int, error){ + e.encodeHeader, + e.encodeFanout, + e.encodeHashes, + e.encodeCRC32, + e.encodeOffsets, + e.encodeChecksums, + } + + size := 0 + for _, f := range flow { + i, err := f(idx) + size += i + + if err != nil { + return size, err + } + } + + return size, nil +} + +func (e *Encoder) encodeHeader(idx *Idxfile) (int, error) { + count, err := e.Write(idxHeader) + if err != nil { + return count, err + } + + return count + 4, e.writeInt32(idx.Version) +} + +func (e *Encoder) encodeFanout(idx *Idxfile) (int, error) { + fanout := idx.calculateFanout() + for _, c := range fanout { + if err := e.writeInt32(c); err != nil { + return 0, err + } + } + + return 1024, nil +} + +func (e *Encoder) encodeHashes(idx *Idxfile) (int, error) { + return e.encodeEntryField(idx, true) +} + +func (e *Encoder) encodeCRC32(idx *Idxfile) (int, error) { + return e.encodeEntryField(idx, false) +} + +func (e *Encoder) encodeEntryField(idx *Idxfile, isHash bool) (int, error) { + size := 0 + for _, entry := range idx.Entries { + var data []byte + if isHash { + data = entry.Hash[:] + } else { + data = entry.CRC32[:] + } + i, err := e.Write(data) + size += i + + if err != nil { + return size, err + } + } + + return size, nil +} + +func (e *Encoder) encodeOffsets(idx *Idxfile) (int, error) { + size := 0 + for _, entry := range idx.Entries { + if err := e.writeInt32(uint32(entry.Offset)); err != nil { + return size, err + } + + size += 4 + + } + + return size, nil +} + +func (e *Encoder) encodeChecksums(idx *Idxfile) (int, error) { + if _, err := e.Write(idx.PackfileChecksum[:]); err != nil { + return 0, err + } + + copy(idx.IdxChecksum[:], e.hash.Sum(nil)[:20]) + if _, err := e.Write(idx.IdxChecksum[:]); err != nil { + return 0, err + } + + return 40, nil + +} + +func (e *Encoder) writeInt32(value uint32) error { + return binary.Write(e, binary.BigEndian, value) +} diff --git a/formats/idxfile/encoder_test.go b/formats/idxfile/encoder_test.go new file mode 100644 index 000000000..84f793c58 --- /dev/null +++ b/formats/idxfile/encoder_test.go @@ -0,0 +1,47 @@ +package idxfile + +import ( + "bytes" + "io" + "os" + + . "gopkg.in/check.v1" +) + +func (s *IdxfileSuite) TestEncode(c *C) { + for i, path := range [...]string{ + "fixtures/git-fixture.idx", + "../packfile/fixtures/spinnaker-spinnaker.idx", + } { + comment := Commentf("subtest %d: path = %s", i, path) + + expected, idx, err := decode(path) + c.Assert(err, IsNil, comment) + + obtained := new(bytes.Buffer) + encoder := NewEncoder(obtained) + size, err := encoder.Encode(idx) + c.Assert(err, IsNil, comment) + + c.Assert(size, Equals, expected.Len(), comment) + c.Assert(obtained, DeepEquals, expected, comment) + } +} + +func decode(path string) (*bytes.Buffer, *Idxfile, error) { + file, err := os.Open(path) + if err != nil { + return nil, nil, err + } + + contents := new(bytes.Buffer) + tee := io.TeeReader(file, contents) + + decoder := NewDecoder(tee) + idx := &Idxfile{} + if err = decoder.Decode(idx); err != nil { + return nil, nil, err + } + + return contents, idx, file.Close() +} diff --git a/formats/idxfile/fixtures/git-fixture.pack b/formats/idxfile/fixtures/git-fixture.pack deleted file mode 100644 index 3e36d57532aabf36047bd41432cd314fadc4b47a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 85474 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

    L`2N_yqX|VzNImIJgoe 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 diff --git a/formats/idxfile/idx.go b/formats/idxfile/idx.go deleted file mode 100644 index a6fe99428..000000000 --- a/formats/idxfile/idx.go +++ /dev/null @@ -1,34 +0,0 @@ -package idxfile - -import ( - "io" - - "gopkg.in/src-d/go-git.v3/core" -) - -type Idx struct { - Version uint32 - Fanout [255]uint32 - ObjectCount uint32 - Entries []IdxEntry - PackfileChecksum [20]byte - IdxChecksum [20]byte -} - -type IdxEntry struct { - Hash core.Hash - CRC32 [4]byte - Offset uint64 -} - -func New(r io.Reader) (*Idx, error) { - idx := &Idx{} - - idxReader := NewReader(r) - _, err := idxReader.Read(idx) - if err != nil { - return nil, err - } - - return idx, nil -} diff --git a/formats/idxfile/idxfile.go b/formats/idxfile/idxfile.go new file mode 100644 index 000000000..5f12dad66 --- /dev/null +++ b/formats/idxfile/idxfile.go @@ -0,0 +1,61 @@ +package idxfile + +import "gopkg.in/src-d/go-git.v3/core" + +const ( + // VersionSupported is the only idx version supported. + VersionSupported = 2 +) + +var ( + idxHeader = []byte{255, 't', 'O', 'c'} +) + +// An Idxfile represents an idx file in memory. +type Idxfile struct { + Version uint32 + Fanout [255]uint32 + ObjectCount uint32 + Entries []Entry + PackfileChecksum [20]byte + IdxChecksum [20]byte +} + +// An Entry represents data about an object in the packfile: its hash, +// offset and CRC32 checksum. +type Entry struct { + Hash core.Hash + CRC32 [4]byte + Offset uint64 +} + +func (idx *Idxfile) isValid() bool { + fanout := idx.calculateFanout() + for k, c := range idx.Fanout { + if fanout[k] != c { + return false + } + } + + return true +} + +func (idx *Idxfile) calculateFanout() [256]uint32 { + fanout := [256]uint32{} + var c uint32 + for _, e := range idx.Entries { + c++ + fanout[e.Hash[0]] = c + } + + var i uint32 + for k, c := range fanout { + if c != 0 { + i = c + } + + fanout[k] = i + } + + return fanout +} diff --git a/formats/idxfile/reader.go b/formats/idxfile/reader.go deleted file mode 100644 index 8e3bd1e34..000000000 --- a/formats/idxfile/reader.go +++ /dev/null @@ -1,220 +0,0 @@ -package idxfile - -import ( - "bytes" - "encoding/binary" - "errors" - "fmt" - "io" - - "gopkg.in/src-d/go-git.v3/core" -) - -const ( - IdxVersionSupported = 2 -) - -var ( - IdxHeader = []byte{255, 't', 'O', 'c'} - ErrUnsupportedVersion = errors.New("Unsuported version") - ErrMalformedIdxFile = errors.New("Malformed IDX file") -) - -type Reader struct { - r io.Reader -} - -func NewReader(r io.Reader) *Reader { - return &Reader{r: r} -} - -func (r *Reader) Read(idx *Idx) (int64, error) { - if err := r.validateHeader(); err != nil { - return -1, err - } - - flow := []func(*Idx) error{ - r.readVersion, - r.readFanout, - r.readObjectNames, - r.readCRC32, - r.readOffsets, - r.readChecksums, - } - - for _, f := range flow { - if err := f(idx); err != nil { - return -1, err - } - } - - if !r.isValid(idx) { - return -1, ErrMalformedIdxFile - } - - return 0, nil -} - -func (r *Reader) validateHeader() error { - var header = make([]byte, 4) - if _, err := r.r.Read(header); err != nil { - return err - } - - if !bytes.Equal(header, IdxHeader) { - return ErrMalformedIdxFile - } - - return nil -} - -func (r *Reader) readVersion(idx *Idx) error { - version, err := r.readInt32() - if err != nil { - return err - } - - if version > IdxVersionSupported { - return ErrUnsupportedVersion - } - - idx.Version = version - - return nil -} - -func (r *Reader) readFanout(idx *Idx) error { - for i := 0; i < 255; i++ { - var err error - idx.Fanout[i], err = r.readInt32() - if err != nil { - return err - } - } - - var err error - idx.ObjectCount, err = r.readInt32() - if err != nil { - return err - } - - return nil -} - -func (r *Reader) readObjectNames(idx *Idx) error { - count := int(idx.ObjectCount) - for i := 0; i < count; i++ { - var ref core.Hash - if _, err := r.r.Read(ref[:]); err != nil { - return err - } - - idx.Entries = append(idx.Entries, IdxEntry{Hash: ref}) - } - - return nil -} - -func (r *Reader) readCRC32(idx *Idx) error { - count := int(idx.ObjectCount) - for i := 0; i < count; i++ { - if _, err := r.r.Read(idx.Entries[i].CRC32[:]); err != nil { - return err - } - } - - return nil -} - -func (r *Reader) readOffsets(idx *Idx) error { - count := int(idx.ObjectCount) - for i := 0; i < count; i++ { - offset, err := r.readInt32() - if err != nil { - return err - } - - idx.Entries[i].Offset = uint64(offset) - } - - return nil -} - -func (r *Reader) read64bitsOffsets(idx *Idx) error { - count := int(idx.ObjectCount) - for i := 0; i < count; i++ { - offset, err := r.readInt64() - if err != nil { - return err - } - - if offset != 0 { - idx.Entries[i].Offset = offset - } - - fmt.Println(uint64(offset)) - } - - return nil -} - -func (r *Reader) readChecksums(idx *Idx) error { - if _, err := r.r.Read(idx.PackfileChecksum[:]); err != nil { - return err - } - - if _, err := r.r.Read(idx.IdxChecksum[:]); err != nil { - return err - } - - return nil -} - -func (r *Reader) isValid(idx *Idx) bool { - fanout := calculateFanout(idx) - for k, c := range idx.Fanout { - if fanout[k] != c { - return false - } - } - - return true -} - -func (r *Reader) readInt32() (uint32, error) { - var value uint32 - if err := binary.Read(r.r, binary.BigEndian, &value); err != nil { - return 0, err - } - - return value, nil -} - -func (r *Reader) readInt64() (uint64, error) { - var value uint64 - if err := binary.Read(r.r, binary.BigEndian, &value); err != nil { - return 0, err - } - - return value, nil -} - -func calculateFanout(idx *Idx) [256]uint32 { - fanout := [256]uint32{} - var c uint32 - for _, e := range idx.Entries { - c++ - fanout[e.Hash[0]] = c - } - - var i uint32 - for k, c := range fanout { - if c != 0 { - i = c - } - - fanout[k] = i - } - - return fanout -} diff --git a/formats/idxfile/reader_test.go b/formats/idxfile/reader_test.go deleted file mode 100644 index 3bd648c28..000000000 --- a/formats/idxfile/reader_test.go +++ /dev/null @@ -1,45 +0,0 @@ -package idxfile - -import ( - "bytes" - "fmt" - "os" - "testing" - - . "gopkg.in/check.v1" -) - -func Test(t *testing.T) { TestingT(t) } - -type ReaderSuite struct{} - -var _ = Suite(&ReaderSuite{}) - -func (s *ReaderSuite) TestReadPackfile(c *C) { - f, err := os.Open("fixtures/git-fixture.idx") - c.Assert(err, IsNil) - - idx := &Idx{} - - r := NewReader(f) - l, err := r.Read(idx) - c.Assert(err, IsNil) - c.Assert(l, Equals, int64(0)) - - c.Assert(int(idx.ObjectCount), Equals, 31) - c.Assert(idx.Entries, HasLen, 31) - c.Assert(idx.Entries[0].Hash.String(), Equals, "1669dce138d9b841a518c64b10914d88f5e488ea") - c.Assert(idx.Entries[0].Offset, Equals, uint64(615)) - - c.Assert(fmt.Sprintf("%x", idx.IdxChecksum), Equals, "bba9b7a9895724819225a044c857d391bb9d61d9") - c.Assert(fmt.Sprintf("%x", idx.PackfileChecksum), Equals, "54bb61360ab2dad1a3e344a8cd3f82b848518cba") - - idx.IdxChecksum = [20]byte{} - b := bytes.NewBuffer(nil) - w := NewWriter(b) - size, err := w.Write(idx) - c.Assert(err, IsNil) - c.Assert(size, Equals, 1940) - - c.Assert(fmt.Sprintf("%x", idx.IdxChecksum), Equals, "bba9b7a9895724819225a044c857d391bb9d61d9") -} diff --git a/formats/idxfile/writer.go b/formats/idxfile/writer.go deleted file mode 100644 index 99cc95b09..000000000 --- a/formats/idxfile/writer.go +++ /dev/null @@ -1,125 +0,0 @@ -package idxfile - -import ( - "crypto/sha1" - "encoding/binary" - "hash" - "io" -) - -type Writer struct { - w io.Writer - h hash.Hash -} - -func NewWriter(w io.Writer) *Writer { - h := sha1.New() - - return &Writer{ - w: io.MultiWriter(w, h), - h: h, - } -} - -func (w *Writer) Write(idx *Idx) (int, error) { - flow := []func(*Idx) (int, error){ - w.writeHeader, - w.writeFanout, - w.writeObjectsNames, - w.writeCRC32, - w.writeOffsets, - w.writeChecksums, - } - - size := 0 - for _, f := range flow { - i, err := f(idx) - size += i - - if err != nil { - return size, err - } - } - - return size, nil -} - -func (w *Writer) writeHeader(idx *Idx) (int, error) { - count, err := w.w.Write(IdxHeader) - if err != nil { - return count, err - } - - return count + 4, w.writeInt32(idx.Version) -} - -func (w *Writer) writeFanout(idx *Idx) (int, error) { - fanout := calculateFanout(idx) - for _, c := range fanout { - if err := w.writeInt32(c); err != nil { - return 0, err - } - } - - return 1024, nil -} - -func (w *Writer) writeObjectsNames(idx *Idx) (int, error) { - size := 0 - for _, e := range idx.Entries { - i, err := w.w.Write(e.Hash[:]) - size += i - - if err != nil { - return size, err - } - } - - return size, nil -} - -func (w *Writer) writeCRC32(idx *Idx) (int, error) { - size := 0 - for _, e := range idx.Entries { - i, err := w.w.Write(e.CRC32[:]) - size += i - - if err != nil { - return size, err - } - } - - return size, nil -} - -func (w *Writer) writeOffsets(idx *Idx) (int, error) { - size := 0 - for _, e := range idx.Entries { - if err := w.writeInt32(uint32(e.Offset)); err != nil { - return size, err - } - - size += 4 - - } - - return size, nil -} - -func (w *Writer) writeChecksums(idx *Idx) (int, error) { - if _, err := w.w.Write(idx.PackfileChecksum[:]); err != nil { - return 0, err - } - - copy(idx.IdxChecksum[:], w.h.Sum(nil)[:20]) - if _, err := w.w.Write(idx.IdxChecksum[:]); err != nil { - return 0, err - } - - return 40, nil - -} - -func (w *Writer) writeInt32(value uint32) error { - return binary.Write(w.w, binary.BigEndian, value) -} diff --git a/formats/packfile/fixtures/invalid.idx b/formats/packfile/fixtures/invalid.idx index cb43b5ce1342e5d73830ac8b6a37ea870fae2632..eeb576070df6ab6d3f9dfdf278414e6c3f3ca6b7 100644 GIT binary patch literal 100 LcmZQzpgjNp0Av6G literal 10 KcmZQzfB^si3IG8B diff --git a/storage/seekable/internal/index/index.go b/storage/seekable/internal/index/index.go index ff702ab89..543c49255 100644 --- a/storage/seekable/internal/index/index.go +++ b/storage/seekable/internal/index/index.go @@ -19,7 +19,9 @@ func NewFromPackfile(packfile io.Reader) (Index, error) { // NewFromIdx returns a new index from an idx file reader. func NewFromIdx(r io.Reader) (Index, error) { - idx, err := idxfile.New(r) + decoder := idxfile.NewDecoder(r) + idx := &idxfile.Idxfile{} + err := decoder.Decode(idx) if err != nil { return nil, err } diff --git a/storage/seekable/internal/index/index_test.go b/storage/seekable/internal/index/index_test.go index 0c9736af7..4dbe7bf93 100644 --- a/storage/seekable/internal/index/index_test.go +++ b/storage/seekable/internal/index/index_test.go @@ -29,7 +29,7 @@ func (s *SuiteIndex) TestNewFromIdx(c *C) { errRegexp: idxfile.ErrMalformedIdxFile.Error(), }, } { - comment := Commentf("subtest %d", i) + comment := Commentf("subtest %d) idxPath = %s", i, test.idxPath) idx, err := os.Open(test.idxPath) c.Assert(err, IsNil, comment) From e84bbe67d619670952c8ba1f52cea0e29a8f4e9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Tue, 7 Jun 2016 12:58:32 +0200 Subject: [PATCH 039/143] turn packfile/doc.go into packfile/doc.txt --- formats/packfile/doc.go | 165 --------------------------------------- formats/packfile/doc.txt | 163 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 163 insertions(+), 165 deletions(-) delete mode 100644 formats/packfile/doc.go create mode 100644 formats/packfile/doc.txt diff --git a/formats/packfile/doc.go b/formats/packfile/doc.go deleted file mode 100644 index cb3f542a2..000000000 --- a/formats/packfile/doc.go +++ /dev/null @@ -1,165 +0,0 @@ -package packfile - -// GIT pack format -// =============== -// -// == pack-*.pack files have the following format: -// -// - A header appears at the beginning and consists of the following: -// -// 4-byte signature: -// The signature is: {'P', 'A', 'C', 'K'} -// -// 4-byte version number (network byte order): -// GIT currently accepts version number 2 or 3 but -// generates version 2 only. -// -// 4-byte number of objects contained in the pack (network byte order) -// -// Observation: we cannot have more than 4G versions ;-) and -// more than 4G objects in a pack. -// -// - The header is followed by number of object entries, each of -// which looks like this: -// -// (undeltified representation) -// n-byte type and length (3-bit type, (n-1)*7+4-bit length) -// compressed data -// -// (deltified representation) -// n-byte type and length (3-bit type, (n-1)*7+4-bit length) -// 20-byte base object name -// compressed delta data -// -// Observation: length of each object is encoded in a variable -// length format and is not constrained to 32-bit or anything. -// -// - The trailer records 20-byte SHA1 checksum of all of the above. -// -// == Original (version 1) pack-*.idx files have the following format: -// -// - The header consists of 256 4-byte network byte order -// integers. N-th entry of this table records the number of -// objects in the corresponding pack, the first byte of whose -// object name is less than or equal to N. This is called the -// 'first-level fan-out' table. -// -// - The header is followed by sorted 24-byte entries, one entry -// per object in the pack. Each entry is: -// -// 4-byte network byte order integer, recording where the -// object is stored in the packfile as the offset from the -// beginning. -// -// 20-byte object name. -// -// - The file is concluded with a trailer: -// -// A copy of the 20-byte SHA1 checksum at the end of -// corresponding packfile. -// -// 20-byte SHA1-checksum of all of the above. -// -// Pack Idx file: -// -// -- +--------------------------------+ -// fanout | fanout[0] = 2 (for example) |-. -// table +--------------------------------+ | -// | fanout[1] | | -// +--------------------------------+ | -// | fanout[2] | | -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | -// | fanout[255] = total objects |---. -// -- +--------------------------------+ | | -// main | offset | | | -// index | object name 00XXXXXXXXXXXXXXXX | | | -// table +--------------------------------+ | | -// | offset | | | -// | object name 00XXXXXXXXXXXXXXXX | | | -// +--------------------------------+<+ | -// .-| offset | | -// | | object name 01XXXXXXXXXXXXXXXX | | -// | +--------------------------------+ | -// | | offset | | -// | | object name 01XXXXXXXXXXXXXXXX | | -// | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | -// | | offset | | -// | | object name FFXXXXXXXXXXXXXXXX | | -// --| +--------------------------------+<--+ -// trailer | | packfile checksum | -// | +--------------------------------+ -// | | idxfile checksum | -// | +--------------------------------+ -// .-------. -// | -// Pack file entry: <+ -// -// packed object header: -// 1-byte size extension bit (MSB) -// type (next 3 bit) -// size0 (lower 4-bit) -// n-byte sizeN (as long as MSB is set, each 7-bit) -// size0..sizeN form 4+7+7+..+7 bit integer, size0 -// is the least significant part, and sizeN is the -// most significant part. -// packed object data: -// If it is not DELTA, then deflated bytes (the size above -// is the size before compression). -// If it is REF_DELTA, then -// 20-byte base object name SHA1 (the size above is the -// size of the delta data that follows). -// delta data, deflated. -// If it is OFS_DELTA, then -// n-byte offset (see below) interpreted as a negative -// offset from the type-byte of the header of the -// ofs-delta entry (the size above is the size of -// the delta data that follows). -// delta data, deflated. -// -// offset encoding: -// n bytes with MSB set in all but the last one. -// The offset is then the number constructed by -// concatenating the lower 7 bit of each byte, and -// for n >= 2 adding 2^7 + 2^14 + ... + 2^(7*(n-1)) -// to the result. -// -// -// -// == Version 2 pack-*.idx files support packs larger than 4 GiB, and -// have some other reorganizations. They have the format: -// -// - A 4-byte magic number '\377tOc' which is an unreasonable -// fanout[0] value. -// -// - A 4-byte version number (= 2) -// -// - A 256-entry fan-out table just like v1. -// -// - A table of sorted 20-byte SHA1 object names. These are -// packed together without offset values to reduce the cache -// footprint of the binary search for a specific object name. -// -// - A table of 4-byte CRC32 values of the packed object data. -// This is new in v2 so compressed data can be copied directly -// from pack to pack during repacking without undetected -// data corruption. -// -// - A table of 4-byte offset values (in network byte order). -// These are usually 31-bit pack file offsets, but large -// offsets are encoded as an index into the next table with -// the msbit set. -// -// - A table of 8-byte offset entries (empty for pack files less -// than 2 GiB). Pack files are organized with heavily used -// objects toward the front, so most object references should -// not need to refer to this table. -// -// - The same trailer as a v1 pack file: -// -// A copy of the 20-byte SHA1 checksum at the end of -// corresponding packfile. -// -// 20-byte SHA1-checksum of all of the above. -// -// From: -// https://www.kernel.org/pub/software/scm/git/docs/v1.7.5/technical/pack-protocol.txt diff --git a/formats/packfile/doc.txt b/formats/packfile/doc.txt new file mode 100644 index 000000000..7dda5b2ea --- /dev/null +++ b/formats/packfile/doc.txt @@ -0,0 +1,163 @@ +GIT pack format +=============== + +== pack-*.pack files have the following format: + + - A header appears at the beginning and consists of the following: + + 4-byte signature: + The signature is: {'P', 'A', 'C', 'K'} + + 4-byte version number (network byte order): + GIT currently accepts version number 2 or 3 but + generates version 2 only. + + 4-byte number of objects contained in the pack (network byte order) + + Observation: we cannot have more than 4G versions ;-) and + more than 4G objects in a pack. + + - The header is followed by number of object entries, each of + which looks like this: + + (undeltified representation) + n-byte type and length (3-bit type, (n-1)*7+4-bit length) + compressed data + + (deltified representation) + n-byte type and length (3-bit type, (n-1)*7+4-bit length) + 20-byte base object name + compressed delta data + + Observation: length of each object is encoded in a variable + length format and is not constrained to 32-bit or anything. + + - The trailer records 20-byte SHA1 checksum of all of the above. + +== Original (version 1) pack-*.idx files have the following format: + + - The header consists of 256 4-byte network byte order + integers. N-th entry of this table records the number of + objects in the corresponding pack, the first byte of whose + object name is less than or equal to N. This is called the + 'first-level fan-out' table. + + - The header is followed by sorted 24-byte entries, one entry + per object in the pack. Each entry is: + + 4-byte network byte order integer, recording where the + object is stored in the packfile as the offset from the + beginning. + + 20-byte object name. + + - The file is concluded with a trailer: + + A copy of the 20-byte SHA1 checksum at the end of + corresponding packfile. + + 20-byte SHA1-checksum of all of the above. + +Pack Idx file: + + -- +--------------------------------+ +fanout | fanout[0] = 2 (for example) |-. +table +--------------------------------+ | + | fanout[1] | | + +--------------------------------+ | + | fanout[2] | | + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | + | fanout[255] = total objects |---. + -- +--------------------------------+ | | +main | offset | | | +index | object name 00XXXXXXXXXXXXXXXX | | | +table +--------------------------------+ | | + | offset | | | + | object name 00XXXXXXXXXXXXXXXX | | | + +--------------------------------+<+ | + .-| offset | | + | | object name 01XXXXXXXXXXXXXXXX | | + | +--------------------------------+ | + | | offset | | + | | object name 01XXXXXXXXXXXXXXXX | | + | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | + | | offset | | + | | object name FFXXXXXXXXXXXXXXXX | | + --| +--------------------------------+<--+ +trailer | | packfile checksum | + | +--------------------------------+ + | | idxfile checksum | + | +--------------------------------+ + .-------. + | +Pack file entry: <+ + + packed object header: + 1-byte size extension bit (MSB) + type (next 3 bit) + size0 (lower 4-bit) + n-byte sizeN (as long as MSB is set, each 7-bit) + size0..sizeN form 4+7+7+..+7 bit integer, size0 + is the least significant part, and sizeN is the + most significant part. + packed object data: + If it is not DELTA, then deflated bytes (the size above + is the size before compression). + If it is REF_DELTA, then + 20-byte base object name SHA1 (the size above is the + size of the delta data that follows). + delta data, deflated. + If it is OFS_DELTA, then + n-byte offset (see below) interpreted as a negative + offset from the type-byte of the header of the + ofs-delta entry (the size above is the size of + the delta data that follows). + delta data, deflated. + + offset encoding: + n bytes with MSB set in all but the last one. + The offset is then the number constructed by + concatenating the lower 7 bit of each byte, and + for n >= 2 adding 2^7 + 2^14 + ... + 2^(7*(n-1)) + to the result. + + + +== Version 2 pack-*.idx files support packs larger than 4 GiB, and + have some other reorganizations. They have the format: + + - A 4-byte magic number '\377tOc' which is an unreasonable + fanout[0] value. + + - A 4-byte version number (= 2) + + - A 256-entry fan-out table just like v1. + + - A table of sorted 20-byte SHA1 object names. These are + packed together without offset values to reduce the cache + footprint of the binary search for a specific object name. + + - A table of 4-byte CRC32 values of the packed object data. + This is new in v2 so compressed data can be copied directly + from pack to pack during repacking without undetected + data corruption. + + - A table of 4-byte offset values (in network byte order). + These are usually 31-bit pack file offsets, but large + offsets are encoded as an index into the next table with + the msbit set. + + - A table of 8-byte offset entries (empty for pack files less + than 2 GiB). Pack files are organized with heavily used + objects toward the front, so most object references should + not need to refer to this table. + + - The same trailer as a v1 pack file: + + A copy of the 20-byte SHA1 checksum at the end of + corresponding packfile. + + 20-byte SHA1-checksum of all of the above. + +From: +https://www.kernel.org/pub/software/scm/git/docs/v1.7.5/technical/pack-protocol.txt From b2ad04f16e375af55585c440906542e08c70550e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Tue, 7 Jun 2016 14:34:09 +0200 Subject: [PATCH 040/143] move formats/packfile/reader to decoder --- blame_test.go | 6 +- common_test.go | 6 +- formats/packfile/{reader.go => decoder.go} | 68 +++++++++---------- .../{reader_test.go => decoder_test.go} | 16 ++--- references_test.go | 6 +- remote_test.go | 4 +- repository.go | 4 +- storage/seekable/store_test.go | 10 +-- 8 files changed, 61 insertions(+), 59 deletions(-) rename formats/packfile/{reader.go => decoder.go} (73%) rename formats/packfile/{reader_test.go => decoder_test.go} (96%) diff --git a/blame_test.go b/blame_test.go index 880b0adb9..58a783d60 100644 --- a/blame_test.go +++ b/blame_test.go @@ -25,13 +25,13 @@ func (s *BlameCommon) SetUpSuite(c *C) { d, err := os.Open(fixRepo.packfile) c.Assert(err, IsNil) - r := packfile.NewReader(d) + decoder := packfile.NewDecoder(d) // TODO: how to know the format of a pack file ahead of time? // Some info at: // https://codewords.recurse.com/issues/three/unpacking-git-packfiles - r.Format = packfile.OFSDeltaFormat + decoder.Format = packfile.OFSDeltaFormat - _, err = r.Read(repo.Storage) + _, err = decoder.Decode(repo.Storage) c.Assert(err, IsNil) c.Assert(d.Close(), IsNil) diff --git a/common_test.go b/common_test.go index 53160a758..e0bb1979a 100644 --- a/common_test.go +++ b/common_test.go @@ -70,10 +70,10 @@ func unpackFixtures(c *C, fixtures ...[]packedFixture) map[string]*Repository { d, err := os.Open(fixture.packfile) c.Assert(err, IsNil) - r := packfile.NewReader(d) - r.Format = packfile.OFSDeltaFormat // This is hardcoded because we don't have a good way to sniff the format + decoder := packfile.NewDecoder(d) + decoder.Format = packfile.OFSDeltaFormat // This is hardcoded because we don't have a good way to sniff the format - _, err = r.Read(repos[fixture.url].Storage) + _, err = decoder.Decode(repos[fixture.url].Storage) c.Assert(err, IsNil) c.Assert(d.Close(), IsNil) diff --git a/formats/packfile/reader.go b/formats/packfile/decoder.go similarity index 73% rename from formats/packfile/reader.go rename to formats/packfile/decoder.go index 3fc3479ec..96f98a624 100644 --- a/formats/packfile/reader.go +++ b/formats/packfile/decoder.go @@ -33,8 +33,8 @@ const ( REFDeltaFormat Format = 2 ) -// Reader reads a packfile from a binary string splitting it on objects -type Reader struct { +// Decoder reads and decodes packfiles from an input stream. +type Decoder struct { // MaxObjectsLimit is the limit of objects to be load in the packfile, if // a packfile excess this number an error is throw, the default value // is defined by DefaultMaxObjectsLimit, usually the default limit is more @@ -52,9 +52,9 @@ type Reader struct { offsets map[int64]core.Hash } -// NewReader returns a new Reader that reads from a io.Reader -func NewReader(r io.Reader) *Reader { - return &Reader{ +// NewDecoder returns a new Decoder that reads from r. +func NewDecoder(r io.Reader) *Decoder { + return &Decoder{ MaxObjectsLimit: DefaultMaxObjectsLimit, r: NewTrackingReader(r), @@ -62,10 +62,10 @@ func NewReader(r io.Reader) *Reader { } } -// Read reads the objects and stores it at the ObjectStorage -func (r *Reader) Read(s core.ObjectStorage) (int64, error) { - r.s = s - if err := r.validateHeader(); err != nil { +// Decode reads a packfile and stores it in the value pointed to by s. +func (d *Decoder) Decode(s core.ObjectStorage) (int64, error) { + d.s = s + if err := d.validateHeader(); err != nil { if err == io.EOF { return -1, EmptyRepositoryErr } @@ -73,7 +73,7 @@ func (r *Reader) Read(s core.ObjectStorage) (int64, error) { return -1, err } - version, err := r.readInt32() + version, err := d.readInt32() if err != nil { return -1, err } @@ -82,21 +82,21 @@ func (r *Reader) Read(s core.ObjectStorage) (int64, error) { return -1, UnsupportedVersionErr } - count, err := r.readInt32() + count, err := d.readInt32() if err != nil { return -1, err } - if count > r.MaxObjectsLimit { + if count > d.MaxObjectsLimit { return -1, MaxObjectsLimitReachedErr } - return r.r.position, r.readObjects(count) + return d.r.position, d.readObjects(count) } -func (r *Reader) validateHeader() error { +func (d *Decoder) validateHeader() error { var header = make([]byte, 4) - if _, err := io.ReadFull(r.r, header); err != nil { + if _, err := io.ReadFull(d.r, header); err != nil { return err } @@ -107,32 +107,32 @@ func (r *Reader) validateHeader() error { return nil } -func (r *Reader) readInt32() (uint32, error) { +func (d *Decoder) readInt32() (uint32, error) { var value uint32 - if err := binary.Read(r.r, binary.BigEndian, &value); err != nil { + if err := binary.Read(d.r, binary.BigEndian, &value); err != nil { return 0, err } return value, nil } -func (r *Reader) readObjects(count uint32) error { +func (d *Decoder) readObjects(count uint32) error { // This code has 50-80 µs of overhead per object not counting zlib inflation. // Together with zlib inflation, it's 400-410 µs for small objects. // That's 1 sec for ~2450 objects, ~4.20 MB, or ~250 ms per MB, // of which 12-20 % is _not_ zlib inflation (ie. is our code). for i := 0; i < int(count); i++ { - start := r.r.position - obj, err := r.newObject() + start := d.r.position + obj, err := d.newObject() if err != nil && err != io.EOF { return err } - if r.Format == UnknownFormat || r.Format == OFSDeltaFormat { - r.offsets[start] = obj.Hash() + if d.Format == UnknownFormat || d.Format == OFSDeltaFormat { + d.offsets[start] = obj.Hash() } - _, err = r.s.Set(obj) + _, err = d.s.Set(obj) if err == io.EOF { break } @@ -141,27 +141,27 @@ func (r *Reader) readObjects(count uint32) error { return nil } -func (r *Reader) newObject() (core.Object, error) { +func (d *Decoder) newObject() (core.Object, error) { var typ core.ObjectType var length int64 var content []byte - objectStart := r.r.position + objectStart := d.r.position - typ, length, err := readTypeAndLength(r.r) + typ, length, err := readTypeAndLength(d.r) if err != nil { return nil, err } switch typ { case core.REFDeltaObject: - content, typ, err = readContentREFDelta(r.r, r) + content, typ, err = readContentREFDelta(d.r, d) length = int64(len(content)) case core.OFSDeltaObject: - content, typ, err = readContentOFSDelta(r.r, objectStart, r) + content, typ, err = readContentOFSDelta(d.r, objectStart, d) length = int64(len(content)) case core.CommitObject, core.TreeObject, core.BlobObject, core.TagObject: - content, err = readContent(r.r) + content, err = readContent(d.r) default: err = InvalidObjectErr.n("tag %q", typ) } @@ -173,18 +173,18 @@ func (r *Reader) newObject() (core.Object, error) { } // Returns an already seen object by its hash, part of Rememberer interface. -func (r *Reader) ByHash(hash core.Hash) (core.Object, error) { - return r.s.Get(hash) +func (d *Decoder) ByHash(hash core.Hash) (core.Object, error) { + return d.s.Get(hash) } // Returns an already seen object by its offset in the packfile, part of Rememberer interface. -func (r *Reader) ByOffset(offset int64) (core.Object, error) { - hash, ok := r.offsets[offset] +func (d *Decoder) ByOffset(offset int64) (core.Object, error) { + hash, ok := d.offsets[offset] if !ok { return nil, PackEntryNotFoundErr.n("offset %d", offset) } - return r.ByHash(hash) + return d.ByHash(hash) } type ReaderError struct { diff --git a/formats/packfile/reader_test.go b/formats/packfile/decoder_test.go similarity index 96% rename from formats/packfile/reader_test.go rename to formats/packfile/decoder_test.go index 9ae569de9..64cb6388a 100644 --- a/formats/packfile/reader_test.go +++ b/formats/packfile/decoder_test.go @@ -28,10 +28,10 @@ func (s *ReaderSuite) TestReadPackfile(c *C) { data, _ := base64.StdEncoding.DecodeString(packFileWithEmptyObjects) d := bytes.NewReader(data) - r := NewReader(d) + decoder := NewDecoder(d) storage := memory.NewObjectStorage() - _, err := r.Read(storage) + _, err := decoder.Decode(storage) c.Assert(err, IsNil) AssertObjects(c, storage, []string{ @@ -61,11 +61,11 @@ func (s *ReaderSuite) testReadPackfileGitFixture(c *C, file string, f Format) { d, err := os.Open(file) c.Assert(err, IsNil) - r := NewReader(d) - r.Format = f + decoder := NewDecoder(d) + decoder.Format = f storage := memory.NewObjectStorage() - _, err = r.Read(storage) + _, err = decoder.Decode(storage) c.Assert(err, IsNil) AssertObjects(c, storage, []string{ @@ -179,11 +179,11 @@ func readFromFile(c *C, file string, f Format) *memory.ObjectStorage { d, err := os.Open(file) c.Assert(err, IsNil) - r := NewReader(d) - r.Format = f + decoder := NewDecoder(d) + decoder.Format = f storage := memory.NewObjectStorage() - _, err = r.Read(storage) + _, err = decoder.Decode(storage) c.Assert(err, IsNil) return storage diff --git a/references_test.go b/references_test.go index 4bd91d2e7..5d764b319 100644 --- a/references_test.go +++ b/references_test.go @@ -27,10 +27,10 @@ func (s *ReferencesSuite) SetUpSuite(c *C) { defer d.Close() c.Assert(err, IsNil) - r := packfile.NewReader(d) - r.Format = packfile.OFSDeltaFormat // TODO: how to know the format of a pack file ahead of time? + decoder := packfile.NewDecoder(d) + decoder.Format = packfile.OFSDeltaFormat // TODO: how to know the format of a pack file ahead of time? - _, err = r.Read(s.repos[fixRepo.url].Storage) + _, err = decoder.Decode(s.repos[fixRepo.url].Storage) c.Assert(err, IsNil) } } diff --git a/remote_test.go b/remote_test.go index 85b464cf1..277e154fd 100644 --- a/remote_test.go +++ b/remote_test.go @@ -56,10 +56,10 @@ func (s *SuiteRemote) TestFetchDefaultBranch(c *C) { reader, err := r.FetchDefaultBranch() c.Assert(err, IsNil) - pr := packfile.NewReader(reader) + decoder := packfile.NewDecoder(reader) storage := memory.NewObjectStorage() - _, err = pr.Read(storage) + _, err = decoder.Decode(storage) c.Assert(err, IsNil) c.Assert(storage.Objects, HasLen, 28) } diff --git a/repository.go b/repository.go index 802e16c76..a8775d163 100644 --- a/repository.go +++ b/repository.go @@ -103,8 +103,8 @@ func (r *Repository) Pull(remoteName, branch string) (err error) { } defer checkClose(reader, &err) - pr := packfile.NewReader(reader) - if _, err = pr.Read(r.Storage); err != nil { + decoder := packfile.NewDecoder(reader) + if _, err = decoder.Decode(r.Storage); err != nil { return err } diff --git a/storage/seekable/store_test.go b/storage/seekable/store_test.go index a53b82d3b..831602fd9 100644 --- a/storage/seekable/store_test.go +++ b/storage/seekable/store_test.go @@ -36,9 +36,11 @@ func (s *SeekableSuite) TestGetCompareWithMemoryStorage(c *C) { memStorage := memory.NewObjectStorage() packfileFile, err := os.Open(packfilePath) c.Assert(err, IsNil, comment) - pr := packfile.NewReader(packfileFile) - _, err = pr.Read(memStorage) + + decoder := packfile.NewDecoder(packfileFile) + _, err = decoder.Decode(memStorage) c.Assert(err, IsNil, comment) + err = packfileFile.Close() c.Assert(err, IsNil, comment) @@ -92,8 +94,8 @@ func (s *SeekableSuite) TestIterCompareWithMemoryStorage(c *C) { memStorage := memory.NewObjectStorage() packfileFile, err := os.Open(packfilePath) c.Assert(err, IsNil, comment) - pr := packfile.NewReader(packfileFile) - _, err = pr.Read(memStorage) + decoder := packfile.NewDecoder(packfileFile) + _, err = decoder.Decode(memStorage) c.Assert(err, IsNil, comment) err = packfileFile.Close() c.Assert(err, IsNil, comment) From e27ff13a0fbe0e2fd0d21445301820666954fe58 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Tue, 7 Jun 2016 14:37:42 +0200 Subject: [PATCH 041/143] fix packfile decoder error names --- formats/packfile/decoder.go | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/formats/packfile/decoder.go b/formats/packfile/decoder.go index 96f98a624..04d0b2809 100644 --- a/formats/packfile/decoder.go +++ b/formats/packfile/decoder.go @@ -13,15 +13,15 @@ import ( type Format int var ( - EmptyRepositoryErr = newError("empty repository") - UnsupportedVersionErr = newError("unsupported packfile version") - MaxObjectsLimitReachedErr = newError("max. objects limit reached") - MalformedPackfileErr = newError("malformed pack file, does not start with 'PACK'") - InvalidObjectErr = newError("invalid git object") - PatchingErr = newError("patching error") - PackEntryNotFoundErr = newError("can't find a pack entry") + ErrEmptyRepository = newError("empty repository") + ErrUnsupportedVersion = newError("unsupported packfile version") + ErrMaxObjectsLimitReached = newError("max. objects limit reached") + ErrMalformedPackfile = newError("malformed pack file, does not start with 'PACK'") + ErrInvalidObject = newError("invalid git object") + ErrPatching = newError("patching error") + ErrPackEntryNotFound = newError("can't find a pack entry") ErrObjectNotFound = newError("can't find a object") - ZLibErr = newError("zlib reading error") + ErrZLib = newError("zlib reading error") ) const ( @@ -67,7 +67,7 @@ func (d *Decoder) Decode(s core.ObjectStorage) (int64, error) { d.s = s if err := d.validateHeader(); err != nil { if err == io.EOF { - return -1, EmptyRepositoryErr + return -1, ErrEmptyRepository } return -1, err @@ -79,7 +79,7 @@ func (d *Decoder) Decode(s core.ObjectStorage) (int64, error) { } if version > VersionSupported { - return -1, UnsupportedVersionErr + return -1, ErrUnsupportedVersion } count, err := d.readInt32() @@ -88,7 +88,7 @@ func (d *Decoder) Decode(s core.ObjectStorage) (int64, error) { } if count > d.MaxObjectsLimit { - return -1, MaxObjectsLimitReachedErr + return -1, ErrMaxObjectsLimitReached } return d.r.position, d.readObjects(count) @@ -101,7 +101,7 @@ func (d *Decoder) validateHeader() error { } if !bytes.Equal(header, []byte{'P', 'A', 'C', 'K'}) { - return MalformedPackfileErr + return ErrMalformedPackfile } return nil @@ -163,7 +163,7 @@ func (d *Decoder) newObject() (core.Object, error) { case core.CommitObject, core.TreeObject, core.BlobObject, core.TagObject: content, err = readContent(d.r) default: - err = InvalidObjectErr.n("tag %q", typ) + err = ErrInvalidObject.n("tag %q", typ) } if err != nil { return nil, err @@ -181,7 +181,7 @@ func (d *Decoder) ByHash(hash core.Hash) (core.Object, error) { func (d *Decoder) ByOffset(offset int64) (core.Object, error) { hash, ok := d.offsets[offset] if !ok { - return nil, PackEntryNotFoundErr.n("offset %d", offset) + return nil, ErrPackEntryNotFound.n("offset %d", offset) } return d.ByHash(hash) From cc0ff0b77e2c2af3410eb3c27ab54445fbc1f5d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Tue, 7 Jun 2016 14:43:48 +0200 Subject: [PATCH 042/143] improve documentation --- formats/packfile/decoder.go | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/formats/packfile/decoder.go b/formats/packfile/decoder.go index 04d0b2809..acee1ef61 100644 --- a/formats/packfile/decoder.go +++ b/formats/packfile/decoder.go @@ -25,12 +25,11 @@ var ( ) const ( - DefaultMaxObjectsLimit = 1 << 20 - - VersionSupported = 2 - UnknownFormat Format = 0 - OFSDeltaFormat Format = 1 - REFDeltaFormat Format = 2 + DefaultMaxObjectsLimit = 1 << 20 + VersionSupported = 2 + UnknownFormat Format = 0 + OFSDeltaFormat Format = 1 + REFDeltaFormat Format = 2 ) // Decoder reads and decodes packfiles from an input stream. @@ -38,11 +37,11 @@ type Decoder struct { // MaxObjectsLimit is the limit of objects to be load in the packfile, if // a packfile excess this number an error is throw, the default value // is defined by DefaultMaxObjectsLimit, usually the default limit is more - // than enough to work with any repository, working extremly big repositories - // where the number of object is bigger the memory can be exhausted. + // than enough to work with any repository, with higher values and huge + // repositories you can run out of memory. MaxObjectsLimit uint32 - // Format specifies if we are using ref-delta's or ofs-delta's, choosing the + // Format specifies if we are using ref-delta's or ofs-delta's, by choosing the // correct format the memory usage is optimized // https://github.com/git/git/blob/8d530c4d64ffcc853889f7b385f554d53db375ed/Documentation/technical/protocol-capabilities.txt#L154 Format Format From 0acdaa0fb8c6ad098c0f7be16b57aa693c091310 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Tue, 7 Jun 2016 14:53:28 +0200 Subject: [PATCH 043/143] comment packfile decoder errors --- formats/packfile/decoder.go | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/formats/packfile/decoder.go b/formats/packfile/decoder.go index acee1ef61..0ffd7a736 100644 --- a/formats/packfile/decoder.go +++ b/formats/packfile/decoder.go @@ -10,18 +10,25 @@ import ( "gopkg.in/src-d/go-git.v3/storage/memory" ) +// Format specifies if the packfile uses ref-deltas or ofs-deltas. +// Possible values: OFSDeltaFormat or REFDeltaFormat. type Format int var ( - ErrEmptyRepository = newError("empty repository") - ErrUnsupportedVersion = newError("unsupported packfile version") + // ErrEmptyPackfile is returned by Decode when no data is found in the packfile + ErrEmptyPackfile = newError("empty packfile") + // ErrUnsupportedVersion is returned by Decode when packfile version is different than VersionSupported. + ErrUnsupportedVersion = newError("unsupported packfile version") + // ErrMaxObjectsLimitReached is returned by Decode when the number of objects in the packfile is higher than Decoder.MaxObjectsLimit. ErrMaxObjectsLimitReached = newError("max. objects limit reached") - ErrMalformedPackfile = newError("malformed pack file, does not start with 'PACK'") - ErrInvalidObject = newError("invalid git object") - ErrPatching = newError("patching error") - ErrPackEntryNotFound = newError("can't find a pack entry") - ErrObjectNotFound = newError("can't find a object") - ErrZLib = newError("zlib reading error") + // ErrMalformedPackfile is returned by Decode when the packfile is corrupt. + ErrMalformedPackfile = newError("malformed pack file, does not start with 'PACK'") + // ErrInvalidObject is returned by Decode when an invalid object is found in the packfile. + ErrInvalidObject = newError("invalid git object") + // ErrPackEntryNotFound is returned by Decode when a reference in the packfile references and unknown object. + ErrPackEntryNotFound = newError("can't find a pack entry") + // ErrZlib is returned by Decode when there was an error unzipping the packfile contents. + ErrZLib = newError("zlib reading error") ) const ( @@ -66,7 +73,7 @@ func (d *Decoder) Decode(s core.ObjectStorage) (int64, error) { d.s = s if err := d.validateHeader(); err != nil { if err == io.EOF { - return -1, ErrEmptyRepository + return -1, ErrEmptyPackfile } return -1, err From 0c61a6a1c7d371d15dea5ba49f9d33b6ab596d24 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Tue, 7 Jun 2016 15:28:23 +0200 Subject: [PATCH 044/143] comment public API (format/packfile) --- formats/packfile/decoder.go | 65 ++++++++++++++++++++----------------- formats/packfile/parse.go | 20 ++++++------ 2 files changed, 46 insertions(+), 39 deletions(-) diff --git a/formats/packfile/decoder.go b/formats/packfile/decoder.go index 0ffd7a736..a33113ebb 100644 --- a/formats/packfile/decoder.go +++ b/formats/packfile/decoder.go @@ -11,32 +11,38 @@ import ( ) // Format specifies if the packfile uses ref-deltas or ofs-deltas. -// Possible values: OFSDeltaFormat or REFDeltaFormat. type Format int +// Possible values of the Format type. +const ( + UnknownFormat Format = 0 + OFSDeltaFormat Format = 1 + REFDeltaFormat Format = 2 +) + var ( // ErrEmptyPackfile is returned by Decode when no data is found in the packfile - ErrEmptyPackfile = newError("empty packfile") + ErrEmptyPackfile = newDecoderError("empty packfile") // ErrUnsupportedVersion is returned by Decode when packfile version is different than VersionSupported. - ErrUnsupportedVersion = newError("unsupported packfile version") + ErrUnsupportedVersion = newDecoderError("unsupported packfile version") // ErrMaxObjectsLimitReached is returned by Decode when the number of objects in the packfile is higher than Decoder.MaxObjectsLimit. - ErrMaxObjectsLimitReached = newError("max. objects limit reached") + ErrMaxObjectsLimitReached = newDecoderError("max. objects limit reached") // ErrMalformedPackfile is returned by Decode when the packfile is corrupt. - ErrMalformedPackfile = newError("malformed pack file, does not start with 'PACK'") + ErrMalformedPackfile = newDecoderError("malformed pack file, does not start with 'PACK'") // ErrInvalidObject is returned by Decode when an invalid object is found in the packfile. - ErrInvalidObject = newError("invalid git object") + ErrInvalidObject = newDecoderError("invalid git object") // ErrPackEntryNotFound is returned by Decode when a reference in the packfile references and unknown object. - ErrPackEntryNotFound = newError("can't find a pack entry") - // ErrZlib is returned by Decode when there was an error unzipping the packfile contents. - ErrZLib = newError("zlib reading error") + ErrPackEntryNotFound = newDecoderError("can't find a pack entry") + // ErrZLib is returned by Decode when there was an error unzipping the packfile contents. + ErrZLib = newDecoderError("zlib reading error") ) const ( - DefaultMaxObjectsLimit = 1 << 20 - VersionSupported = 2 - UnknownFormat Format = 0 - OFSDeltaFormat Format = 1 - REFDeltaFormat Format = 2 + // DefaultMaxObjectsLimit is the maximum amount of objects the decoder will decode before + // returning ErrMaxObjectsLimitReached. + DefaultMaxObjectsLimit = 1 << 20 + // VersionSupported is the packfile version supported by this decoder. + VersionSupported = 2 ) // Decoder reads and decodes packfiles from an input stream. @@ -169,7 +175,7 @@ func (d *Decoder) newObject() (core.Object, error) { case core.CommitObject, core.TreeObject, core.BlobObject, core.TagObject: content, err = readContent(d.r) default: - err = ErrInvalidObject.n("tag %q", typ) + err = ErrInvalidObject.addDetails("tag %q", typ) } if err != nil { return nil, err @@ -178,40 +184,41 @@ func (d *Decoder) newObject() (core.Object, error) { return memory.NewObject(typ, length, content), err } -// Returns an already seen object by its hash, part of Rememberer interface. +// ByHash returns an already seen object by its hash. func (d *Decoder) ByHash(hash core.Hash) (core.Object, error) { return d.s.Get(hash) } -// Returns an already seen object by its offset in the packfile, part of Rememberer interface. +// ByOffset returns an already seen object by its offset in the packfile. func (d *Decoder) ByOffset(offset int64) (core.Object, error) { hash, ok := d.offsets[offset] if !ok { - return nil, ErrPackEntryNotFound.n("offset %d", offset) + return nil, ErrPackEntryNotFound.addDetails("offset %d", offset) } return d.ByHash(hash) } -type ReaderError struct { - reason, additional string +// DecoderError specifies errors returned by Decode. +type DecoderError struct { + reason, details string } -func newError(reason string) *ReaderError { - return &ReaderError{reason: reason} +func newDecoderError(reason string) *DecoderError { + return &DecoderError{reason: reason} } -func (e *ReaderError) Error() string { - if e.additional == "" { +func (e *DecoderError) Error() string { + if e.details == "" { return e.reason } - return fmt.Sprintf("%s: %s", e.reason, e.additional) + return fmt.Sprintf("%s: %s", e.reason, e.details) } -func (e *ReaderError) n(format string, args ...interface{}) *ReaderError { - return &ReaderError{ - reason: e.reason, - additional: fmt.Sprintf(format, args...), +func (e *DecoderError) addDetails(format string, args ...interface{}) *DecoderError { + return &DecoderError{ + reason: e.reason, + details: fmt.Sprintf(format, args...), } } diff --git a/formats/packfile/parse.go b/formats/packfile/parse.go index 581a2b5b1..70f514e6f 100644 --- a/formats/packfile/parse.go +++ b/formats/packfile/parse.go @@ -12,17 +12,17 @@ import ( const fromTheBeginning = 0 -// Rememberer can be asked to return already seen objects, either by -// hash or by offset in the packfile. It is used to resolve deltified -// objects in the packfile. -type Rememberer interface { +// AlreadySeener remembers already seen objects by hash or offset +// and can be asked to retrieve them. It is used to resolve +// REF-delta and OFS-delta references in the packfile. +type AlreadySeener interface { ByHash(hash core.Hash) (core.Object, error) ByOffset(offset int64) (core.Object, error) } // ObjectAt returns the object at the given offset in a packfile. func ObjectAt(packfile io.ReadSeeker, - offset int64, remember Rememberer) (core.Object, error) { + offset int64, remember AlreadySeener) (core.Object, error) { _, err := packfile.Seek(offset, fromTheBeginning) if err != nil { @@ -112,16 +112,16 @@ func readContent(packfile io.Reader) ([]byte, error) { return buf.Bytes(), err } -func readContentREFDelta(packfile io.Reader, remember Rememberer) (content []byte, +func readContentREFDelta(packfile io.Reader, remember AlreadySeener) (content []byte, typ core.ObjectType, err error) { var ref core.Hash - if _, err := io.ReadFull(packfile, ref[:]); err != nil { + if _, err = io.ReadFull(packfile, ref[:]); err != nil { return nil, core.ObjectType(0), err } diff := bytes.NewBuffer(nil) - if err := inflate(packfile, diff); err != nil { + if err = inflate(packfile, diff); err != nil { return nil, core.ObjectType(0), err } @@ -158,7 +158,7 @@ func inflate(r io.Reader, w io.Writer) (err error) { } func readContentOFSDelta(packfile io.Reader, - objectStart int64, remember Rememberer) (content []byte, + objectStart int64, remember AlreadySeener) (content []byte, typ core.ObjectType, err error) { offset, err := readNegativeOffset(packfile) @@ -167,7 +167,7 @@ func readContentOFSDelta(packfile io.Reader, } diff := bytes.NewBuffer(nil) - if err := inflate(packfile, diff); err != nil { + if err = inflate(packfile, diff); err != nil { return nil, core.ObjectType(0), err } From 3f1ce54e4393bcd09b4575c7c4ce0b90fc196f86 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Tue, 7 Jun 2016 17:24:31 +0200 Subject: [PATCH 045/143] remve duplicated code in packfile decoder test --- formats/packfile/decoder_test.go | 24 +++++++----------------- 1 file changed, 7 insertions(+), 17 deletions(-) diff --git a/formats/packfile/decoder_test.go b/formats/packfile/decoder_test.go index 64cb6388a..0226bea21 100644 --- a/formats/packfile/decoder_test.go +++ b/formats/packfile/decoder_test.go @@ -139,12 +139,12 @@ func (s *ReaderSuite) BenchmarkGit(c *C) { } } -func (s *ReaderSuite) _TestMemoryOFS(c *C) { +func (s *ReaderSuite) _testMemory(c *C, format Format) { var b, a runtime.MemStats start := time.Now() runtime.ReadMemStats(&b) - p := readFromFile(c, "/tmp/symfony.ofs-delta", OFSDeltaFormat) + p := readFromFile(c, "/tmp/symfony.ofs-delta", format) runtime.ReadMemStats(&a) fmt.Println("OFS--->") @@ -157,22 +157,12 @@ func (s *ReaderSuite) _TestMemoryOFS(c *C) { fmt.Println("time", time.Since(start)) } -func (s *ReaderSuite) _TestMemoryREF(c *C) { - var b, a runtime.MemStats - - start := time.Now() - runtime.ReadMemStats(&b) - p := readFromFile(c, "/tmp/symonfy", REFDeltaFormat) - runtime.ReadMemStats(&a) - - fmt.Println("REF--->") - fmt.Println("Alloc", a.Alloc-b.Alloc, humanize.Bytes(a.Alloc-b.Alloc)) - fmt.Println("TotalAlloc", a.TotalAlloc-b.TotalAlloc, humanize.Bytes(a.TotalAlloc-b.TotalAlloc)) - fmt.Println("HeapAlloc", a.HeapAlloc-b.HeapAlloc, humanize.Bytes(a.HeapAlloc-b.HeapAlloc)) - fmt.Println("HeapSys", a.HeapSys, humanize.Bytes(a.HeapSys-b.HeapSys)) +func (s *ReaderSuite) _TestMemoryOFS(c *C) { + s._testMemory(c, OFSDeltaFormat) +} - fmt.Println("objects", len(p.Objects)) - fmt.Println("time", time.Since(start)) +func (s *ReaderSuite) _TestMemoryREF(c *C) { + s._testMemory(c, REFDeltaFormat) } func readFromFile(c *C, file string, f Format) *memory.ObjectStorage { From e1ad78b7033bc806bd1a11f99a1d8801fc6ea27c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Tue, 7 Jun 2016 18:00:06 +0200 Subject: [PATCH 046/143] move tracking_reader into an internal package and clean it --- formats/packfile/common.go | 43 ----------------- formats/packfile/decoder.go | 29 ++++++------ .../internal/readcounter/readcounter.go | 47 +++++++++++++++++++ 3 files changed, 62 insertions(+), 57 deletions(-) delete mode 100644 formats/packfile/common.go create mode 100644 formats/packfile/internal/readcounter/readcounter.go diff --git a/formats/packfile/common.go b/formats/packfile/common.go deleted file mode 100644 index 57bc0b983..000000000 --- a/formats/packfile/common.go +++ /dev/null @@ -1,43 +0,0 @@ -package packfile - -import ( - "bufio" - "fmt" - "io" -) - -type trackingReader struct { - r io.Reader - position int64 -} - -func NewTrackingReader(r io.Reader) *trackingReader { - return &trackingReader{ - r: bufio.NewReader(r), - } -} - -func (t *trackingReader) Read(p []byte) (n int, err error) { - n, err = t.r.Read(p) - if err != nil { - return 0, err - } - - t.position += int64(n) - return n, err -} - -func (t *trackingReader) ReadByte() (c byte, err error) { - var p [1]byte - n, err := t.r.Read(p[:]) - if err != nil { - return 0, err - } - - if n > 1 { - return 0, fmt.Errorf("read %d bytes, should have read just 1", n) - } - - t.position++ - return p[0], nil -} diff --git a/formats/packfile/decoder.go b/formats/packfile/decoder.go index a33113ebb..c5f5a57b6 100644 --- a/formats/packfile/decoder.go +++ b/formats/packfile/decoder.go @@ -7,6 +7,7 @@ import ( "io" "gopkg.in/src-d/go-git.v3/core" + "gopkg.in/src-d/go-git.v3/formats/packfile/internal/readcounter" "gopkg.in/src-d/go-git.v3/storage/memory" ) @@ -59,9 +60,9 @@ type Decoder struct { // https://github.com/git/git/blob/8d530c4d64ffcc853889f7b385f554d53db375ed/Documentation/technical/protocol-capabilities.txt#L154 Format Format - r *trackingReader - s core.ObjectStorage - offsets map[int64]core.Hash + readCounter *readcounter.ReadCounter + s core.ObjectStorage + offsets map[int64]core.Hash } // NewDecoder returns a new Decoder that reads from r. @@ -69,8 +70,8 @@ func NewDecoder(r io.Reader) *Decoder { return &Decoder{ MaxObjectsLimit: DefaultMaxObjectsLimit, - r: NewTrackingReader(r), - offsets: make(map[int64]core.Hash, 0), + readCounter: readcounter.New(r), + offsets: make(map[int64]core.Hash, 0), } } @@ -103,12 +104,12 @@ func (d *Decoder) Decode(s core.ObjectStorage) (int64, error) { return -1, ErrMaxObjectsLimitReached } - return d.r.position, d.readObjects(count) + return d.readCounter.Count(), d.readObjects(count) } func (d *Decoder) validateHeader() error { var header = make([]byte, 4) - if _, err := io.ReadFull(d.r, header); err != nil { + if _, err := io.ReadFull(d.readCounter, header); err != nil { return err } @@ -121,7 +122,7 @@ func (d *Decoder) validateHeader() error { func (d *Decoder) readInt32() (uint32, error) { var value uint32 - if err := binary.Read(d.r, binary.BigEndian, &value); err != nil { + if err := binary.Read(d.readCounter, binary.BigEndian, &value); err != nil { return 0, err } @@ -134,7 +135,7 @@ func (d *Decoder) readObjects(count uint32) error { // That's 1 sec for ~2450 objects, ~4.20 MB, or ~250 ms per MB, // of which 12-20 % is _not_ zlib inflation (ie. is our code). for i := 0; i < int(count); i++ { - start := d.r.position + start := d.readCounter.Count() obj, err := d.newObject() if err != nil && err != io.EOF { return err @@ -158,22 +159,22 @@ func (d *Decoder) newObject() (core.Object, error) { var length int64 var content []byte - objectStart := d.r.position + objectStart := d.readCounter.Count() - typ, length, err := readTypeAndLength(d.r) + typ, length, err := readTypeAndLength(d.readCounter) if err != nil { return nil, err } switch typ { case core.REFDeltaObject: - content, typ, err = readContentREFDelta(d.r, d) + content, typ, err = readContentREFDelta(d.readCounter, d) length = int64(len(content)) case core.OFSDeltaObject: - content, typ, err = readContentOFSDelta(d.r, objectStart, d) + content, typ, err = readContentOFSDelta(d.readCounter, objectStart, d) length = int64(len(content)) case core.CommitObject, core.TreeObject, core.BlobObject, core.TagObject: - content, err = readContent(d.r) + content, err = readContent(d.readCounter) default: err = ErrInvalidObject.addDetails("tag %q", typ) } diff --git a/formats/packfile/internal/readcounter/readcounter.go b/formats/packfile/internal/readcounter/readcounter.go new file mode 100644 index 000000000..17b28a9ec --- /dev/null +++ b/formats/packfile/internal/readcounter/readcounter.go @@ -0,0 +1,47 @@ +package readcounter + +import ( + "fmt" + "io" +) + +// Tracker is a reader that keeps track of the number of bytes readed. +type ReadCounter struct { + io.Reader + count int64 +} + +// NewTracker returns a new tracker for the given stream r. +func New(r io.Reader) *ReadCounter { + return &ReadCounter{Reader: r, count: 0} +} + +func (t *ReadCounter) Read(p []byte) (n int, err error) { + n, err = t.Reader.Read(p) + if err != nil { + return 0, err + } + + t.count += int64(n) + return n, err +} + +func (t *ReadCounter) ReadByte() (c byte, err error) { + var p [1]byte + n, err := t.Reader.Read(p[:]) + if err != nil { + return 0, err + } + + if n > 1 { + return 0, fmt.Errorf("read %d bytes, should have read just 1", n) + } + + t.count++ + return p[0], nil +} + +// Position returns the number of bytes read so far. +func (t *ReadCounter) Count() int64 { + return t.count +} From 9c8a8bb87976884212232f54f5e7e878a9c417c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Wed, 8 Jun 2016 11:15:55 +0200 Subject: [PATCH 047/143] use iota for packfile format --- formats/packfile/decoder.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/formats/packfile/decoder.go b/formats/packfile/decoder.go index c5f5a57b6..29bafb9fd 100644 --- a/formats/packfile/decoder.go +++ b/formats/packfile/decoder.go @@ -16,9 +16,9 @@ type Format int // Possible values of the Format type. const ( - UnknownFormat Format = 0 - OFSDeltaFormat Format = 1 - REFDeltaFormat Format = 2 + UnknownFormat Format = iota + OFSDeltaFormat + REFDeltaFormat ) var ( From 0d5ec7334f10a41cbb3406d033c0f4659ff78820 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Wed, 8 Jun 2016 11:18:35 +0200 Subject: [PATCH 048/143] rename packfile parse.go to packfile object_at.go --- formats/packfile/{parse.go => object_at.go} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename formats/packfile/{parse.go => object_at.go} (100%) diff --git a/formats/packfile/parse.go b/formats/packfile/object_at.go similarity index 100% rename from formats/packfile/parse.go rename to formats/packfile/object_at.go From f456c3d1705c7e8cd08fbff0c016e677500fac86 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Wed, 8 Jun 2016 14:38:19 +0200 Subject: [PATCH 049/143] clean packfile deltas --- formats/packfile/delta.go | 35 +++++++++++++++++++++-------------- 1 file changed, 21 insertions(+), 14 deletions(-) diff --git a/formats/packfile/delta.go b/formats/packfile/delta.go index aa3a04a45..256d71cd9 100644 --- a/formats/packfile/delta.go +++ b/formats/packfile/delta.go @@ -1,26 +1,15 @@ package packfile +// See https://github.com/git/git/blob/49fa3dc76179e04b0833542fa52d0f287a4955ac/delta.h +// for details about the delta format. const deltaSizeMin = 4 -func deltaHeaderSize(b []byte) (uint, []byte) { - var size, j uint - var cmd byte - for { - cmd = b[j] - size |= (uint(cmd) & 0x7f) << (j * 7) - j++ - if uint(cmd)&0xb80 == 0 || j == uint(len(b)) { - break - } - } - return size, b[j:] -} - // PatchDelta returns the result of applying the modification deltas in delta to src. func PatchDelta(src, delta []byte) []byte { if len(delta) < deltaSizeMin { return nil } + size, delta := deltaHeaderSize(delta) if size != uint(len(src)) { return nil @@ -92,3 +81,21 @@ func PatchDelta(src, delta []byte) []byte { } return dest } + +// This must be called twice on the delta data buffer, first to get the +// expected source buffer size, and again to get the target buffer size. +// Both are encoded using LEB128. +func deltaHeaderSize(b []byte) (uint, []byte) { + var size, j uint + var cmd byte + for { + cmd = b[j] + size |= (uint(cmd) & 0x7f) << (j * 7) + j++ + if uint(cmd)&0xb80 == 0 || j == uint(len(b)) { + break + } + } + + return size, b[j:] +} From 7af3fbd262b8829366de2ce75d9d030743275a1c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Wed, 8 Jun 2016 14:39:33 +0200 Subject: [PATCH 050/143] fix delta header size bug --- formats/packfile/delta.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/formats/packfile/delta.go b/formats/packfile/delta.go index 256d71cd9..c3d31aef4 100644 --- a/formats/packfile/delta.go +++ b/formats/packfile/delta.go @@ -92,7 +92,7 @@ func deltaHeaderSize(b []byte) (uint, []byte) { cmd = b[j] size |= (uint(cmd) & 0x7f) << (j * 7) j++ - if uint(cmd)&0xb80 == 0 || j == uint(len(b)) { + if uint(cmd)&0x80 == 0 || j == uint(len(b)) { break } } From 523f46d57b3bec43ce14c18be2e5693b390b1f7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Wed, 8 Jun 2016 14:51:23 +0200 Subject: [PATCH 051/143] improve delta documentation --- formats/packfile/delta.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/formats/packfile/delta.go b/formats/packfile/delta.go index c3d31aef4..9de5b0c96 100644 --- a/formats/packfile/delta.go +++ b/formats/packfile/delta.go @@ -1,7 +1,9 @@ package packfile // See https://github.com/git/git/blob/49fa3dc76179e04b0833542fa52d0f287a4955ac/delta.h +// and https://github.com/tarruda/node-git-core/blob/master/src/js/delta.js // for details about the delta format. + const deltaSizeMin = 4 // PatchDelta returns the result of applying the modification deltas in delta to src. From 7c904c8bfe946979e269af519afe325156a80b14 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Wed, 8 Jun 2016 15:08:42 +0200 Subject: [PATCH 052/143] clean packfile deltas --- formats/packfile/delta.go | 31 ++++++++++++++++++++----------- 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/formats/packfile/delta.go b/formats/packfile/delta.go index 9de5b0c96..0a2f35bc1 100644 --- a/formats/packfile/delta.go +++ b/formats/packfile/delta.go @@ -12,11 +12,11 @@ func PatchDelta(src, delta []byte) []byte { return nil } - size, delta := deltaHeaderSize(delta) + size, delta := decodeLEB128(delta) if size != uint(len(src)) { return nil } - size, delta = deltaHeaderSize(delta) + size, delta = decodeLEB128(delta) origSize := size var dest []byte @@ -84,20 +84,29 @@ func PatchDelta(src, delta []byte) []byte { return dest } +const ( + payload = 0x7f // 0111 1111 + continuation = 0x80 // 1000 0000 +) + +// Decodes a number encoded as an unsigned LEB128 at the start of some +// binary data and returns the decoded number and the rest of the +// stream. +// // This must be called twice on the delta data buffer, first to get the // expected source buffer size, and again to get the target buffer size. -// Both are encoded using LEB128. -func deltaHeaderSize(b []byte) (uint, []byte) { - var size, j uint - var cmd byte +func decodeLEB128(input []byte) (uint, []byte) { + var result, bytesDecoded uint + var b byte for { - cmd = b[j] - size |= (uint(cmd) & 0x7f) << (j * 7) - j++ - if uint(cmd)&0x80 == 0 || j == uint(len(b)) { + b = input[bytesDecoded] + result |= (uint(b) & payload) << (bytesDecoded * 7) // concats 7 bits chunks + bytesDecoded++ + + if uint(b)&continuation == 0 || bytesDecoded == uint(len(input)) { break } } - return size, b[j:] + return result, input[bytesDecoded:] } From 09eae1d7545a39e2307b110a908e622c3995f065 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Wed, 8 Jun 2016 19:25:46 +0200 Subject: [PATCH 053/143] clean packfiles deltas --- formats/packfile/delta.go | 148 +++++++++++++++++++++++--------------- 1 file changed, 92 insertions(+), 56 deletions(-) diff --git a/formats/packfile/delta.go b/formats/packfile/delta.go index 0a2f35bc1..61af762e1 100644 --- a/formats/packfile/delta.go +++ b/formats/packfile/delta.go @@ -1,6 +1,7 @@ package packfile // See https://github.com/git/git/blob/49fa3dc76179e04b0833542fa52d0f287a4955ac/delta.h +// https://github.com/git/git/blob/c2c5f6b1e479f2c38e0e01345350620944e3527f/patch-delta.c, // and https://github.com/tarruda/node-git-core/blob/master/src/js/delta.js // for details about the delta format. @@ -12,83 +13,49 @@ func PatchDelta(src, delta []byte) []byte { return nil } - size, delta := decodeLEB128(delta) - if size != uint(len(src)) { + srcSize, delta := decodeLEB128(delta) + if srcSize != uint(len(src)) { return nil } - size, delta = decodeLEB128(delta) - origSize := size - var dest []byte + targetSize, delta := decodeLEB128(delta) + remainingTargetSize := targetSize - // var offset uint + var dest []byte var cmd byte for { cmd = delta[0] delta = delta[1:] - if (cmd & 0x80) != 0 { - var cpOff, cpSize uint - if (cmd & 0x01) != 0 { - cpOff = uint(delta[0]) - delta = delta[1:] - } - if (cmd & 0x02) != 0 { - cpOff |= uint(delta[0]) << 8 - delta = delta[1:] - } - if (cmd & 0x04) != 0 { - cpOff |= uint(delta[0]) << 16 - delta = delta[1:] - } - if (cmd & 0x08) != 0 { - cpOff |= uint(delta[0]) << 24 - delta = delta[1:] - } - - if (cmd & 0x10) != 0 { - cpSize = uint(delta[0]) - delta = delta[1:] - } - if (cmd & 0x20) != 0 { - cpSize |= uint(delta[0]) << 8 - delta = delta[1:] - } - if (cmd & 0x40) != 0 { - cpSize |= uint(delta[0]) << 16 - delta = delta[1:] - } - if cpSize == 0 { - cpSize = 0x10000 - } - if cpOff+cpSize < cpOff || - cpOff+cpSize > uint(len(src)) || - cpSize > origSize { + if isCopyFromSrc(cmd) { + var offset, size uint + offset, delta = decodeOffset(cmd, delta) + size, delta = decodeSize(cmd, delta) + if invalidSize(size, targetSize) || + invalidOffsetSize(offset, size, srcSize) { break } - dest = append(dest, src[cpOff:cpOff+cpSize]...) - size -= cpSize - } else if cmd != 0 { - if uint(cmd) > origSize { + dest = append(dest, src[offset:offset+size]...) + remainingTargetSize -= size + } else if isCopyFromDelta(cmd) { + size := uint(cmd) // cmd is the size itself + if invalidSize(size, targetSize) { break } - dest = append(dest, delta[0:uint(cmd)]...) - size -= uint(cmd) - delta = delta[uint(cmd):] + dest = append(dest, delta[0:size]...) + remainingTargetSize -= size + delta = delta[size:] } else { return nil } - if size <= 0 { + + if remainingTargetSize <= 0 { break } } + return dest } -const ( - payload = 0x7f // 0111 1111 - continuation = 0x80 // 1000 0000 -) - // Decodes a number encoded as an unsigned LEB128 at the start of some // binary data and returns the decoded number and the rest of the // stream. @@ -110,3 +77,72 @@ func decodeLEB128(input []byte) (uint, []byte) { return result, input[bytesDecoded:] } + +const ( + payload = 0x7f // 0111 1111 + continuation = 0x80 // 1000 0000 +) + +func isCopyFromSrc(cmd byte) bool { + return (cmd & 0x80) != 0 +} + +func isCopyFromDelta(cmd byte) bool { + return (cmd&0x80) == 0 && cmd != 0 +} + +func decodeOffset(cmd byte, delta []byte) (uint, []byte) { + var offset uint + if (cmd & 0x01) != 0 { + offset = uint(delta[0]) + delta = delta[1:] + } + if (cmd & 0x02) != 0 { + offset |= uint(delta[0]) << 8 + delta = delta[1:] + } + if (cmd & 0x04) != 0 { + offset |= uint(delta[0]) << 16 + delta = delta[1:] + } + if (cmd & 0x08) != 0 { + offset |= uint(delta[0]) << 24 + delta = delta[1:] + } + + return offset, delta +} + +func decodeSize(cmd byte, delta []byte) (uint, []byte) { + var size uint + if (cmd & 0x10) != 0 { + size = uint(delta[0]) + delta = delta[1:] + } + if (cmd & 0x20) != 0 { + size |= uint(delta[0]) << 8 + delta = delta[1:] + } + if (cmd & 0x40) != 0 { + size |= uint(delta[0]) << 16 + delta = delta[1:] + } + if size == 0 { + size = 0x10000 + } + + return size, delta +} + +func invalidSize(size, targetSize uint) bool { + return size > targetSize +} + +func invalidOffsetSize(offset, size, srcSize uint) bool { + return sumOverflows(offset, size) || + offset+size > srcSize +} + +func sumOverflows(a, b uint) bool { + return a+b < a +} From e6afb639e2af30dcd2ad45b409f8e58b79f55b13 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Thu, 9 Jun 2016 16:57:32 +0200 Subject: [PATCH 054/143] clean repository.go --- repository.go | 84 +++++++++++++++++++++++++++------------------------ 1 file changed, 44 insertions(+), 40 deletions(-) diff --git a/repository.go b/repository.go index a8775d163..cd2c736f1 100644 --- a/repository.go +++ b/repository.go @@ -69,16 +69,54 @@ func (r *Repository) Pull(remoteName, branch string) (err error) { return fmt.Errorf("unable to find remote %q", remoteName) } - url := string(remote.Endpoint) - if isDirRepo(url) { - r.Storage, err = storeFromDir(url) - if err != nil { + return r.setStorage(remote, branch) +} + +func (r *Repository) setStorage(remote *Remote, branch string) error { + if isLocalRemote(remote.Endpoint) { + return r.useLocalStorage(remote.Endpoint) + } + + return r.fillStorageUsingFetch(remote, branch) +} + +const dirScheme = "dir://" + +func isLocalRemote(endpoint common.Endpoint) bool { + if strings.HasPrefix(string(endpoint), dirScheme) { + return true + } + + return false +} + +func (r *Repository) useLocalStorage(endpoint common.Endpoint) error { + path := strings.TrimPrefix(string(endpoint), dirScheme) + dir, err := gitdir.New(path) + if err != nil { + return err + } + + packfile, err := dir.Packfile() + if err != nil { + return err + } + + idxfile, err := dir.Idxfile() + if err != nil { + // if there is no idx file, just keep on, we will manage to create one + // on the fly. + if err != gitdir.ErrIdxNotFound { return err } - - return nil } + r.Storage, err = seekable.New(packfile, idxfile) + + return err +} + +func (r *Repository) fillStorageUsingFetch(remote *Remote, branch string) (err error) { if err := remote.Connect(); err != nil { return err } @@ -111,40 +149,6 @@ func (r *Repository) Pull(remoteName, branch string) (err error) { return nil } -const dirScheme = "dir://" - -func isDirRepo(url string) bool { - if strings.HasPrefix(url, dirScheme) { - return true - } - - return false -} - -func storeFromDir(url string) (*seekable.ObjectStorage, error) { - path := strings.TrimPrefix(url, dirScheme) - dir, err := gitdir.New(path) - if err != nil { - return nil, err - } - - packfile, err := dir.Packfile() - if err != nil { - return nil, err - } - - idxfile, err := dir.Idxfile() - if err != nil { - // if there is no idx file, just keep on, we will manage to create one - // on the fly. - if err != gitdir.ErrIdxNotFound { - return nil, err - } - } - - return seekable.New(packfile, idxfile) -} - // PullDefault like Pull but retrieve the default branch from the default remote func (r *Repository) PullDefault() (err error) { return r.Pull(DefaultRemoteName, "") From cec07c3660833404bfa63daba16ba8085ea71820 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Fri, 10 Jun 2016 09:29:30 +0200 Subject: [PATCH 055/143] Remove go 1.5 from Travis CI Because go 1.5 does not suport internal packages. --- .travis.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 388b67652..ee769d25b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,7 +2,6 @@ language: go go: - 1.4 - - 1.5 - 1.6 - tip From 53e7c811a075b4f84cdccfc02336aee55c4b7ff6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Fri, 10 Jun 2016 09:46:38 +0200 Subject: [PATCH 056/143] change local repo scheme to local:// --- README.md | 6 +++--- clients/common.go | 2 +- clients/common/common.go | 2 +- clients/common_test.go | 2 +- repository.go | 2 +- repository_test.go | 2 +- 6 files changed, 8 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 86dba6e36..ca5f550b4 100644 --- a/README.md +++ b/README.md @@ -87,9 +87,9 @@ Date: 2015-12-11 17:57:10 +0100 +0100 ... ``` -Bare and non-bare local repositories are also supported using the `dir://` +Bare and non-bare local repositories are also supported using the `local://` scheme and the path of the desired `.git` directory. To be able to use a git -repository as a `dir://` remote, you must first prepare it by running `git gc` +repository as a `local://` remote, you must first prepare it by running `git gc` on it. When using this kind of remote, git objects are not cached in memory and all @@ -98,7 +98,7 @@ having all the repository contents in memory, but uses very little memory. ```go // pushd /tmp ; git clone https://github.com/src-d/go-git ; popd -r, err := git.NewRepository("dir:///tmp/go-git/.git", nil) +r, err := git.NewRepository("local:///tmp/go-git/.git", nil) if err != nil { panic(err) } diff --git a/clients/common.go b/clients/common.go index 012b5f439..1a7489c59 100644 --- a/clients/common.go +++ b/clients/common.go @@ -26,7 +26,7 @@ var DefaultProtocols = map[string]common.GitUploadPackService{ "http": http.NewGitUploadPackService(), "https": http.NewGitUploadPackService(), "ssh": ssh.NewGitUploadPackService(), - "dir": file.NewGitUploadPackService(), + "local": file.NewGitUploadPackService(), } // KnownProtocols holds the current set of known protocols. Initially diff --git a/clients/common/common.go b/clients/common/common.go index 0b2253ef9..c38578414 100644 --- a/clients/common/common.go +++ b/clients/common/common.go @@ -37,7 +37,7 @@ type AuthMethod interface { type Endpoint string func NewEndpoint(url string) (Endpoint, error) { - if strings.HasPrefix(url, "dir://") { + if strings.HasPrefix(url, "local://") { return Endpoint(url), nil } diff --git a/clients/common_test.go b/clients/common_test.go index 2011bb5a8..30b9d2a28 100644 --- a/clients/common_test.go +++ b/clients/common_test.go @@ -44,7 +44,7 @@ func (s *SuiteCommon) TestNewGitUploadPackService(c *C) { {"http://github.com/src-d/go-git", false, "*http.GitUploadPackService"}, {"https://github.com/src-d/go-git", false, "*http.GitUploadPackService"}, {"ssh://github.com/src-d/go-git", false, "*ssh.GitUploadPackService"}, - {"dir://" + s.dirFixturePath, false, "*file.GitUploadPackService"}, + {"local://" + s.dirFixturePath, false, "*file.GitUploadPackService"}, } for i, t := range tests { diff --git a/repository.go b/repository.go index cd2c736f1..c3a1a40e1 100644 --- a/repository.go +++ b/repository.go @@ -80,7 +80,7 @@ func (r *Repository) setStorage(remote *Remote, branch string) error { return r.fillStorageUsingFetch(remote, branch) } -const dirScheme = "dir://" +const dirScheme = "local://" func isLocalRemote(endpoint common.Endpoint) bool { if strings.HasPrefix(string(endpoint), dirScheme) { diff --git a/repository_test.go b/repository_test.go index ab995a3c8..ad04d6bef 100644 --- a/repository_test.go +++ b/repository_test.go @@ -69,7 +69,7 @@ func (s *SuiteRepository) TestNewRepositoryWithAuth(c *C) { func (s *SuiteRepository) TestNewSeekableRepository(c *C) { for name, path := range s.dirFixturePaths { comment := Commentf("dir fixture %q → %q\n", name, path) - repo, err := NewRepository("dir://"+path, nil) + repo, err := NewRepository("local://"+path, nil) c.Assert(err, IsNil, comment) err = repo.PullDefault() From 62e9e621905817b60fffcfae11a1ee57b57d2306 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Mon, 13 Jun 2016 10:39:42 +0200 Subject: [PATCH 057/143] change "local://" to "file://" as the local scheme --- README.md | 6 +++--- clients/common.go | 2 +- clients/common/common.go | 2 +- clients/common_test.go | 2 +- repository.go | 6 +++--- repository_test.go | 2 +- 6 files changed, 10 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index ca5f550b4..c06e16b8d 100644 --- a/README.md +++ b/README.md @@ -87,9 +87,9 @@ Date: 2015-12-11 17:57:10 +0100 +0100 ... ``` -Bare and non-bare local repositories are also supported using the `local://` +Bare and non-bare local repositories are also supported using the `file://` scheme and the path of the desired `.git` directory. To be able to use a git -repository as a `local://` remote, you must first prepare it by running `git gc` +repository as a `file://` remote, you must first prepare it by running `git gc` on it. When using this kind of remote, git objects are not cached in memory and all @@ -98,7 +98,7 @@ having all the repository contents in memory, but uses very little memory. ```go // pushd /tmp ; git clone https://github.com/src-d/go-git ; popd -r, err := git.NewRepository("local:///tmp/go-git/.git", nil) +r, err := git.NewRepository("file:///tmp/go-git/.git", nil) if err != nil { panic(err) } diff --git a/clients/common.go b/clients/common.go index 1a7489c59..1e3e60d13 100644 --- a/clients/common.go +++ b/clients/common.go @@ -26,7 +26,7 @@ var DefaultProtocols = map[string]common.GitUploadPackService{ "http": http.NewGitUploadPackService(), "https": http.NewGitUploadPackService(), "ssh": ssh.NewGitUploadPackService(), - "local": file.NewGitUploadPackService(), + "file": file.NewGitUploadPackService(), } // KnownProtocols holds the current set of known protocols. Initially diff --git a/clients/common/common.go b/clients/common/common.go index c38578414..4aa2be4ea 100644 --- a/clients/common/common.go +++ b/clients/common/common.go @@ -37,7 +37,7 @@ type AuthMethod interface { type Endpoint string func NewEndpoint(url string) (Endpoint, error) { - if strings.HasPrefix(url, "local://") { + if strings.HasPrefix(url, "file://") { return Endpoint(url), nil } diff --git a/clients/common_test.go b/clients/common_test.go index 30b9d2a28..b69aa5dcc 100644 --- a/clients/common_test.go +++ b/clients/common_test.go @@ -44,7 +44,7 @@ func (s *SuiteCommon) TestNewGitUploadPackService(c *C) { {"http://github.com/src-d/go-git", false, "*http.GitUploadPackService"}, {"https://github.com/src-d/go-git", false, "*http.GitUploadPackService"}, {"ssh://github.com/src-d/go-git", false, "*ssh.GitUploadPackService"}, - {"local://" + s.dirFixturePath, false, "*file.GitUploadPackService"}, + {"file://" + s.dirFixturePath, false, "*file.GitUploadPackService"}, } for i, t := range tests { diff --git a/repository.go b/repository.go index c3a1a40e1..7fd9546d4 100644 --- a/repository.go +++ b/repository.go @@ -80,10 +80,10 @@ func (r *Repository) setStorage(remote *Remote, branch string) error { return r.fillStorageUsingFetch(remote, branch) } -const dirScheme = "local://" +const fileScheme = "file://" func isLocalRemote(endpoint common.Endpoint) bool { - if strings.HasPrefix(string(endpoint), dirScheme) { + if strings.HasPrefix(string(endpoint), fileScheme) { return true } @@ -91,7 +91,7 @@ func isLocalRemote(endpoint common.Endpoint) bool { } func (r *Repository) useLocalStorage(endpoint common.Endpoint) error { - path := strings.TrimPrefix(string(endpoint), dirScheme) + path := strings.TrimPrefix(string(endpoint), fileScheme) dir, err := gitdir.New(path) if err != nil { return err diff --git a/repository_test.go b/repository_test.go index ad04d6bef..b3663938f 100644 --- a/repository_test.go +++ b/repository_test.go @@ -69,7 +69,7 @@ func (s *SuiteRepository) TestNewRepositoryWithAuth(c *C) { func (s *SuiteRepository) TestNewSeekableRepository(c *C) { for name, path := range s.dirFixturePaths { comment := Commentf("dir fixture %q → %q\n", name, path) - repo, err := NewRepository("local://"+path, nil) + repo, err := NewRepository("file://"+path, nil) c.Assert(err, IsNil, comment) err = repo.PullDefault() From d0f625e143e6afffb4f70adb67a7ef68366805ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Mon, 13 Jun 2016 10:42:43 +0200 Subject: [PATCH 058/143] fix broken indentation --- blame.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/blame.go b/blame.go index c67987c7a..8fdef1674 100644 --- a/blame.go +++ b/blame.go @@ -3,8 +3,8 @@ package git import ( "bytes" "errors" - "strconv" "fmt" + "strconv" "strings" "unicode/utf8" @@ -14,7 +14,7 @@ import ( type Blame struct { Path string - Rev core.Hash + Rev core.Hash Lines []*line } @@ -65,7 +65,7 @@ type Blame struct { func (c *Commit) Blame(path string) (*Blame, error) { b := new(blame) b.fRev = c - b.path = path + b.path = path // get all the file revisions if err := b.fillRevs(); err != nil { From 11ca9887df957e2547112d3ad667f6beda2ddf8c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Mon, 13 Jun 2016 16:31:07 +0200 Subject: [PATCH 059/143] shortens names of variables in short scopes --- blame_test.go | 46 +++++------ clients/common.go | 4 +- clients/common_test.go | 8 +- clients/file/git_upload_pack.go | 26 +++--- clients/file/git_upload_pack_test.go | 8 +- clients/http/common.go | 2 +- clients/http/common_test.go | 2 +- commit_test.go | 4 +- common_test.go | 26 +++--- core/errors.go | 2 +- diff/diff_ext_test.go | 18 ++-- file_test.go | 10 +-- formats/gitdir/dir.go | 46 +++++------ formats/gitdir/dir_test.go | 62 +++++++------- formats/gitdir/refs.go | 44 +++++----- formats/idxfile/decoder.go | 34 ++++---- formats/idxfile/decoder_test.go | 8 +- formats/idxfile/encoder.go | 47 ++++++----- formats/idxfile/encoder_test.go | 30 +++---- formats/packfile/decoder.go | 34 ++++---- formats/packfile/decoder_test.go | 44 +++++----- formats/packfile/delta.go | 2 +- formats/pktline/decoder.go | 2 +- formats/pktline/encoder.go | 2 +- references_test.go | 10 +-- repository_test.go | 4 +- storage/seekable/internal/index/index_test.go | 4 +- storage/seekable/store_test.go | 82 +++++++++---------- tag_test.go | 54 ++++++------ tree_test.go | 8 +- tree_walker_test.go | 2 +- utils/tgz/tgz_test.go | 4 +- 32 files changed, 340 insertions(+), 339 deletions(-) diff --git a/blame_test.go b/blame_test.go index 58a783d60..685f9dd0e 100644 --- a/blame_test.go +++ b/blame_test.go @@ -19,24 +19,24 @@ var _ = Suite(&BlameCommon{}) func (s *BlameCommon) SetUpSuite(c *C) { s.repos = make(map[string]*Repository, 0) for _, fixRepo := range fixtureRepos { - repo := NewPlainRepository() - repo.URL = fixRepo.url + r := NewPlainRepository() + r.URL = fixRepo.url - d, err := os.Open(fixRepo.packfile) + f, err := os.Open(fixRepo.packfile) c.Assert(err, IsNil) - decoder := packfile.NewDecoder(d) + d := packfile.NewDecoder(f) // TODO: how to know the format of a pack file ahead of time? // Some info at: // https://codewords.recurse.com/issues/three/unpacking-git-packfiles - decoder.Format = packfile.OFSDeltaFormat + d.Format = packfile.OFSDeltaFormat - _, err = decoder.Decode(repo.Storage) + _, err = d.Decode(r.Storage) c.Assert(err, IsNil) - c.Assert(d.Close(), IsNil) + c.Assert(f.Close(), IsNil) - s.repos[fixRepo.url] = repo + s.repos[fixRepo.url] = r } } @@ -48,22 +48,22 @@ type blameTest struct { } func (s *BlameCommon) mockBlame(t blameTest, c *C) (blame *Blame) { - repo, ok := s.repos[t.repo] + r, ok := s.repos[t.repo] c.Assert(ok, Equals, true) - commit, err := repo.Commit(core.NewHash(t.rev)) - c.Assert(err, IsNil, Commentf("%v: repo=%s, rev=%s", err, repo, t.rev)) + commit, err := r.Commit(core.NewHash(t.rev)) + c.Assert(err, IsNil, Commentf("%v: repo=%s, rev=%s", err, r, t.rev)) - file, err := commit.File(t.path) + f, err := commit.File(t.path) c.Assert(err, IsNil) - lines, err := file.Lines() + lines, err := f.Lines() c.Assert(err, IsNil) c.Assert(len(t.blames), Equals, len(lines), Commentf( - "repo=%s, path=%s, rev=%s: the number of lines in the file and the number of expected blames differ (len(blames)=%d, len(lines)=%d)\nblames=%#q\nlines=%#q", t.repo, t.path, t.rev, len(t.blames), len(lines), t.blames, lines)) + "repo=%s, path=%s, rev=%s: the number of lines in the file and the number of exp blames differ (len(blames)=%d, len(lines)=%d)\nblames=%#q\nlines=%#q", t.repo, t.path, t.rev, len(t.blames), len(lines), t.blames, lines)) blamedLines := make([]*line, 0, len(t.blames)) for i := range t.blames { - commit, err := repo.Commit(core.NewHash(t.blames[i])) + commit, err := r.Commit(core.NewHash(t.blames[i])) c.Assert(err, IsNil) l := &line{ author: commit.Author.Email, @@ -82,17 +82,17 @@ func (s *BlameCommon) mockBlame(t blameTest, c *C) (blame *Blame) { // run a blame on all the suite's tests func (s *BlameCommon) TestBlame(c *C) { for _, t := range blameTests { - expected := s.mockBlame(t, c) + exp := s.mockBlame(t, c) - repo, ok := s.repos[t.repo] + r, ok := s.repos[t.repo] c.Assert(ok, Equals, true) - commit, err := repo.Commit(core.NewHash(t.rev)) + commit, err := r.Commit(core.NewHash(t.rev)) c.Assert(err, IsNil) - obtained, err := commit.Blame(t.path) + obt, err := commit.Blame(t.path) c.Assert(err, IsNil) - c.Assert(obtained, DeepEquals, expected) + c.Assert(obt, DeepEquals, exp) } } @@ -110,11 +110,11 @@ func repeat(s string, n int) []string { // utility function to concat slices func concat(vargs ...[]string) []string { - var result []string + var r []string for _, ss := range vargs { - result = append(result, ss...) + r = append(r, ss...) } - return result + return r } var blameTests = [...]blameTest{ diff --git a/clients/common.go b/clients/common.go index 1e3e60d13..80650424f 100644 --- a/clients/common.go +++ b/clients/common.go @@ -57,10 +57,10 @@ func NewGitUploadPackService(repoURL string) (common.GitUploadPackService, error if err != nil { return nil, fmt.Errorf("invalid url %q", repoURL) } - service, ok := KnownProtocols[u.Scheme] + s, ok := KnownProtocols[u.Scheme] if !ok { return nil, fmt.Errorf("unsupported scheme %q", u.Scheme) } - return service, nil + return s, nil } diff --git a/clients/common_test.go b/clients/common_test.go index b69aa5dcc..592259ecb 100644 --- a/clients/common_test.go +++ b/clients/common_test.go @@ -35,9 +35,9 @@ func (s *SuiteCommon) TearDownSuite(c *C) { func (s *SuiteCommon) TestNewGitUploadPackService(c *C) { var tests = [...]struct { - input string - err bool - expected string + input string + err bool + exp string }{ {"://example.com", true, ""}, {"badscheme://github.com/src-d/go-git", true, ""}, @@ -51,7 +51,7 @@ func (s *SuiteCommon) TestNewGitUploadPackService(c *C) { output, err := NewGitUploadPackService(t.input) c.Assert(err != nil, Equals, t.err, Commentf("%d) %q: wrong error value (was: %s)", i, t.input, err)) - c.Assert(typeAsString(output), Equals, t.expected, + c.Assert(typeAsString(output), Equals, t.exp, Commentf("%d) %q: wrong type", i, t.input)) } } diff --git a/clients/file/git_upload_pack.go b/clients/file/git_upload_pack.go index f0468520d..1e1871868 100644 --- a/clients/file/git_upload_pack.go +++ b/clients/file/git_upload_pack.go @@ -25,8 +25,8 @@ func NewGitUploadPackService() *GitUploadPackService { func (s *GitUploadPackService) Connect(url common.Endpoint) error { var err error - path := strings.TrimPrefix(string(url), "file://") - s.dir, err = gitdir.New(path) + p := strings.TrimPrefix(string(url), "file://") + s.dir, err = gitdir.New(p) if err != nil { return err } @@ -35,9 +35,9 @@ func (s *GitUploadPackService) Connect(url common.Endpoint) error { } func (s *GitUploadPackService) ConnectWithAuth(url common.Endpoint, - auth common.AuthMethod) error { + a common.AuthMethod) error { - if auth == nil { + if a == nil { return s.Connect(url) } @@ -45,24 +45,24 @@ func (s *GitUploadPackService) ConnectWithAuth(url common.Endpoint, } func (s *GitUploadPackService) Info() (*common.GitUploadPackInfo, error) { - info := common.NewGitUploadPackInfo() + i := common.NewGitUploadPackInfo() var err error - if info.Refs, err = s.dir.Refs(); err != nil { - return info, err + if i.Refs, err = s.dir.Refs(); err != nil { + return i, err } - if info.Capabilities, err = s.dir.Capabilities(); err != nil { - return info, err + if i.Capabilities, err = s.dir.Capabilities(); err != nil { + return i, err } - headSymRef := info.Capabilities.SymbolicReference("HEAD") + h := i.Capabilities.SymbolicReference("HEAD") var ok bool - if info.Head, ok = info.Refs[headSymRef]; !ok { - return info, ErrHeadSymRefNotFound + if i.Head, ok = i.Refs[h]; !ok { + return i, ErrHeadSymRefNotFound } - return info, nil + return i, nil } func (s *GitUploadPackService) Fetch(r *common.GitUploadPackRequest) (io.ReadCloser, error) { diff --git a/clients/file/git_upload_pack_test.go b/clients/file/git_upload_pack_test.go index 31ce225f0..409bd8d58 100644 --- a/clients/file/git_upload_pack_test.go +++ b/clients/file/git_upload_pack_test.go @@ -51,8 +51,8 @@ func (s *SuiteFileClient) TestConnectWithAuth(c *C) { c.Assert(err, IsNil) r = NewGitUploadPackService() - auth := dummyAuth{} - err = r.ConnectWithAuth(s.fixtureURL, auth) + a := dummyAuth{} + err = r.ConnectWithAuth(s.fixtureURL, a) c.Assert(err, Equals, common.ErrAuthNotSupported) } @@ -66,9 +66,9 @@ func (s *SuiteFileClient) TestDefaultBranch(c *C) { err := r.Connect(s.fixtureURL) c.Assert(err, IsNil) - info, err := r.Info() + i, err := r.Info() c.Assert(err, IsNil) - c.Assert(info.Capabilities.SymbolicReference("HEAD"), Equals, "refs/heads/master") + c.Assert(i.Capabilities.SymbolicReference("HEAD"), Equals, "refs/heads/master") } func (s *SuiteFileClient) NoTestFetch(c *C) { diff --git a/clients/http/common.go b/clients/http/common.go index f163cfc46..2a0d7bda9 100644 --- a/clients/http/common.go +++ b/clients/http/common.go @@ -65,7 +65,7 @@ func (e *HTTPError) StatusCode() int { } func (e *HTTPError) Error() string { - return fmt.Sprintf("unexpected requesting %q status code: %d", + return fmt.Sprintf("unexp requesting %q status code: %d", e.Response.Request.URL, e.Response.StatusCode, ) } diff --git a/clients/http/common_test.go b/clients/http/common_test.go index 7bd970871..982672cb3 100644 --- a/clients/http/common_test.go +++ b/clients/http/common_test.go @@ -29,7 +29,7 @@ func (s *SuiteCommon) TestNewHTTPError404(c *C) { } func (s *SuiteCommon) TestNewHTTPError40x(c *C) { - s.testNewHTTPError(c, 402, "unexpected client error.*") + s.testNewHTTPError(c, 402, "unexp client error.*") } func (s *SuiteCommon) testNewHTTPError(c *C, code int, msg string) { diff --git a/commit_test.go b/commit_test.go index a620e8c6d..f872b225c 100644 --- a/commit_test.go +++ b/commit_test.go @@ -95,8 +95,8 @@ var fileTests = []struct { repo string // the repo name as in localRepos commit string // the commit to search for the file path string // the path of the file to find - blobHash string // expected hash of the returned file - found bool // expected found value + blobHash string // exp hash of the returned file + found bool // exp found value }{ // use git ls-tree commit to get the hash of the blobs {"https://github.com/tyba/git-fixture.git", "b029517f6300c2da0f4b651b8642506cd6aaf45d", "not-found", diff --git a/common_test.go b/common_test.go index e0bb1979a..2f49028ba 100644 --- a/common_test.go +++ b/common_test.go @@ -29,21 +29,22 @@ func (s *MockGitUploadPackService) ConnectWithAuth(url common.Endpoint, auth com } func (s *MockGitUploadPackService) Info() (*common.GitUploadPackInfo, error) { - hash := core.NewHash("6ecf0ef2c2dffb796033e5a02219af86ec6584e5") + h := core.NewHash("6ecf0ef2c2dffb796033e5a02219af86ec6584e5") - cap := common.NewCapabilities() - cap.Decode("6ecf0ef2c2dffb796033e5a02219af86ec6584e5 HEADmulti_ack thin-pack side-band side-band-64k ofs-delta shallow no-progress include-tag multi_ack_detailed no-done symref=HEAD:refs/heads/master agent=git/2:2.4.8~dbussink-fix-enterprise-tokens-compilation-1167-gc7006cf") + c := common.NewCapabilities() + c.Decode("6ecf0ef2c2dffb796033e5a02219af86ec6584e5 HEADmulti_ack thin-pack side-band side-band-64k ofs-delta shallow no-progress include-tag multi_ack_detailed no-done symref=HEAD:refs/heads/master agent=git/2:2.4.8~dbussink-fix-enterprise-tokens-compilation-1167-gc7006cf") return &common.GitUploadPackInfo{ - Capabilities: cap, - Head: hash, - Refs: map[string]core.Hash{"refs/heads/master": hash}, + Capabilities: c, + Head: h, + Refs: map[string]core.Hash{"refs/heads/master": h}, }, nil } func (s *MockGitUploadPackService) Fetch(*common.GitUploadPackRequest) (io.ReadCloser, error) { var err error s.RC, err = os.Open("formats/packfile/fixtures/git-fixture.ref-delta") + return s.RC, err } @@ -67,18 +68,19 @@ func unpackFixtures(c *C, fixtures ...[]packedFixture) map[string]*Repository { } repos[fixture.url] = NewPlainRepository() - d, err := os.Open(fixture.packfile) + f, err := os.Open(fixture.packfile) c.Assert(err, IsNil) - decoder := packfile.NewDecoder(d) - decoder.Format = packfile.OFSDeltaFormat // This is hardcoded because we don't have a good way to sniff the format + d := packfile.NewDecoder(f) + d.Format = packfile.OFSDeltaFormat // This is hardcoded because we don't have a good way to sniff the format - _, err = decoder.Decode(repos[fixture.url].Storage) + _, err = d.Decode(repos[fixture.url].Storage) c.Assert(err, IsNil) - c.Assert(d.Close(), IsNil) + c.Assert(f.Close(), IsNil) } } + return repos } @@ -88,7 +90,7 @@ var _ = Suite(&SuiteCommon{}) var countLinesTests = [...]struct { i string // the string we want to count lines from - e int // the expected number of lines in i + e int // the exp number of lines in i }{ {"", 0}, {"a", 1}, diff --git a/core/errors.go b/core/errors.go index 50772b639..cee1d4cb9 100644 --- a/core/errors.go +++ b/core/errors.go @@ -31,5 +31,5 @@ func NewUnexpectedError(err error) *UnexpectedError { } func (e *UnexpectedError) Error() string { - return fmt.Sprintf("unexpected client error: %s", e.Err.Error()) + return fmt.Sprintf("unexp client error: %s", e.Err.Error()) } diff --git a/diff/diff_ext_test.go b/diff/diff_ext_test.go index aa94ca23b..1fa3a7858 100644 --- a/diff/diff_ext_test.go +++ b/diff/diff_ext_test.go @@ -52,17 +52,17 @@ func (s *suiteCommon) TestAll(c *C) { var doTests = [...]struct { src, dst string - expected []diffmatchpatch.Diff + exp []diffmatchpatch.Diff }{ { - src: "", - dst: "", - expected: []diffmatchpatch.Diff{}, + src: "", + dst: "", + exp: []diffmatchpatch.Diff{}, }, { src: "a", dst: "a", - expected: []diffmatchpatch.Diff{ + exp: []diffmatchpatch.Diff{ { Type: 0, Text: "a", @@ -72,7 +72,7 @@ var doTests = [...]struct { { src: "", dst: "abc\ncba", - expected: []diffmatchpatch.Diff{ + exp: []diffmatchpatch.Diff{ { Type: 1, Text: "abc\ncba", @@ -82,7 +82,7 @@ var doTests = [...]struct { { src: "abc\ncba", dst: "", - expected: []diffmatchpatch.Diff{ + exp: []diffmatchpatch.Diff{ { Type: -1, Text: "abc\ncba", @@ -92,7 +92,7 @@ var doTests = [...]struct { { src: "abc\nbcd\ncde", dst: "000\nabc\n111\nBCD\n", - expected: []diffmatchpatch.Diff{ + exp: []diffmatchpatch.Diff{ {Type: 1, Text: "000\n"}, {Type: 0, Text: "abc\n"}, {Type: -1, Text: "bcd\ncde"}, @@ -104,6 +104,6 @@ var doTests = [...]struct { func (s *suiteCommon) TestDo(c *C) { for i, t := range doTests { diffs := diff.Do(t.src, t.dst) - c.Assert(diffs, DeepEquals, t.expected, Commentf("subtest %d", i)) + c.Assert(diffs, DeepEquals, t.exp, Commentf("subtest %d", i)) } } diff --git a/file_test.go b/file_test.go index 2f457f40b..ba421ca6f 100644 --- a/file_test.go +++ b/file_test.go @@ -55,14 +55,14 @@ func (s *SuiteFile) TestIter(c *C) { iter := NewFileIter(r, commit.Tree()) for k := 0; k < len(t.files); k++ { - expected := t.files[k] + exp := t.files[k] file, err := iter.Next() c.Assert(err, IsNil, Commentf("subtest %d, iter %d, err=%v", i, k, err)) c.Assert(file.Mode.String(), Equals, "-rw-r--r--") c.Assert(file.Hash.IsZero(), Equals, false) c.Assert(file.Hash, Equals, file.ID()) - c.Assert(file.Name, Equals, expected.Name, Commentf("subtest %d, iter %d, name=%s, expected=%s", i, k, file.Name, expected.Hash)) - c.Assert(file.Hash.String(), Equals, expected.Hash, Commentf("subtest %d, iter %d, hash=%v, expected=%s", i, k, file.Hash.String(), expected.Hash)) + c.Assert(file.Name, Equals, exp.Name, Commentf("subtest %d, iter %d, name=%s, expected=%s", i, k, file.Name, exp.Hash)) + c.Assert(file.Hash.String(), Equals, exp.Hash, Commentf("subtest %d, iter %d, hash=%v, expected=%s", i, k, file.Hash.String(), exp.Hash)) } _, err = iter.Next() c.Assert(err, Equals, io.EOF) @@ -73,7 +73,7 @@ var contentsTests = []struct { repo string // the repo name as in localRepos commit string // the commit to search for the file path string // the path of the file to find - contents string // expected contents of the file + contents string // exp contents of the file }{ { "https://github.com/tyba/git-fixture.git", @@ -120,7 +120,7 @@ var linesTests = []struct { repo string // the repo name as in localRepos commit string // the commit to search for the file path string // the path of the file to find - lines []string // expected lines in the file + lines []string // exp lines in the file }{ { "https://github.com/tyba/git-fixture.git", diff --git a/formats/gitdir/dir.go b/formats/gitdir/dir.go index 92e309ad8..761633551 100644 --- a/formats/gitdir/dir.go +++ b/formats/gitdir/dir.go @@ -35,19 +35,19 @@ type Dir struct { // New returns a Dir value ready to be used. The path argument must be // an existing git repository directory (e.g. "/foo/bar/.git"). func New(path string) (*Dir, error) { - dir := &Dir{} + d := &Dir{} var err error - dir.path, err = cleanPath(path) + d.path, err = cleanPath(path) if err != nil { return nil, err } - if dir.isInvalidPath() { + if d.isInvalidPath() { return nil, ErrBadGitDirName } - return dir, nil + return d, nil } func cleanPath(path string) (string, error) { @@ -81,35 +81,35 @@ func (d *Dir) Refs() (map[string]core.Hash, error) { // Capabilities scans the git directory collection capabilities, which it returns. func (d *Dir) Capabilities() (*common.Capabilities, error) { - caps := common.NewCapabilities() + c := common.NewCapabilities() - err := d.addSymRefCapability(caps) + err := d.addSymRefCapability(c) - return caps, err + return c, err } func (d *Dir) addSymRefCapability(cap *common.Capabilities) (err error) { - file, err := os.Open(filepath.Join(d.path, "HEAD")) + f, err := os.Open(filepath.Join(d.path, "HEAD")) if err != nil { return err } defer func() { - errClose := file.Close() + errClose := f.Close() if err == nil { err = errClose } }() - bytes, err := ioutil.ReadAll(file) + b, err := ioutil.ReadAll(f) if err != nil { return err } - contents := strings.TrimSpace(string(bytes)) + contents := strings.TrimSpace(string(b)) - capablity := "symref" + c := "symref" ref := strings.TrimPrefix(contents, symRefPrefix) - cap.Set(capablity, "HEAD:"+ref) + cap.Set(c, "HEAD:"+ref) return nil } @@ -122,22 +122,22 @@ type ReadSeekCloser interface { // Packfile returns the path of the packfile in the repository. func (d *Dir) Packfile() (string, error) { - pattern := d.pattern(true) + p := d.pattern(true) - list, err := filepath.Glob(pattern) + l, err := filepath.Glob(p) if err != nil { return "", err } - if len(list) == 0 { + if len(l) == 0 { return "", fmt.Errorf("packfile not found") } - if len(list) > 1 { + if len(l) > 1 { return "", fmt.Errorf("found more than one packfile") } - return list[0], nil + return l[0], nil } func (d *Dir) pattern(isPackfile bool) string { @@ -162,20 +162,20 @@ const filePattern = "pack-[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a- // Idxfile returns the path of the idx file in the repository. func (d *Dir) Idxfile() (string, error) { - pattern := d.pattern(false) + p := d.pattern(false) - list, err := filepath.Glob(pattern) + l, err := filepath.Glob(p) if err != nil { return "", err } - if len(list) == 0 { + if len(l) == 0 { return "", ErrIdxNotFound } - if len(list) > 1 { + if len(l) > 1 { return "", fmt.Errorf("found more than one idxfile") } - return list[0], nil + return l[0], nil } diff --git a/formats/gitdir/dir_test.go b/formats/gitdir/dir_test.go index 2f96d7fcb..2d7ee23e0 100644 --- a/formats/gitdir/dir_test.go +++ b/formats/gitdir/dir_test.go @@ -37,7 +37,7 @@ var initFixtures = [...]struct { type fixture struct { path string // repo names to paths of the extracted tgz - capabilities *common.Capabilities // expected capabilities + capabilities *common.Capabilities // exp capabilities packfile string // path of the packfile idxfile string // path of the idxfile } @@ -57,28 +57,28 @@ func (s *SuiteGitDir) SetUpSuite(c *C) { path, err := tgz.Extract(init.tgz) c.Assert(err, IsNil, comment) - fixt := fixture{} + f := fixture{} - fixt.path = filepath.Join(path, ".git") + f.path = filepath.Join(path, ".git") - fixt.capabilities = common.NewCapabilities() + f.capabilities = common.NewCapabilities() for _, pair := range init.capabilities { - fixt.capabilities.Add(pair[0], pair[1]) + f.capabilities.Add(pair[0], pair[1]) } - fixt.packfile = init.packfile - fixt.idxfile = init.idxfile + f.packfile = init.packfile + f.idxfile = init.idxfile - s.fixtures[init.name] = fixt + s.fixtures[init.name] = f } } func (s *SuiteGitDir) TearDownSuite(c *C) { - for name, fixture := range s.fixtures { - dir := filepath.Dir(fixture.path) - err := os.RemoveAll(dir) + for n, f := range s.fixtures { + d := filepath.Dir(f.path) + err := os.RemoveAll(d) c.Assert(err, IsNil, Commentf("cannot delete tmp dir for fixture %s: %s\n", - name, dir)) + n, d)) } } @@ -107,10 +107,10 @@ func (s *SuiteGitDir) TestNewDir(c *C) { } { comment := Commentf("subtest %d", i) - dir, err := New(test.input) + d, err := New(test.input) c.Assert(err, Equals, test.err, comment) if test.err == nil { - c.Assert(dir.path, Equals, test.path, comment) + c.Assert(d.path, Equals, test.path, comment) } } } @@ -172,22 +172,22 @@ func (s *SuiteGitDir) TestRefs(c *C) { }, } { comment := Commentf("subtest %d", i) - _, dir := s.newFixtureDir(c, test.fixture) + _, d := s.newFixtureDir(c, test.fixture) - refs, err := dir.Refs() + refs, err := d.Refs() c.Assert(err, IsNil, comment) c.Assert(refs, DeepEquals, test.refs, comment) } } func (s *SuiteGitDir) newFixtureDir(c *C, fixName string) (*fixture, *Dir) { - fixture, ok := s.fixtures[fixName] + f, ok := s.fixtures[fixName] c.Assert(ok, Equals, true) - dir, err := New(fixture.path) + d, err := New(f.path) c.Assert(err, IsNil) - return &fixture, dir + return &f, d } func (s *SuiteGitDir) TestCapabilities(c *C) { @@ -200,11 +200,11 @@ func (s *SuiteGitDir) TestCapabilities(c *C) { }, } { comment := Commentf("subtest %d", i) - fixture, dir := s.newFixtureDir(c, test.fixture) + f, d := s.newFixtureDir(c, test.fixture) - capabilities, err := dir.Capabilities() + caps, err := d.Capabilities() c.Assert(err, IsNil, comment) - c.Assert(capabilities, DeepEquals, fixture.capabilities, comment) + c.Assert(caps, DeepEquals, f.capabilities, comment) } } @@ -243,17 +243,17 @@ func (s *SuiteGitDir) TestIdxfile(c *C) { func (s *SuiteGitDir) checkFile(c *C, isPackfile bool, fixtureName string, expectedErr string) { - fixt, dir := s.newFixtureDir(c, fixtureName) + fix, dir := s.newFixtureDir(c, fixtureName) - var path string - var fixturePath string + var pakPath string + var fixPath string var err error if isPackfile { - path, err = dir.Packfile() - fixturePath = fixt.packfile + pakPath, err = dir.Packfile() + fixPath = fix.packfile } else { - path, err = dir.Idxfile() - fixturePath = fixt.idxfile + pakPath, err = dir.Idxfile() + fixPath = fix.idxfile } if expectedErr != "" { @@ -261,9 +261,9 @@ func (s *SuiteGitDir) checkFile(c *C, isPackfile bool, } else { c.Assert(err, IsNil) - relative, err := filepath.Rel(dir.path, path) + rel, err := filepath.Rel(dir.path, pakPath) c.Assert(err, IsNil) - c.Assert(relative, Equals, fixturePath) + c.Assert(rel, Equals, fixPath) } } diff --git a/formats/gitdir/refs.go b/formats/gitdir/refs.go index b7e640603..89b6f0210 100644 --- a/formats/gitdir/refs.go +++ b/formats/gitdir/refs.go @@ -33,7 +33,7 @@ func (d *Dir) initRefsFromPackedRefs() (err error) { d.refs = make(map[string]core.Hash) path := filepath.Join(d.path, packedRefsPath) - file, err := os.Open(path) + f, err := os.Open(path) if err != nil { if err == os.ErrNotExist { return nil @@ -41,21 +41,21 @@ func (d *Dir) initRefsFromPackedRefs() (err error) { return err } defer func() { - errClose := file.Close() + errClose := f.Close() if err == nil { err = errClose } }() - scanner := bufio.NewScanner(file) - for scanner.Scan() { - line := scanner.Text() + s := bufio.NewScanner(f) + for s.Scan() { + line := s.Text() if err = d.processLine(line); err != nil { return err } } - return scanner.Err() + return s.Err() } // process lines from a packed-refs file @@ -66,16 +66,16 @@ func (d *Dir) processLine(line string) error { case '^': // annotated tag commit of the previous line - ignore return nil default: - words := strings.Split(line, " ") // hash then ref - if len(words) != 2 { + ws := strings.Split(line, " ") // hash then ref + if len(ws) != 2 { return ErrPackedRefsBadFormat } - hash, ref := words[0], words[1] + h, r := ws[0], ws[1] - if _, ok := d.refs[ref]; ok { + if _, ok := d.refs[r]; ok { return ErrPackedRefsDuplicatedRef } - d.refs[ref] = core.NewHash(hash) + d.refs[r] = core.NewHash(h) } return nil @@ -86,25 +86,25 @@ func (d *Dir) addRefsFromRefDir() error { } func (d *Dir) walkTree(relPath string) error { - files, err := ioutil.ReadDir(filepath.Join(d.path, relPath)) + fs, err := ioutil.ReadDir(filepath.Join(d.path, relPath)) if err != nil { return err } - for _, file := range files { - newRelPath := filepath.Join(relPath, file.Name()) + for _, f := range fs { + newRelPath := filepath.Join(relPath, f.Name()) - if file.IsDir() { + if f.IsDir() { if err = d.walkTree(newRelPath); err != nil { return err } } else { filePath := filepath.Join(d.path, newRelPath) - hash, err := d.readHashFile(filePath) + h, err := d.readHashFile(filePath) if err != nil { return err } - d.refs[newRelPath] = hash + d.refs[newRelPath] = h } } @@ -115,17 +115,17 @@ func (d *Dir) walkTree(relPath string) error { // reference is found instead of a hash, the reference is resolved and // the proper hash is returned. func (d *Dir) readHashFile(path string) (core.Hash, error) { - bytes, err := ioutil.ReadFile(path) + b, err := ioutil.ReadFile(path) if err != nil { return core.ZeroHash, err } - content := strings.TrimSpace(string(bytes)) + line := strings.TrimSpace(string(b)) - if isSymRef(content) { - return d.resolveSymRef(content) + if isSymRef(line) { + return d.resolveSymRef(line) } - return core.NewHash(content), nil + return core.NewHash(line), nil } func isSymRef(contents string) bool { diff --git a/formats/idxfile/decoder.go b/formats/idxfile/decoder.go index 46aa320cc..72a933874 100644 --- a/formats/idxfile/decoder.go +++ b/formats/idxfile/decoder.go @@ -57,12 +57,12 @@ func (d *Decoder) Decode(idx *Idxfile) error { } func validateHeader(r io.Reader) error { - var header = make([]byte, 4) - if _, err := r.Read(header); err != nil { + var h = make([]byte, 4) + if _, err := r.Read(h); err != nil { return err } - if !bytes.Equal(header, idxHeader) { + if !bytes.Equal(h, idxHeader) { return ErrMalformedIdxFile } @@ -70,16 +70,16 @@ func validateHeader(r io.Reader) error { } func readVersion(idx *Idxfile, r io.Reader) error { - version, err := readInt32(r) + v, err := readInt32(r) if err != nil { return err } - if version > VersionSupported { + if v > VersionSupported { return ErrUnsupportedVersion } - idx.Version = version + idx.Version = v return nil } @@ -100,8 +100,8 @@ func readFanout(idx *Idxfile, r io.Reader) error { } func readObjectNames(idx *Idxfile, r io.Reader) error { - count := int(idx.ObjectCount) - for i := 0; i < count; i++ { + c := int(idx.ObjectCount) + for i := 0; i < c; i++ { var ref core.Hash if _, err := r.Read(ref[:]); err != nil { return err @@ -114,8 +114,8 @@ func readObjectNames(idx *Idxfile, r io.Reader) error { } func readCRC32(idx *Idxfile, r io.Reader) error { - count := int(idx.ObjectCount) - for i := 0; i < count; i++ { + c := int(idx.ObjectCount) + for i := 0; i < c; i++ { if _, err := r.Read(idx.Entries[i].CRC32[:]); err != nil { return err } @@ -125,14 +125,14 @@ func readCRC32(idx *Idxfile, r io.Reader) error { } func readOffsets(idx *Idxfile, r io.Reader) error { - count := int(idx.ObjectCount) - for i := 0; i < count; i++ { - offset, err := readInt32(r) + c := int(idx.ObjectCount) + for i := 0; i < c; i++ { + o, err := readInt32(r) if err != nil { return err } - idx.Entries[i].Offset = uint64(offset) + idx.Entries[i].Offset = uint64(o) } return nil @@ -151,10 +151,10 @@ func readChecksums(idx *Idxfile, r io.Reader) error { } func readInt32(r io.Reader) (uint32, error) { - var value uint32 - if err := binary.Read(r, binary.BigEndian, &value); err != nil { + var v uint32 + if err := binary.Read(r, binary.BigEndian, &v); err != nil { return 0, err } - return value, nil + return v, nil } diff --git a/formats/idxfile/decoder_test.go b/formats/idxfile/decoder_test.go index cba30c65b..597a0027b 100644 --- a/formats/idxfile/decoder_test.go +++ b/formats/idxfile/decoder_test.go @@ -15,15 +15,15 @@ type IdxfileSuite struct{} var _ = Suite(&IdxfileSuite{}) func (s *IdxfileSuite) TestDecode(c *C) { - file, err := os.Open("fixtures/git-fixture.idx") + f, err := os.Open("fixtures/git-fixture.idx") c.Assert(err, IsNil) - decoder := NewDecoder(file) + d := NewDecoder(f) idx := &Idxfile{} - err = decoder.Decode(idx) + err = d.Decode(idx) c.Assert(err, IsNil) - err = file.Close() + err = f.Close() c.Assert(err, IsNil) c.Assert(int(idx.ObjectCount), Equals, 31) diff --git a/formats/idxfile/encoder.go b/formats/idxfile/encoder.go index 277a811b1..f85ff8439 100644 --- a/formats/idxfile/encoder.go +++ b/formats/idxfile/encoder.go @@ -15,9 +15,9 @@ type Encoder struct { // NewEncoder returns a new encoder that writes to w. func NewEncoder(w io.Writer) *Encoder { - hash := sha1.New() - writer := io.MultiWriter(w, hash) - return &Encoder{writer, hash} + h := sha1.New() + mw := io.MultiWriter(w, h) + return &Encoder{mw, h} } // Encode writes the idx in an idx file format to the stream of the encoder. @@ -31,26 +31,26 @@ func (e *Encoder) Encode(idx *Idxfile) (int, error) { e.encodeChecksums, } - size := 0 + sz := 0 for _, f := range flow { i, err := f(idx) - size += i + sz += i if err != nil { - return size, err + return sz, err } } - return size, nil + return sz, nil } func (e *Encoder) encodeHeader(idx *Idxfile) (int, error) { - count, err := e.Write(idxHeader) + c, err := e.Write(idxHeader) if err != nil { - return count, err + return c, err } - return count + 4, e.writeInt32(idx.Version) + return c + 4, e.writeInt32(idx.Version) } func (e *Encoder) encodeFanout(idx *Idxfile) (int, error) { @@ -73,37 +73,37 @@ func (e *Encoder) encodeCRC32(idx *Idxfile) (int, error) { } func (e *Encoder) encodeEntryField(idx *Idxfile, isHash bool) (int, error) { - size := 0 - for _, entry := range idx.Entries { + sz := 0 + for _, ent := range idx.Entries { var data []byte if isHash { - data = entry.Hash[:] + data = ent.Hash[:] } else { - data = entry.CRC32[:] + data = ent.CRC32[:] } i, err := e.Write(data) - size += i + sz += i if err != nil { - return size, err + return sz, err } } - return size, nil + return sz, nil } func (e *Encoder) encodeOffsets(idx *Idxfile) (int, error) { - size := 0 - for _, entry := range idx.Entries { - if err := e.writeInt32(uint32(entry.Offset)); err != nil { - return size, err + sz := 0 + for _, ent := range idx.Entries { + if err := e.writeInt32(uint32(ent.Offset)); err != nil { + return sz, err } - size += 4 + sz += 4 } - return size, nil + return sz, nil } func (e *Encoder) encodeChecksums(idx *Idxfile) (int, error) { @@ -117,7 +117,6 @@ func (e *Encoder) encodeChecksums(idx *Idxfile) (int, error) { } return 40, nil - } func (e *Encoder) writeInt32(value uint32) error { diff --git a/formats/idxfile/encoder_test.go b/formats/idxfile/encoder_test.go index 84f793c58..bfb9f9151 100644 --- a/formats/idxfile/encoder_test.go +++ b/formats/idxfile/encoder_test.go @@ -13,35 +13,35 @@ func (s *IdxfileSuite) TestEncode(c *C) { "fixtures/git-fixture.idx", "../packfile/fixtures/spinnaker-spinnaker.idx", } { - comment := Commentf("subtest %d: path = %s", i, path) + com := Commentf("subtest %d: path = %s", i, path) - expected, idx, err := decode(path) - c.Assert(err, IsNil, comment) + exp, idx, err := decode(path) + c.Assert(err, IsNil, com) - obtained := new(bytes.Buffer) - encoder := NewEncoder(obtained) - size, err := encoder.Encode(idx) - c.Assert(err, IsNil, comment) + obt := new(bytes.Buffer) + e := NewEncoder(obt) + size, err := e.Encode(idx) + c.Assert(err, IsNil, com) - c.Assert(size, Equals, expected.Len(), comment) - c.Assert(obtained, DeepEquals, expected, comment) + c.Assert(size, Equals, exp.Len(), com) + c.Assert(obt, DeepEquals, exp, com) } } func decode(path string) (*bytes.Buffer, *Idxfile, error) { - file, err := os.Open(path) + f, err := os.Open(path) if err != nil { return nil, nil, err } - contents := new(bytes.Buffer) - tee := io.TeeReader(file, contents) + cont := new(bytes.Buffer) + tee := io.TeeReader(f, cont) - decoder := NewDecoder(tee) + d := NewDecoder(tee) idx := &Idxfile{} - if err = decoder.Decode(idx); err != nil { + if err = d.Decode(idx); err != nil { return nil, nil, err } - return contents, idx, file.Close() + return cont, idx, f.Close() } diff --git a/formats/packfile/decoder.go b/formats/packfile/decoder.go index 29bafb9fd..2c85c4084 100644 --- a/formats/packfile/decoder.go +++ b/formats/packfile/decoder.go @@ -86,12 +86,12 @@ func (d *Decoder) Decode(s core.ObjectStorage) (int64, error) { return -1, err } - version, err := d.readInt32() + ver, err := d.readInt32() if err != nil { return -1, err } - if version > VersionSupported { + if ver > VersionSupported { return -1, ErrUnsupportedVersion } @@ -108,12 +108,12 @@ func (d *Decoder) Decode(s core.ObjectStorage) (int64, error) { } func (d *Decoder) validateHeader() error { - var header = make([]byte, 4) - if _, err := io.ReadFull(d.readCounter, header); err != nil { + var h = make([]byte, 4) + if _, err := io.ReadFull(d.readCounter, h); err != nil { return err } - if !bytes.Equal(header, []byte{'P', 'A', 'C', 'K'}) { + if !bytes.Equal(h, []byte{'P', 'A', 'C', 'K'}) { return ErrMalformedPackfile } @@ -121,12 +121,12 @@ func (d *Decoder) validateHeader() error { } func (d *Decoder) readInt32() (uint32, error) { - var value uint32 - if err := binary.Read(d.readCounter, binary.BigEndian, &value); err != nil { + var v uint32 + if err := binary.Read(d.readCounter, binary.BigEndian, &v); err != nil { return 0, err } - return value, nil + return v, nil } func (d *Decoder) readObjects(count uint32) error { @@ -156,25 +156,25 @@ func (d *Decoder) readObjects(count uint32) error { func (d *Decoder) newObject() (core.Object, error) { var typ core.ObjectType - var length int64 - var content []byte + var sz int64 + var cont []byte objectStart := d.readCounter.Count() - typ, length, err := readTypeAndLength(d.readCounter) + typ, sz, err := readTypeAndLength(d.readCounter) if err != nil { return nil, err } switch typ { case core.REFDeltaObject: - content, typ, err = readContentREFDelta(d.readCounter, d) - length = int64(len(content)) + cont, typ, err = readContentREFDelta(d.readCounter, d) + sz = int64(len(cont)) case core.OFSDeltaObject: - content, typ, err = readContentOFSDelta(d.readCounter, objectStart, d) - length = int64(len(content)) + cont, typ, err = readContentOFSDelta(d.readCounter, objectStart, d) + sz = int64(len(cont)) case core.CommitObject, core.TreeObject, core.BlobObject, core.TagObject: - content, err = readContent(d.readCounter) + cont, err = readContent(d.readCounter) default: err = ErrInvalidObject.addDetails("tag %q", typ) } @@ -182,7 +182,7 @@ func (d *Decoder) newObject() (core.Object, error) { return nil, err } - return memory.NewObject(typ, length, content), err + return memory.NewObject(typ, sz, cont), err } // ByHash returns an already seen object by its hash. diff --git a/formats/packfile/decoder_test.go b/formats/packfile/decoder_test.go index 0226bea21..4e2f99be2 100644 --- a/formats/packfile/decoder_test.go +++ b/formats/packfile/decoder_test.go @@ -26,15 +26,15 @@ var packFileWithEmptyObjects = "UEFDSwAAAAIAAAALnw54nKXMQWoDMQxA0b1PoX2hSLIm44FS func (s *ReaderSuite) TestReadPackfile(c *C) { data, _ := base64.StdEncoding.DecodeString(packFileWithEmptyObjects) - d := bytes.NewReader(data) + f := bytes.NewReader(data) - decoder := NewDecoder(d) + d := NewDecoder(f) - storage := memory.NewObjectStorage() - _, err := decoder.Decode(storage) + sto := memory.NewObjectStorage() + _, err := d.Decode(sto) c.Assert(err, IsNil) - AssertObjects(c, storage, []string{ + AssertObjects(c, sto, []string{ "778c85ff95b5514fea0ba4c7b6a029d32e2c3b96", "db4002e880a08bf6cc7217512ad937f1ac8824a2", "551fe11a9ef992763b7e0be4500cf7169f2f8575", @@ -57,18 +57,18 @@ func (s *ReaderSuite) TestReadPackfileREFDelta(c *C) { s.testReadPackfileGitFixture(c, "fixtures/git-fixture.ref-delta", REFDeltaFormat) } -func (s *ReaderSuite) testReadPackfileGitFixture(c *C, file string, f Format) { - d, err := os.Open(file) +func (s *ReaderSuite) testReadPackfileGitFixture(c *C, file string, format Format) { + f, err := os.Open(file) c.Assert(err, IsNil) - decoder := NewDecoder(d) - decoder.Format = f + d := NewDecoder(f) + d.Format = format - storage := memory.NewObjectStorage() - _, err = decoder.Decode(storage) + sto := memory.NewObjectStorage() + _, err = d.Decode(sto) c.Assert(err, IsNil) - AssertObjects(c, storage, []string{ + AssertObjects(c, sto, []string{ "918c48b83bd081e863dbe1b80f8998f058cd8294", "af2d6a6954d532f8ffb47615169c8fdf9d383a1a", "1669dce138d9b841a518c64b10914d88f5e488ea", @@ -102,10 +102,10 @@ func (s *ReaderSuite) testReadPackfileGitFixture(c *C, file string, f Format) { func AssertObjects(c *C, s *memory.ObjectStorage, expects []string) { c.Assert(len(expects), Equals, len(s.Objects)) - for _, expected := range expects { - obtained, err := s.Get(core.NewHash(expected)) + for _, exp := range expects { + obt, err := s.Get(core.NewHash(exp)) c.Assert(err, IsNil) - c.Assert(obtained.Hash().String(), Equals, expected) + c.Assert(obt.Hash().String(), Equals, exp) } } @@ -165,16 +165,16 @@ func (s *ReaderSuite) _TestMemoryREF(c *C) { s._testMemory(c, REFDeltaFormat) } -func readFromFile(c *C, file string, f Format) *memory.ObjectStorage { - d, err := os.Open(file) +func readFromFile(c *C, file string, format Format) *memory.ObjectStorage { + f, err := os.Open(file) c.Assert(err, IsNil) - decoder := NewDecoder(d) - decoder.Format = f + d := NewDecoder(f) + d.Format = format - storage := memory.NewObjectStorage() - _, err = decoder.Decode(storage) + sto := memory.NewObjectStorage() + _, err = d.Decode(sto) c.Assert(err, IsNil) - return storage + return sto } diff --git a/formats/packfile/delta.go b/formats/packfile/delta.go index 61af762e1..fe677b211 100644 --- a/formats/packfile/delta.go +++ b/formats/packfile/delta.go @@ -61,7 +61,7 @@ func PatchDelta(src, delta []byte) []byte { // stream. // // This must be called twice on the delta data buffer, first to get the -// expected source buffer size, and again to get the target buffer size. +// exp source buffer size, and again to get the target buffer size. func decodeLEB128(input []byte) (uint, []byte) { var result, bytesDecoded uint var b byte diff --git a/formats/pktline/decoder.go b/formats/pktline/decoder.go index 34e6f51a4..44f1a77b4 100644 --- a/formats/pktline/decoder.go +++ b/formats/pktline/decoder.go @@ -8,7 +8,7 @@ import ( var ( // ErrUnderflow is triggered when a line is shorter than the described length - ErrUnderflow = errors.New("unexpected string length (underflow)") + ErrUnderflow = errors.New("unexp string length (underflow)") // ErrInvalidHeader invalid pktline header ErrInvalidHeader = errors.New("invalid header") // ErrInvalidLen ivanlid line length found, < 0 diff --git a/formats/pktline/encoder.go b/formats/pktline/encoder.go index 18efa2531..85b2fd327 100644 --- a/formats/pktline/encoder.go +++ b/formats/pktline/encoder.go @@ -8,7 +8,7 @@ import ( var ( //ErrOverflow is triggered when the line length exceed the MaxLength - ErrOverflow = errors.New("unexpected string length (overflow)") + ErrOverflow = errors.New("unexp string length (overflow)") ) // Encoder implements a pkt-line format encoder diff --git a/references_test.go b/references_test.go index 5d764b319..8dfea485a 100644 --- a/references_test.go +++ b/references_test.go @@ -40,7 +40,7 @@ var referencesTests = [...]struct { repo string commit string path string - // expected output data form the revlist + // exp output data form the revlist revs []string }{ // Tyba git-fixture @@ -339,10 +339,10 @@ func compareSideBySide(a []string, b []*Commit) string { var buf bytes.Buffer buf.WriteString("\t EXPECTED OBTAINED ") var sep string - var obtained string + var obt string for i := range a { - obtained = b[i].Hash.String() - if a[i] != obtained { + obt = b[i].Hash.String() + if a[i] != obt { sep = "------" } else { sep = " " @@ -351,7 +351,7 @@ func compareSideBySide(a []string, b []*Commit) string { buf.WriteString(sep) buf.WriteString(a[i]) buf.WriteString(sep) - buf.WriteString(obtained) + buf.WriteString(obt) } return buf.String() } diff --git a/repository_test.go b/repository_test.go index b3663938f..531a959ed 100644 --- a/repository_test.go +++ b/repository_test.go @@ -157,11 +157,11 @@ func (s *SuiteRepository) TestTag(c *C) { r, ok := s.repos[t.repo] c.Assert(ok, Equals, true) k := 0 - for hashString, expected := range t.tags { + for hashString, exp := range t.tags { hash := core.NewHash(hashString) tag, err := r.Tag(hash) c.Assert(err, IsNil) - testTagExpected(c, tag, hash, expected, fmt.Sprintf("subtest %d, tag %d: ", i, k)) + testTagExpected(c, tag, hash, exp, fmt.Sprintf("subtest %d, tag %d: ", i, k)) k++ } } diff --git a/storage/seekable/internal/index/index_test.go b/storage/seekable/internal/index/index_test.go index 4dbe7bf93..9a3004a31 100644 --- a/storage/seekable/internal/index/index_test.go +++ b/storage/seekable/internal/index/index_test.go @@ -83,12 +83,12 @@ func (s *SuiteIndex) TestGet(c *C) { index, err := NewFromIdx(idx) c.Assert(err, IsNil, comment) - obtained, err := index.Get(test.hash) + obt, err := index.Get(test.hash) if test.err != nil { c.Assert(err, Equals, test.err, comment) } else { c.Assert(err, IsNil) - c.Assert(obtained, Equals, expectedIndexes[test.idx][test.hash], comment) + c.Assert(obt, Equals, expectedIndexes[test.idx][test.hash], comment) } err = idx.Close() diff --git a/storage/seekable/store_test.go b/storage/seekable/store_test.go index 831602fd9..a5268679e 100644 --- a/storage/seekable/store_test.go +++ b/storage/seekable/store_test.go @@ -31,24 +31,24 @@ func (s *SeekableSuite) TestGetCompareWithMemoryStorage(c *C) { "../../formats/packfile/fixtures/alcortesm-binary-relations.pack", "../../formats/packfile/fixtures/git-fixture.ref-delta", } { - comment := Commentf("at subtest %d", i) + com := Commentf("at subtest %d", i) memStorage := memory.NewObjectStorage() - packfileFile, err := os.Open(packfilePath) - c.Assert(err, IsNil, comment) + f, err := os.Open(packfilePath) + c.Assert(err, IsNil, com) - decoder := packfile.NewDecoder(packfileFile) - _, err = decoder.Decode(memStorage) - c.Assert(err, IsNil, comment) + d := packfile.NewDecoder(f) + _, err = d.Decode(memStorage) + c.Assert(err, IsNil, com) - err = packfileFile.Close() - c.Assert(err, IsNil, comment) + err = f.Close() + c.Assert(err, IsNil, com) lastDot := strings.LastIndex(packfilePath, ".") idxPath := packfilePath[:lastDot] + ".idx" storage, err := seekable.New(packfilePath, idxPath) - c.Assert(err, IsNil, comment) + c.Assert(err, IsNil, com) for _, typ := range [...]core.ObjectType{ core.CommitObject, @@ -57,7 +57,7 @@ func (s *SeekableSuite) TestGetCompareWithMemoryStorage(c *C) { core.TagObject, } { iter, err := memStorage.Iter(typ) - c.Assert(err, IsNil, comment) + c.Assert(err, IsNil, com) for { memObject, err := iter.Next() @@ -66,16 +66,16 @@ func (s *SeekableSuite) TestGetCompareWithMemoryStorage(c *C) { break } - obtained, err := storage.Get(memObject.Hash()) - c.Assert(err, IsNil, comment) + obt, err := storage.Get(memObject.Hash()) + c.Assert(err, IsNil, com) - c.Assert(obtained.Type(), Equals, memObject.Type(), comment) - c.Assert(obtained.Size(), Equals, memObject.Size(), comment) + c.Assert(obt.Type(), Equals, memObject.Type(), com) + c.Assert(obt.Size(), Equals, memObject.Size(), com) if memObject.Content() != nil { - c.Assert(obtained.Content(), DeepEquals, memObject.Content(), - comment) + c.Assert(obt.Content(), DeepEquals, memObject.Content(), + com) } - c.Assert(obtained.Hash(), Equals, memObject.Hash(), comment) + c.Assert(obt.Hash(), Equals, memObject.Hash(), com) } iter.Close() @@ -89,22 +89,22 @@ func (s *SeekableSuite) TestIterCompareWithMemoryStorage(c *C) { "../../formats/packfile/fixtures/alcortesm-binary-relations.pack", "../../formats/packfile/fixtures/git-fixture.ref-delta", } { - comment := Commentf("at subtest %d", i) + com := Commentf("at subtest %d", i) memStorage := memory.NewObjectStorage() - packfileFile, err := os.Open(packfilePath) - c.Assert(err, IsNil, comment) - decoder := packfile.NewDecoder(packfileFile) - _, err = decoder.Decode(memStorage) - c.Assert(err, IsNil, comment) - err = packfileFile.Close() - c.Assert(err, IsNil, comment) + f, err := os.Open(packfilePath) + c.Assert(err, IsNil, com) + d := packfile.NewDecoder(f) + _, err = d.Decode(memStorage) + c.Assert(err, IsNil, com) + err = f.Close() + c.Assert(err, IsNil, com) lastDot := strings.LastIndex(packfilePath, ".") idxPath := packfilePath[:lastDot] + ".idx" - storage, err := seekable.New(packfilePath, idxPath) - c.Assert(err, IsNil, comment) + sto, err := seekable.New(packfilePath, idxPath) + c.Assert(err, IsNil, com) for _, typ := range [...]core.ObjectType{ core.CommitObject, @@ -114,13 +114,13 @@ func (s *SeekableSuite) TestIterCompareWithMemoryStorage(c *C) { } { memObjects, err := iterToSortedSlice(memStorage, typ) - c.Assert(err, IsNil, comment) + c.Assert(err, IsNil, com) - seekableObjects, err := iterToSortedSlice(storage, typ) - c.Assert(err, IsNil, comment) + seekableObjects, err := iterToSortedSlice(sto, typ) + c.Assert(err, IsNil, com) - for i, expected := range memObjects { - c.Assert(seekableObjects[i].Hash(), Equals, expected.Hash(), comment) + for i, exp := range memObjects { + c.Assert(seekableObjects[i].Hash(), Equals, exp.Hash(), com) } } } @@ -134,21 +134,21 @@ func iterToSortedSlice(storage core.ObjectStorage, typ core.ObjectType) ([]core. return nil, err } - result := make([]core.Object, 0) + r := make([]core.Object, 0) for { object, err := iter.Next() if err != nil { iter.Close() break } - result = append(result, object) + r = append(r, object) } iter.Close() - sort.Sort(byHash(result)) + sort.Sort(byHash(r)) - return result, nil + return r, nil } type byHash []core.Object @@ -160,13 +160,13 @@ func (a byHash) Less(i, j int) bool { } func (s *SeekableSuite) TestSet(c *C) { - packfilePath := "../../formats/packfile/fixtures/spinnaker-spinnaker.pack" - lastDot := strings.LastIndex(packfilePath, ".") - idxPath := packfilePath[:lastDot] + ".idx" + path := "../../formats/packfile/fixtures/spinnaker-spinnaker.pack" + lastDot := strings.LastIndex(path, ".") + idxPath := path[:lastDot] + ".idx" - storage, err := seekable.New(packfilePath, idxPath) + sto, err := seekable.New(path, idxPath) c.Assert(err, IsNil) - _, err = storage.Set(&memory.Object{}) + _, err = sto.Set(&memory.Object{}) c.Assert(err, ErrorMatches, "set operation not permitted") } diff --git a/tag_test.go b/tag_test.go index 46d53fcf1..12750e2c9 100644 --- a/tag_test.go +++ b/tag_test.go @@ -25,7 +25,7 @@ var tagFixtures = []packedFixture{ var tagTests = []struct { repo string // the repo name in the test suite's map of fixtures - tags map[string]expectedTag // the expected tags to test, mapped by tag hash + tags map[string]expectedTag // the exp tags to test, mapped by tag hash }{ // https://api.github.com/repos/spinnaker/spinnaker/git/tags/TAGHASH {"https://github.com/spinnaker/spinnaker.git", map[string]expectedTag{ @@ -60,8 +60,8 @@ func (s *SuiteTag) TestCommit(c *C) { r, ok := s.repos[t.repo] c.Assert(ok, Equals, true) k := 0 - for hash, expected := range t.tags { - if expected.Type != core.CommitObject { + for hash, exp := range t.tags { + if exp.Type != core.CommitObject { continue } tag, err := r.Tag(core.NewHash(hash)) @@ -69,7 +69,7 @@ func (s *SuiteTag) TestCommit(c *C) { commit, err := tag.Commit() c.Assert(err, IsNil) c.Assert(commit.Type(), Equals, core.CommitObject) - c.Assert(commit.Hash.String(), Equals, expected.Object) + c.Assert(commit.Hash.String(), Equals, exp.Object) k++ } } @@ -80,8 +80,8 @@ func (s *SuiteTag) TestTree(c *C) { r, ok := s.repos[t.repo] c.Assert(ok, Equals, true) k := 0 - for hash, expected := range t.tags { - if expected.Type != core.TreeObject { + for hash, exp := range t.tags { + if exp.Type != core.TreeObject { continue } tag, err := r.Tag(core.NewHash(hash)) @@ -89,7 +89,7 @@ func (s *SuiteTag) TestTree(c *C) { tree, err := tag.Tree() c.Assert(err, IsNil) c.Assert(tree.Type(), Equals, core.TreeObject) - c.Assert(tree.Hash.String(), Equals, expected.Object) + c.Assert(tree.Hash.String(), Equals, exp.Object) k++ } } @@ -100,18 +100,18 @@ func (s *SuiteTag) TestBlob(c *C) { r, ok := s.repos[t.repo] c.Assert(ok, Equals, true) k := 0 - for hashString, expected := range t.tags { - if expected.Type != core.BlobObject { + for hashString, exp := range t.tags { + if exp.Type != core.BlobObject { continue } hash := core.NewHash(hashString) tag, err := r.Tag(hash) c.Assert(err, IsNil) - testTagExpected(c, tag, hash, expected, "") + testTagExpected(c, tag, hash, exp, "") blob, err := tag.Blob() c.Assert(err, IsNil) c.Assert(blob.Type(), Equals, core.BlobObject) - c.Assert(blob.Hash.String(), Equals, expected.Object) + c.Assert(blob.Hash.String(), Equals, exp.Object) k++ } } @@ -122,38 +122,38 @@ func (s *SuiteTag) TestObject(c *C) { r, ok := s.repos[t.repo] c.Assert(ok, Equals, true) k := 0 - for hashString, expected := range t.tags { - if expected.Type != core.BlobObject { + for hashString, exp := range t.tags { + if exp.Type != core.BlobObject { continue } hash := core.NewHash(hashString) tag, err := r.Tag(hash) c.Assert(err, IsNil) - testTagExpected(c, tag, hash, expected, "") + testTagExpected(c, tag, hash, exp, "") obj, err := tag.Object() c.Assert(err, IsNil) - c.Assert(obj.Type(), Equals, expected.Type) - c.Assert(obj.ID().String(), Equals, expected.Object) + c.Assert(obj.Type(), Equals, exp.Type) + c.Assert(obj.ID().String(), Equals, exp.Object) k++ } } } -func testTagExpected(c *C, tag *Tag, hash core.Hash, expected expectedTag, comment string) { - when, err := time.Parse(time.RFC3339, expected.When) +func testTagExpected(c *C, tag *Tag, hash core.Hash, exp expectedTag, comment string) { + when, err := time.Parse(time.RFC3339, exp.When) c.Assert(err, IsNil) c.Assert(tag, NotNil) c.Assert(tag.Hash.IsZero(), Equals, false) c.Assert(tag.Hash, Equals, tag.ID()) c.Assert(tag.Hash, Equals, hash) c.Assert(tag.Type(), Equals, core.TagObject) - c.Assert(tag.TargetType, Equals, expected.Type, Commentf("%stype=%v, expected=%v", comment, tag.TargetType, expected.Type)) - c.Assert(tag.Target.String(), Equals, expected.Object, Commentf("%sobject=%v, expected=%s", comment, tag.Target, expected.Object)) - c.Assert(tag.Name, Equals, expected.Tag, Commentf("subtest %d, iter %d, tag=%s, expected=%s", comment, tag.Name, expected.Tag)) - c.Assert(tag.Tagger.Name, Equals, expected.TaggerName, Commentf("subtest %d, iter %d, tagger.name=%s, expected=%s", comment, tag.Tagger.Name, expected.TaggerName)) - c.Assert(tag.Tagger.Email, Equals, expected.TaggerEmail, Commentf("subtest %d, iter %d, tagger.email=%s, expected=%s", comment, tag.Tagger.Email, expected.TaggerEmail)) + c.Assert(tag.TargetType, Equals, exp.Type, Commentf("%stype=%v, expected=%v", comment, tag.TargetType, exp.Type)) + c.Assert(tag.Target.String(), Equals, exp.Object, Commentf("%sobject=%v, expected=%s", comment, tag.Target, exp.Object)) + c.Assert(tag.Name, Equals, exp.Tag, Commentf("subtest %d, iter %d, tag=%s, expected=%s", comment, tag.Name, exp.Tag)) + c.Assert(tag.Tagger.Name, Equals, exp.TaggerName, Commentf("subtest %d, iter %d, tagger.name=%s, expected=%s", comment, tag.Tagger.Name, exp.TaggerName)) + c.Assert(tag.Tagger.Email, Equals, exp.TaggerEmail, Commentf("subtest %d, iter %d, tagger.email=%s, expected=%s", comment, tag.Tagger.Email, exp.TaggerEmail)) c.Assert(tag.Tagger.When.Equal(when), Equals, true, Commentf("subtest %d, iter %d, tagger.when=%s, expected=%s", comment, tag.Tagger.When, when)) - c.Assert(tag.Message, Equals, expected.Message, Commentf("subtest %d, iter %d, message=\"%s\", expected=\"%s\"", comment, tag.Message, expected.Message)) + c.Assert(tag.Message, Equals, exp.Message, Commentf("subtest %d, iter %d, message=\"%s\", expected=\"%s\"", comment, tag.Message, exp.Message)) } func testTagIter(c *C, iter *TagIter, tags map[string]expectedTag, comment string) { @@ -165,10 +165,10 @@ func testTagIter(c *C, iter *TagIter, tags map[string]expectedTag, comment strin c.Assert(tag.Hash.IsZero(), Equals, false) - expected, ok := tags[tag.Hash.String()] - c.Assert(ok, Equals, true, Commentf("%sunexpected tag hash=%v", comment, tag.Hash)) + exp, ok := tags[tag.Hash.String()] + c.Assert(ok, Equals, true, Commentf("%sunexp tag hash=%v", comment, tag.Hash)) - testTagExpected(c, tag, tag.Hash, expected, comment) + testTagExpected(c, tag, tag.Hash, exp, comment) } _, err := iter.Next() c.Assert(err, Equals, io.EOF) diff --git a/tree_test.go b/tree_test.go index 2b509f349..e83a82797 100644 --- a/tree_test.go +++ b/tree_test.go @@ -32,9 +32,9 @@ func (s *SuiteTree) TestFile(c *C) { repo string // the repo name as in localRepos commit string // the commit to search for the file path string // the path of the file to find - blobHash string // expected hash of the returned file - size int64 // expected size of the returned file - found bool // expected found value + blobHash string // exp hash of the returned file + size int64 // exp size of the returned file + found bool // exp found value }{ // use git ls-tree commit to get the hash of the blobs { @@ -208,7 +208,7 @@ func (s *SuiteTree) TestFiles(c *C) { for i, t := range []struct { repo string // the repo name as in localRepos commit string // the commit to search for the file - files []string // the expected files in the commit + files []string // the exp files in the commit }{ {"https://github.com/alcortesm/binary-relations.git", "b373f85fa2594d7dcd9989f4a5858a81647fb8ea", []string{ "binary-relations.tex", diff --git a/tree_walker_test.go b/tree_walker_test.go index 44ddf504f..c59964050 100644 --- a/tree_walker_test.go +++ b/tree_walker_test.go @@ -25,7 +25,7 @@ var treeWalkerFixtures = []packedFixture{ var treeWalkerTests = []struct { repo string // the repo name as in localRepos commit string // the commit to search for the file - objs []expectedTreeWalkerEntry // the expected objects in the commit + objs []expectedTreeWalkerEntry // the exp objects in the commit }{ // https://api.github.com/repos/alcortesm/binary-relations/git/trees/b373f85fa2594d7dcd9989f4a5858a81647fb8ea {"https://github.com/alcortesm/binary-relations.git", "b373f85fa2594d7dcd9989f4a5858a81647fb8ea", []expectedTreeWalkerEntry{ diff --git a/utils/tgz/tgz_test.go b/utils/tgz/tgz_test.go index 159fa540e..4f00212a4 100644 --- a/utils/tgz/tgz_test.go +++ b/utils/tgz/tgz_test.go @@ -28,11 +28,11 @@ func (s *SuiteTGZ) TestExtract(c *C) { } else { c.Assert(err, IsNil, comment) - obtained, err := relativeTree(path) + obt, err := relativeTree(path) c.Assert(err, IsNil, comment) sort.Strings(test.tree) - c.Assert(obtained, DeepEquals, test.tree, comment) + c.Assert(obt, DeepEquals, test.tree, comment) err = os.RemoveAll(path) c.Assert(err, IsNil, comment) From df9366ee28783537d6481b892e30a2e45c2f9e90 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Mon, 13 Jun 2016 17:24:17 +0200 Subject: [PATCH 060/143] more shortening of variable names --- formats/gitdir/dir_test.go | 22 +++---- formats/objfile/reader_test.go | 6 +- formats/objfile/writer_test.go | 8 +-- formats/packfile/delta.go | 66 +++++++++---------- formats/packfile/object_at.go | 19 +++--- references_test.go | 14 ++-- remote_test.go | 14 ++-- repository.go | 22 +++---- repository_test.go | 28 ++++---- storage/seekable/internal/index/index.go | 4 +- storage/seekable/internal/index/index_test.go | 24 +++---- storage/seekable/store.go | 12 ++-- storage/seekable/store_test.go | 26 ++++---- tag_test.go | 24 +++---- tree_test.go | 12 ++-- utils/tgz/tgz.go | 28 ++++---- utils/tgz/tgz_test.go | 30 ++++----- 17 files changed, 179 insertions(+), 180 deletions(-) diff --git a/formats/gitdir/dir_test.go b/formats/gitdir/dir_test.go index 2d7ee23e0..2c6d6874b 100644 --- a/formats/gitdir/dir_test.go +++ b/formats/gitdir/dir_test.go @@ -52,10 +52,10 @@ func (s *SuiteGitDir) SetUpSuite(c *C) { s.fixtures = make(map[string]fixture, len(initFixtures)) for _, init := range initFixtures { - comment := Commentf("fixture name = %s\n", init.name) + com := Commentf("fixture name = %s\n", init.name) path, err := tgz.Extract(init.tgz) - c.Assert(err, IsNil, comment) + c.Assert(err, IsNil, com) f := fixture{} @@ -105,12 +105,12 @@ func (s *SuiteGitDir) TestNewDir(c *C) { path: "/tmp/foo/.git", }, } { - comment := Commentf("subtest %d", i) + com := Commentf("subtest %d", i) d, err := New(test.input) - c.Assert(err, Equals, test.err, comment) + c.Assert(err, Equals, test.err, com) if test.err == nil { - c.Assert(d.path, Equals, test.path, comment) + c.Assert(d.path, Equals, test.path, com) } } } @@ -171,12 +171,12 @@ func (s *SuiteGitDir) TestRefs(c *C) { }, }, } { - comment := Commentf("subtest %d", i) + com := Commentf("subtest %d", i) _, d := s.newFixtureDir(c, test.fixture) refs, err := d.Refs() - c.Assert(err, IsNil, comment) - c.Assert(refs, DeepEquals, test.refs, comment) + c.Assert(err, IsNil, com) + c.Assert(refs, DeepEquals, test.refs, com) } } @@ -199,12 +199,12 @@ func (s *SuiteGitDir) TestCapabilities(c *C) { fixture: "spinnaker", }, } { - comment := Commentf("subtest %d", i) + com := Commentf("subtest %d", i) f, d := s.newFixtureDir(c, test.fixture) caps, err := d.Capabilities() - c.Assert(err, IsNil, comment) - c.Assert(caps, DeepEquals, f.capabilities, comment) + c.Assert(err, IsNil, com) + c.Assert(caps, DeepEquals, f.capabilities, com) } } diff --git a/formats/objfile/reader_test.go b/formats/objfile/reader_test.go index caebb60b6..b2c3d0c6a 100644 --- a/formats/objfile/reader_test.go +++ b/formats/objfile/reader_test.go @@ -19,16 +19,16 @@ var _ = Suite(&SuiteReader{}) func (s *SuiteReader) TestReadObjfile(c *C) { for k, fixture := range objfileFixtures { - comment := fmt.Sprintf("test %d: ", k) + com := fmt.Sprintf("test %d: ", k) hash := core.NewHash(fixture.hash) content, _ := base64.StdEncoding.DecodeString(fixture.content) data, _ := base64.StdEncoding.DecodeString(fixture.data) - testReader(c, bytes.NewReader(data), hash, fixture.t, content, comment) + testReader(c, bytes.NewReader(data), hash, fixture.t, content, com) } } -func testReader(c *C, source io.Reader, hash core.Hash, typ core.ObjectType, content []byte, comment string) { +func testReader(c *C, source io.Reader, hash core.Hash, typ core.ObjectType, content []byte, com string) { r, err := NewReader(source) c.Assert(err, IsNil) c.Assert(r.Type(), Equals, typ) diff --git a/formats/objfile/writer_test.go b/formats/objfile/writer_test.go index 0061f3fe6..160491cf8 100644 --- a/formats/objfile/writer_test.go +++ b/formats/objfile/writer_test.go @@ -16,20 +16,20 @@ var _ = Suite(&SuiteWriter{}) func (s *SuiteWriter) TestWriteObjfile(c *C) { for k, fixture := range objfileFixtures { - comment := fmt.Sprintf("test %d: ", k) + com := fmt.Sprintf("test %d: ", k) hash := core.NewHash(fixture.hash) content, _ := base64.StdEncoding.DecodeString(fixture.content) buffer := new(bytes.Buffer) // Write the data out to the buffer - testWriter(c, buffer, hash, fixture.t, content, comment) + testWriter(c, buffer, hash, fixture.t, content, com) // Read the data back in from the buffer to be sure it matches - testReader(c, buffer, hash, fixture.t, content, comment) + testReader(c, buffer, hash, fixture.t, content, com) } } -func testWriter(c *C, dest io.Writer, hash core.Hash, typ core.ObjectType, content []byte, comment string) { +func testWriter(c *C, dest io.Writer, hash core.Hash, typ core.ObjectType, content []byte, com string) { length := int64(len(content)) w, err := NewWriter(dest, typ, length) c.Assert(err, IsNil) diff --git a/formats/packfile/delta.go b/formats/packfile/delta.go index fe677b211..425261d71 100644 --- a/formats/packfile/delta.go +++ b/formats/packfile/delta.go @@ -13,13 +13,13 @@ func PatchDelta(src, delta []byte) []byte { return nil } - srcSize, delta := decodeLEB128(delta) - if srcSize != uint(len(src)) { + srcSz, delta := decodeLEB128(delta) + if srcSz != uint(len(src)) { return nil } - targetSize, delta := decodeLEB128(delta) - remainingTargetSize := targetSize + targetSz, delta := decodeLEB128(delta) + remainingTargetSize := targetSz var dest []byte var cmd byte @@ -27,23 +27,23 @@ func PatchDelta(src, delta []byte) []byte { cmd = delta[0] delta = delta[1:] if isCopyFromSrc(cmd) { - var offset, size uint + var offset, sz uint offset, delta = decodeOffset(cmd, delta) - size, delta = decodeSize(cmd, delta) - if invalidSize(size, targetSize) || - invalidOffsetSize(offset, size, srcSize) { + sz, delta = decodeSize(cmd, delta) + if invalidSize(sz, targetSz) || + invalidOffsetSize(offset, sz, srcSz) { break } - dest = append(dest, src[offset:offset+size]...) - remainingTargetSize -= size + dest = append(dest, src[offset:offset+sz]...) + remainingTargetSize -= sz } else if isCopyFromDelta(cmd) { - size := uint(cmd) // cmd is the size itself - if invalidSize(size, targetSize) { + sz := uint(cmd) // cmd is the size itself + if invalidSize(sz, targetSz) { break } - dest = append(dest, delta[0:size]...) - remainingTargetSize -= size - delta = delta[size:] + dest = append(dest, delta[0:sz]...) + remainingTargetSize -= sz + delta = delta[sz:] } else { return nil } @@ -63,19 +63,19 @@ func PatchDelta(src, delta []byte) []byte { // This must be called twice on the delta data buffer, first to get the // exp source buffer size, and again to get the target buffer size. func decodeLEB128(input []byte) (uint, []byte) { - var result, bytesDecoded uint + var num, sz uint var b byte for { - b = input[bytesDecoded] - result |= (uint(b) & payload) << (bytesDecoded * 7) // concats 7 bits chunks - bytesDecoded++ + b = input[sz] + num |= (uint(b) & payload) << (sz * 7) // concats 7 bits chunks + sz++ - if uint(b)&continuation == 0 || bytesDecoded == uint(len(input)) { + if uint(b)&continuation == 0 || sz == uint(len(input)) { break } } - return result, input[bytesDecoded:] + return num, input[sz:] } const ( @@ -114,33 +114,33 @@ func decodeOffset(cmd byte, delta []byte) (uint, []byte) { } func decodeSize(cmd byte, delta []byte) (uint, []byte) { - var size uint + var sz uint if (cmd & 0x10) != 0 { - size = uint(delta[0]) + sz = uint(delta[0]) delta = delta[1:] } if (cmd & 0x20) != 0 { - size |= uint(delta[0]) << 8 + sz |= uint(delta[0]) << 8 delta = delta[1:] } if (cmd & 0x40) != 0 { - size |= uint(delta[0]) << 16 + sz |= uint(delta[0]) << 16 delta = delta[1:] } - if size == 0 { - size = 0x10000 + if sz == 0 { + sz = 0x10000 } - return size, delta + return sz, delta } -func invalidSize(size, targetSize uint) bool { - return size > targetSize +func invalidSize(sz, targetSz uint) bool { + return sz > targetSz } -func invalidOffsetSize(offset, size, srcSize uint) bool { - return sumOverflows(offset, size) || - offset+size > srcSize +func invalidOffsetSize(offset, sz, srcSz uint) bool { + return sumOverflows(offset, sz) || + offset+sz > srcSz } func sumOverflows(a, b uint) bool { diff --git a/formats/packfile/object_at.go b/formats/packfile/object_at.go index 70f514e6f..4079b21e0 100644 --- a/formats/packfile/object_at.go +++ b/formats/packfile/object_at.go @@ -5,13 +5,12 @@ import ( "compress/zlib" "fmt" "io" + "os" "gopkg.in/src-d/go-git.v3/core" "gopkg.in/src-d/go-git.v3/storage/memory" ) -const fromTheBeginning = 0 - // AlreadySeener remembers already seen objects by hash or offset // and can be asked to retrieve them. It is used to resolve // REF-delta and OFS-delta references in the packfile. @@ -24,7 +23,7 @@ type AlreadySeener interface { func ObjectAt(packfile io.ReadSeeker, offset int64, remember AlreadySeener) (core.Object, error) { - _, err := packfile.Seek(offset, fromTheBeginning) + _, err := packfile.Seek(offset, os.SEEK_SET) if err != nil { return nil, err } @@ -34,16 +33,16 @@ func ObjectAt(packfile io.ReadSeeker, return nil, err } - var content []byte + var cont []byte switch typ { case core.CommitObject, core.TreeObject, core.BlobObject, core.TagObject: - content, err = readContent(packfile) + cont, err = readContent(packfile) case core.REFDeltaObject: - content, typ, err = readContentREFDelta(packfile, remember) - length = int64(len(content)) + cont, typ, err = readContentREFDelta(packfile, remember) + length = int64(len(cont)) case core.OFSDeltaObject: - content, typ, err = readContentOFSDelta(packfile, offset, remember) - length = int64(len(content)) + cont, typ, err = readContentOFSDelta(packfile, offset, remember) + length = int64(len(cont)) default: err = fmt.Errorf("invalid object type: tag %q", typ) } @@ -51,7 +50,7 @@ func ObjectAt(packfile io.ReadSeeker, return nil, err } - return memory.NewObject(typ, length, content), err + return memory.NewObject(typ, length, cont), err } func readTypeAndLength(packfile io.Reader) (core.ObjectType, int64, error) { diff --git a/references_test.go b/references_test.go index 8dfea485a..6405bbca9 100644 --- a/references_test.go +++ b/references_test.go @@ -20,17 +20,17 @@ var _ = Suite(&ReferencesSuite{}) // create the repositories of the fixtures func (s *ReferencesSuite) SetUpSuite(c *C) { s.repos = make(map[string]*Repository, 0) - for _, fixRepo := range fixtureRepos { - s.repos[fixRepo.url] = NewPlainRepository() + for _, fix := range fixtureRepos { + s.repos[fix.url] = NewPlainRepository() - d, err := os.Open(fixRepo.packfile) - defer d.Close() + f, err := os.Open(fix.packfile) + defer f.Close() c.Assert(err, IsNil) - decoder := packfile.NewDecoder(d) - decoder.Format = packfile.OFSDeltaFormat // TODO: how to know the format of a pack file ahead of time? + d := packfile.NewDecoder(f) + d.Format = packfile.OFSDeltaFormat // TODO: how to know the format of a pack file ahead of time? - _, err = decoder.Decode(s.repos[fixRepo.url].Storage) + _, err = d.Decode(s.repos[fix.url].Storage) c.Assert(err, IsNil) } } diff --git a/remote_test.go b/remote_test.go index 277e154fd..005d40a76 100644 --- a/remote_test.go +++ b/remote_test.go @@ -16,10 +16,10 @@ var _ = Suite(&SuiteRemote{}) const RepositoryFixture = "https://github.com/tyba/git-fixture" func (s *SuiteRemote) TestNewAuthenticatedRemote(c *C) { - auth := &http.BasicAuth{} - r, err := NewAuthenticatedRemote(RepositoryFixture, auth) + a := &http.BasicAuth{} + r, err := NewAuthenticatedRemote(RepositoryFixture, a) c.Assert(err, IsNil) - c.Assert(r.Auth, Equals, auth) + c.Assert(r.Auth, Equals, a) } func (s *SuiteRemote) TestConnect(c *C) { @@ -56,12 +56,12 @@ func (s *SuiteRemote) TestFetchDefaultBranch(c *C) { reader, err := r.FetchDefaultBranch() c.Assert(err, IsNil) - decoder := packfile.NewDecoder(reader) + d := packfile.NewDecoder(reader) - storage := memory.NewObjectStorage() - _, err = decoder.Decode(storage) + sto := memory.NewObjectStorage() + _, err = d.Decode(sto) c.Assert(err, IsNil) - c.Assert(storage.Objects, HasLen, 28) + c.Assert(sto.Objects, HasLen, 28) } func (s *SuiteRemote) TestHead(c *C) { diff --git a/repository.go b/repository.go index 7fd9546d4..753019e48 100644 --- a/repository.go +++ b/repository.go @@ -32,24 +32,24 @@ type Repository struct { // NewRepository creates a new repository setting remote as default remote func NewRepository(url string, auth common.AuthMethod) (*Repository, error) { - var remote *Remote + var r *Remote var err error if auth == nil { - remote, err = NewRemote(url) + r, err = NewRemote(url) } else { - remote, err = NewAuthenticatedRemote(url, auth) + r, err = NewAuthenticatedRemote(url, auth) } if err != nil { return nil, err } - r := NewPlainRepository() - r.Remotes[DefaultRemoteName] = remote - r.URL = url + repo := NewPlainRepository() + repo.Remotes[DefaultRemoteName] = r + repo.URL = url - return r, nil + return repo, nil } // NewPlainRepository creates a new repository without remotes @@ -141,8 +141,8 @@ func (r *Repository) fillStorageUsingFetch(remote *Remote, branch string) (err e } defer checkClose(reader, &err) - decoder := packfile.NewDecoder(reader) - if _, err = decoder.Decode(r.Storage); err != nil { + d := packfile.NewDecoder(reader) + if _, err = d.Decode(r.Storage); err != nil { return err } @@ -216,8 +216,8 @@ func (r *Repository) Tag(h core.Hash) (*Tag, error) { return nil, err } - tag := &Tag{r: r} - return tag, tag.Decode(obj) + t := &Tag{r: r} + return t, t.Decode(obj) } // Tags returns a TagIter that can step through all of the annotated tags diff --git a/repository_test.go b/repository_test.go index 531a959ed..f6d38b9f5 100644 --- a/repository_test.go +++ b/repository_test.go @@ -34,13 +34,13 @@ func (s *SuiteRepository) SetUpSuite(c *C) { s.repos = unpackFixtures(c, tagFixtures, treeWalkerFixtures) s.dirFixturePaths = make(map[string]string, len(dirFixtures)) - for _, fixture := range dirFixtures { - comment := Commentf("fixture name = %s\n", fixture.name) + for _, fix := range dirFixtures { + com := Commentf("fixture name = %s\n", fix.name) - path, err := tgz.Extract(fixture.tgz) - c.Assert(err, IsNil, comment) + path, err := tgz.Extract(fix.tgz) + c.Assert(err, IsNil, com) - s.dirFixturePaths[fixture.name] = filepath.Join(path, ".git") + s.dirFixturePaths[fix.name] = filepath.Join(path, ".git") } } @@ -68,15 +68,15 @@ func (s *SuiteRepository) TestNewRepositoryWithAuth(c *C) { func (s *SuiteRepository) TestNewSeekableRepository(c *C) { for name, path := range s.dirFixturePaths { - comment := Commentf("dir fixture %q → %q\n", name, path) + com := Commentf("dir fixture %q → %q\n", name, path) repo, err := NewRepository("file://"+path, nil) - c.Assert(err, IsNil, comment) + c.Assert(err, IsNil, com) err = repo.PullDefault() - c.Assert(err, IsNil, comment) + c.Assert(err, IsNil, com) - c.Assert(repo.Storage, NotNil, comment) - c.Assert(repo.Storage, FitsTypeOf, &seekable.ObjectStorage{}, comment) + c.Assert(repo.Storage, NotNil, com) + c.Assert(repo.Storage, FitsTypeOf, &seekable.ObjectStorage{}, com) } } @@ -182,13 +182,13 @@ func (s *SuiteRepository) TestObject(c *C) { r, ok := s.repos[t.repo] c.Assert(ok, Equals, true) for k := 0; k < len(t.objs); k++ { - comment := fmt.Sprintf("subtest %d, tag %d", i, k) + com := fmt.Sprintf("subtest %d, tag %d", i, k) info := t.objs[k] hash := core.NewHash(info.Hash) obj, err := r.Object(hash) - c.Assert(err, IsNil, Commentf(comment)) - c.Assert(obj.Type(), Equals, info.Kind, Commentf(comment)) - c.Assert(obj.ID(), Equals, hash, Commentf(comment)) + c.Assert(err, IsNil, Commentf(com)) + c.Assert(obj.Type(), Equals, info.Kind, Commentf(com)) + c.Assert(obj.ID(), Equals, hash, Commentf(com)) } } } diff --git a/storage/seekable/internal/index/index.go b/storage/seekable/internal/index/index.go index 543c49255..df0bd8ebe 100644 --- a/storage/seekable/internal/index/index.go +++ b/storage/seekable/internal/index/index.go @@ -19,9 +19,9 @@ func NewFromPackfile(packfile io.Reader) (Index, error) { // NewFromIdx returns a new index from an idx file reader. func NewFromIdx(r io.Reader) (Index, error) { - decoder := idxfile.NewDecoder(r) + d := idxfile.NewDecoder(r) idx := &idxfile.Idxfile{} - err := decoder.Decode(idx) + err := d.Decode(idx) if err != nil { return nil, err } diff --git a/storage/seekable/internal/index/index_test.go b/storage/seekable/internal/index/index_test.go index 9a3004a31..dc1822a44 100644 --- a/storage/seekable/internal/index/index_test.go +++ b/storage/seekable/internal/index/index_test.go @@ -29,21 +29,21 @@ func (s *SuiteIndex) TestNewFromIdx(c *C) { errRegexp: idxfile.ErrMalformedIdxFile.Error(), }, } { - comment := Commentf("subtest %d) idxPath = %s", i, test.idxPath) + com := Commentf("subtest %d) idxPath = %s", i, test.idxPath) idx, err := os.Open(test.idxPath) - c.Assert(err, IsNil, comment) + c.Assert(err, IsNil, com) index, err := NewFromIdx(idx) if test.errRegexp != "" { fmt.Println(err) - c.Assert(err, ErrorMatches, test.errRegexp, comment) + c.Assert(err, ErrorMatches, test.errRegexp, com) } else { - c.Assert(err, IsNil, comment) - c.Assert(index, DeepEquals, expectedIndexes[test.idxPath], comment) + c.Assert(err, IsNil, com) + c.Assert(index, DeepEquals, expectedIndexes[test.idxPath], com) err = idx.Close() - c.Assert(err, IsNil, comment) + c.Assert(err, IsNil, com) } } } @@ -75,24 +75,24 @@ func (s *SuiteIndex) TestGet(c *C) { err: core.ErrObjectNotFound, }, } { - comment := Commentf("subtest %d", i) + com := Commentf("subtest %d", i) idx, err := os.Open(test.idx) - c.Assert(err, IsNil, comment) + c.Assert(err, IsNil, com) index, err := NewFromIdx(idx) - c.Assert(err, IsNil, comment) + c.Assert(err, IsNil, com) obt, err := index.Get(test.hash) if test.err != nil { - c.Assert(err, Equals, test.err, comment) + c.Assert(err, Equals, test.err, com) } else { c.Assert(err, IsNil) - c.Assert(obt, Equals, expectedIndexes[test.idx][test.hash], comment) + c.Assert(obt, Equals, expectedIndexes[test.idx][test.hash], com) } err = idx.Close() - c.Assert(err, IsNil, comment) + c.Assert(err, IsNil, com) } } diff --git a/storage/seekable/store.go b/storage/seekable/store.go index 9b7179f27..e110a53e3 100644 --- a/storage/seekable/store.go +++ b/storage/seekable/store.go @@ -88,19 +88,19 @@ func (s *ObjectStorage) Get(h core.Hash) (core.Object, error) { return nil, err } - file, err := os.Open(s.path) + f, err := os.Open(s.path) if err != nil { return nil, err } defer func() { - errClose := file.Close() + errClose := f.Close() if err == nil { err = errClose } }() - return packfile.ObjectAt(file, offset, s) + return packfile.ObjectAt(f, offset, s) } // Iter returns an iterator for all the objects in the packfile with the @@ -134,17 +134,17 @@ func (s *ObjectStorage) ByHash(hash core.Hash) (core.Object, error) { // Given the nature of this storage, it also returns objects that // have not yet been seen. func (s *ObjectStorage) ByOffset(offset int64) (core.Object, error) { - file, err := os.Open(s.path) + f, err := os.Open(s.path) if err != nil { return nil, err } defer func() { - errClose := file.Close() + errClose := f.Close() if err == nil { err = errClose } }() - return packfile.ObjectAt(file, offset, s) + return packfile.ObjectAt(f, offset, s) } diff --git a/storage/seekable/store_test.go b/storage/seekable/store_test.go index a5268679e..67c5d0fce 100644 --- a/storage/seekable/store_test.go +++ b/storage/seekable/store_test.go @@ -33,12 +33,12 @@ func (s *SeekableSuite) TestGetCompareWithMemoryStorage(c *C) { } { com := Commentf("at subtest %d", i) - memStorage := memory.NewObjectStorage() + memSto := memory.NewObjectStorage() f, err := os.Open(packfilePath) c.Assert(err, IsNil, com) d := packfile.NewDecoder(f) - _, err = d.Decode(memStorage) + _, err = d.Decode(memSto) c.Assert(err, IsNil, com) err = f.Close() @@ -47,7 +47,7 @@ func (s *SeekableSuite) TestGetCompareWithMemoryStorage(c *C) { lastDot := strings.LastIndex(packfilePath, ".") idxPath := packfilePath[:lastDot] + ".idx" - storage, err := seekable.New(packfilePath, idxPath) + sto, err := seekable.New(packfilePath, idxPath) c.Assert(err, IsNil, com) for _, typ := range [...]core.ObjectType{ @@ -56,7 +56,7 @@ func (s *SeekableSuite) TestGetCompareWithMemoryStorage(c *C) { core.BlobObject, core.TagObject, } { - iter, err := memStorage.Iter(typ) + iter, err := memSto.Iter(typ) c.Assert(err, IsNil, com) for { @@ -66,7 +66,7 @@ func (s *SeekableSuite) TestGetCompareWithMemoryStorage(c *C) { break } - obt, err := storage.Get(memObject.Hash()) + obt, err := sto.Get(memObject.Hash()) c.Assert(err, IsNil, com) c.Assert(obt.Type(), Equals, memObject.Type(), com) @@ -91,11 +91,11 @@ func (s *SeekableSuite) TestIterCompareWithMemoryStorage(c *C) { } { com := Commentf("at subtest %d", i) - memStorage := memory.NewObjectStorage() + memSto := memory.NewObjectStorage() f, err := os.Open(packfilePath) c.Assert(err, IsNil, com) d := packfile.NewDecoder(f) - _, err = d.Decode(memStorage) + _, err = d.Decode(memSto) c.Assert(err, IsNil, com) err = f.Close() c.Assert(err, IsNil, com) @@ -113,14 +113,14 @@ func (s *SeekableSuite) TestIterCompareWithMemoryStorage(c *C) { core.TagObject, } { - memObjects, err := iterToSortedSlice(memStorage, typ) + memObjs, err := iterToSortedSlice(memSto, typ) c.Assert(err, IsNil, com) - seekableObjects, err := iterToSortedSlice(sto, typ) + seekableObjs, err := iterToSortedSlice(sto, typ) c.Assert(err, IsNil, com) - for i, exp := range memObjects { - c.Assert(seekableObjects[i].Hash(), Equals, exp.Hash(), com) + for i, exp := range memObjs { + c.Assert(seekableObjs[i].Hash(), Equals, exp.Hash(), com) } } } @@ -136,12 +136,12 @@ func iterToSortedSlice(storage core.ObjectStorage, typ core.ObjectType) ([]core. r := make([]core.Object, 0) for { - object, err := iter.Next() + obj, err := iter.Next() if err != nil { iter.Close() break } - r = append(r, object) + r = append(r, obj) } iter.Close() diff --git a/tag_test.go b/tag_test.go index 12750e2c9..380e0e733 100644 --- a/tag_test.go +++ b/tag_test.go @@ -139,7 +139,7 @@ func (s *SuiteTag) TestObject(c *C) { } } -func testTagExpected(c *C, tag *Tag, hash core.Hash, exp expectedTag, comment string) { +func testTagExpected(c *C, tag *Tag, hash core.Hash, exp expectedTag, com string) { when, err := time.Parse(time.RFC3339, exp.When) c.Assert(err, IsNil) c.Assert(tag, NotNil) @@ -147,18 +147,18 @@ func testTagExpected(c *C, tag *Tag, hash core.Hash, exp expectedTag, comment st c.Assert(tag.Hash, Equals, tag.ID()) c.Assert(tag.Hash, Equals, hash) c.Assert(tag.Type(), Equals, core.TagObject) - c.Assert(tag.TargetType, Equals, exp.Type, Commentf("%stype=%v, expected=%v", comment, tag.TargetType, exp.Type)) - c.Assert(tag.Target.String(), Equals, exp.Object, Commentf("%sobject=%v, expected=%s", comment, tag.Target, exp.Object)) - c.Assert(tag.Name, Equals, exp.Tag, Commentf("subtest %d, iter %d, tag=%s, expected=%s", comment, tag.Name, exp.Tag)) - c.Assert(tag.Tagger.Name, Equals, exp.TaggerName, Commentf("subtest %d, iter %d, tagger.name=%s, expected=%s", comment, tag.Tagger.Name, exp.TaggerName)) - c.Assert(tag.Tagger.Email, Equals, exp.TaggerEmail, Commentf("subtest %d, iter %d, tagger.email=%s, expected=%s", comment, tag.Tagger.Email, exp.TaggerEmail)) - c.Assert(tag.Tagger.When.Equal(when), Equals, true, Commentf("subtest %d, iter %d, tagger.when=%s, expected=%s", comment, tag.Tagger.When, when)) - c.Assert(tag.Message, Equals, exp.Message, Commentf("subtest %d, iter %d, message=\"%s\", expected=\"%s\"", comment, tag.Message, exp.Message)) + c.Assert(tag.TargetType, Equals, exp.Type, Commentf("%stype=%v, expected=%v", com, tag.TargetType, exp.Type)) + c.Assert(tag.Target.String(), Equals, exp.Object, Commentf("%sobject=%v, expected=%s", com, tag.Target, exp.Object)) + c.Assert(tag.Name, Equals, exp.Tag, Commentf("subtest %d, iter %d, tag=%s, expected=%s", com, tag.Name, exp.Tag)) + c.Assert(tag.Tagger.Name, Equals, exp.TaggerName, Commentf("subtest %d, iter %d, tagger.name=%s, expected=%s", com, tag.Tagger.Name, exp.TaggerName)) + c.Assert(tag.Tagger.Email, Equals, exp.TaggerEmail, Commentf("subtest %d, iter %d, tagger.email=%s, expected=%s", com, tag.Tagger.Email, exp.TaggerEmail)) + c.Assert(tag.Tagger.When.Equal(when), Equals, true, Commentf("subtest %d, iter %d, tagger.when=%s, expected=%s", com, tag.Tagger.When, when)) + c.Assert(tag.Message, Equals, exp.Message, Commentf("subtest %d, iter %d, message=\"%s\", expected=\"%s\"", com, tag.Message, exp.Message)) } -func testTagIter(c *C, iter *TagIter, tags map[string]expectedTag, comment string) { +func testTagIter(c *C, iter *TagIter, tags map[string]expectedTag, com string) { for k := 0; k < len(tags); k++ { - comment = fmt.Sprintf("%siter %d: ", comment, k) + com = fmt.Sprintf("%siter %d: ", com, k) tag, err := iter.Next() c.Assert(err, IsNil) c.Assert(tag, NotNil) @@ -166,9 +166,9 @@ func testTagIter(c *C, iter *TagIter, tags map[string]expectedTag, comment strin c.Assert(tag.Hash.IsZero(), Equals, false) exp, ok := tags[tag.Hash.String()] - c.Assert(ok, Equals, true, Commentf("%sunexp tag hash=%v", comment, tag.Hash)) + c.Assert(ok, Equals, true, Commentf("%sunexp tag hash=%v", com, tag.Hash)) - testTagExpected(c, tag, tag.Hash, exp, comment) + testTagExpected(c, tag, tag.Hash, exp, com) } _, err := iter.Next() c.Assert(err, Equals, io.EOF) diff --git a/tree_test.go b/tree_test.go index e83a82797..5c4c0f963 100644 --- a/tree_test.go +++ b/tree_test.go @@ -191,16 +191,16 @@ func (s *SuiteTree) TestFile(c *C) { file, err := tree.File(t.path) found := err == nil - comment := Commentf("subtest %d, path=%s, commit=%s", i, t.path, t.commit) - c.Assert(found, Equals, t.found, comment) + com := Commentf("subtest %d, path=%s, commit=%s", i, t.path, t.commit) + c.Assert(found, Equals, t.found, com) if !found { continue } - c.Assert(file.Size, Equals, t.size, comment) - c.Assert(file.Hash.IsZero(), Equals, false, comment) - c.Assert(file.Hash, Equals, file.ID(), comment) - c.Assert(file.Hash.String(), Equals, t.blobHash, comment) + c.Assert(file.Size, Equals, t.size, com) + c.Assert(file.Hash.IsZero(), Equals, false, com) + c.Assert(file.Hash, Equals, file.ID(), com) + c.Assert(file.Hash.String(), Equals, t.blobHash, com) } } diff --git a/utils/tgz/tgz.go b/utils/tgz/tgz.go index 26b07b015..73b494ab2 100644 --- a/utils/tgz/tgz.go +++ b/utils/tgz/tgz.go @@ -22,34 +22,34 @@ const ( // On error, a non-nil error and an empty string are returned if the // newly created directory was correctly deleted. If not, its path is // returned instead of the empty string. -func Extract(tgz string) (dir string, err error) { - file, err := os.Open(tgz) +func Extract(tgz string) (d string, err error) { + f, err := os.Open(tgz) if err != nil { return "", err } defer func() { - errClose := file.Close() + errClose := f.Close() if err == nil { err = errClose } }() - dir, err = ioutil.TempDir(useDefaultTempDir, tmpPrefix) + d, err = ioutil.TempDir(useDefaultTempDir, tmpPrefix) if err != nil { return "", nil } - tarReader, err := zipTarReader(file) + tar, err := zipTarReader(f) if err != nil { - return deleteDir(dir, err) + return deleteDir(d, err) } - if err = unTar(tarReader, dir); err != nil { - return deleteDir(dir, err) + if err = unTar(tar, d); err != nil { + return deleteDir(d, err) } - return dir, nil + return d, nil } func deleteDir(dir string, prevErr error) (string, error) { @@ -68,12 +68,12 @@ func deleteDir(dir string, prevErr error) (string, error) { } func zipTarReader(r io.Reader) (*tar.Reader, error) { - zipReader, err := gzip.NewReader(r) + zip, err := gzip.NewReader(r) if err != nil { return nil, err } - return tar.NewReader(zipReader), nil + return tar.NewReader(zip), nil } func unTar(src *tar.Reader, dstPath string) error { @@ -109,18 +109,18 @@ func unTar(src *tar.Reader, dstPath string) error { } func makeFile(path string, mode os.FileMode, contents io.Reader) (err error) { - writer, err := os.Create(path) + w, err := os.Create(path) if err != nil { return err } defer func() { - errClose := writer.Close() + errClose := w.Close() if err == nil { err = errClose } }() - _, err = io.Copy(writer, contents) + _, err = io.Copy(w, contents) if err != nil { return err } diff --git a/utils/tgz/tgz_test.go b/utils/tgz/tgz_test.go index 4f00212a4..9949ed516 100644 --- a/utils/tgz/tgz_test.go +++ b/utils/tgz/tgz_test.go @@ -17,25 +17,25 @@ var _ = Suite(&SuiteTGZ{}) func (s *SuiteTGZ) TestExtract(c *C) { for i, test := range tests { - comment := Commentf("%d) tgz path = %s", i, test.tgz) + com := Commentf("%d) tgz path = %s", i, test.tgz) path, err := Extract(test.tgz) if test.err != "" { - c.Assert(err, ErrorMatches, test.err, comment) + c.Assert(err, ErrorMatches, test.err, com) _, err = os.Stat(path) - c.Assert(os.IsNotExist(err), Equals, true, comment) + c.Assert(os.IsNotExist(err), Equals, true, com) } else { - c.Assert(err, IsNil, comment) + c.Assert(err, IsNil, com) obt, err := relativeTree(path) - c.Assert(err, IsNil, comment) + c.Assert(err, IsNil, com) sort.Strings(test.tree) - c.Assert(obt, DeepEquals, test.tree, comment) + c.Assert(obt, DeepEquals, test.tree, com) err = os.RemoveAll(path) - c.Assert(err, IsNil, comment) + c.Assert(err, IsNil, com) } } } @@ -86,26 +86,26 @@ var tests = [...]struct { func relativeTree(path string) ([]string, error) { path = filepath.Clean(path) - absolutes := []string{} + absPaths := []string{} walkFn := func(path string, info os.FileInfo, err error) error { - absolutes = append(absolutes, path) + absPaths = append(absPaths, path) return nil } _ = filepath.Walk(path, walkFn) - return toRelative(absolutes[1:], path) // strip the base dir + return toRelative(absPaths[1:], path) // strip the base dir } func toRelative(paths []string, base string) ([]string, error) { - result := []string{} - for _, path := range paths { - relative, err := filepath.Rel(base, path) + r := []string{} + for _, p := range paths { + rel, err := filepath.Rel(base, p) if err != nil { return nil, err } - result = append(result, relative) + r = append(r, rel) } - return result, nil + return r, nil } From 8a86df5a91b027a74fa490921478f9a9f680e160 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Mon, 13 Jun 2016 17:26:02 +0200 Subject: [PATCH 061/143] more shortening of variable names --- formats/packfile/delta.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/formats/packfile/delta.go b/formats/packfile/delta.go index 425261d71..761d31f1f 100644 --- a/formats/packfile/delta.go +++ b/formats/packfile/delta.go @@ -19,7 +19,7 @@ func PatchDelta(src, delta []byte) []byte { } targetSz, delta := decodeLEB128(delta) - remainingTargetSize := targetSz + remainingTargetSz := targetSz var dest []byte var cmd byte @@ -35,20 +35,20 @@ func PatchDelta(src, delta []byte) []byte { break } dest = append(dest, src[offset:offset+sz]...) - remainingTargetSize -= sz + remainingTargetSz -= sz } else if isCopyFromDelta(cmd) { sz := uint(cmd) // cmd is the size itself if invalidSize(sz, targetSz) { break } dest = append(dest, delta[0:sz]...) - remainingTargetSize -= sz + remainingTargetSz -= sz delta = delta[sz:] } else { return nil } - if remainingTargetSize <= 0 { + if remainingTargetSz <= 0 { break } } From 948fcb06cef0c252ba7e043067c857b93bc1a52a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Mon, 13 Jun 2016 17:37:28 +0200 Subject: [PATCH 062/143] Rename git dir client to "file", as the scheme used for it --- clients/common_test.go | 2 +- clients/file/git_upload_pack.go | 6 +++--- clients/file/git_upload_pack_test.go | 2 +- formats/{gitdir => file}/dir.go | 2 +- formats/{gitdir => file}/dir_test.go | 2 +- formats/{gitdir => file}/fixtures/no-packfile.tgz | Bin formats/{gitdir => file}/fixtures/spinnaker-gc.tgz | Bin formats/{gitdir => file}/refs.go | 2 +- repository.go | 6 +++--- repository_test.go | 2 +- 10 files changed, 12 insertions(+), 12 deletions(-) rename formats/{gitdir => file}/dir.go (99%) rename formats/{gitdir => file}/dir_test.go (99%) rename formats/{gitdir => file}/fixtures/no-packfile.tgz (100%) rename formats/{gitdir => file}/fixtures/spinnaker-gc.tgz (100%) rename formats/{gitdir => file}/refs.go (99%) diff --git a/clients/common_test.go b/clients/common_test.go index 592259ecb..0b8c65770 100644 --- a/clients/common_test.go +++ b/clients/common_test.go @@ -20,7 +20,7 @@ type SuiteCommon struct { var _ = Suite(&SuiteCommon{}) -const fixtureTGZ = "../formats/gitdir/fixtures/spinnaker-gc.tgz" +const fixtureTGZ = "../formats/file/fixtures/spinnaker-gc.tgz" func (s *SuiteCommon) SetUpSuite(c *C) { var err error diff --git a/clients/file/git_upload_pack.go b/clients/file/git_upload_pack.go index 1e1871868..9db58cc7f 100644 --- a/clients/file/git_upload_pack.go +++ b/clients/file/git_upload_pack.go @@ -7,7 +7,7 @@ import ( "strings" "gopkg.in/src-d/go-git.v3/clients/common" - "gopkg.in/src-d/go-git.v3/formats/gitdir" + "gopkg.in/src-d/go-git.v3/formats/file" ) var ( @@ -15,7 +15,7 @@ var ( ) type GitUploadPackService struct { - dir *gitdir.Dir + dir *file.Dir } func NewGitUploadPackService() *GitUploadPackService { @@ -26,7 +26,7 @@ func (s *GitUploadPackService) Connect(url common.Endpoint) error { var err error p := strings.TrimPrefix(string(url), "file://") - s.dir, err = gitdir.New(p) + s.dir, err = file.New(p) if err != nil { return err } diff --git a/clients/file/git_upload_pack_test.go b/clients/file/git_upload_pack_test.go index 409bd8d58..9cf84eaf6 100644 --- a/clients/file/git_upload_pack_test.go +++ b/clients/file/git_upload_pack_test.go @@ -22,7 +22,7 @@ type SuiteFileClient struct { var _ = Suite(&SuiteFileClient{}) -const fixtureTGZ = "../../formats/gitdir/fixtures/spinnaker-gc.tgz" +const fixtureTGZ = "../../formats/file/fixtures/spinnaker-gc.tgz" func (s *SuiteFileClient) SetUpSuite(c *C) { var err error diff --git a/formats/gitdir/dir.go b/formats/file/dir.go similarity index 99% rename from formats/gitdir/dir.go rename to formats/file/dir.go index 761633551..095e61d53 100644 --- a/formats/gitdir/dir.go +++ b/formats/file/dir.go @@ -1,4 +1,4 @@ -package gitdir +package file import ( "errors" diff --git a/formats/gitdir/dir_test.go b/formats/file/dir_test.go similarity index 99% rename from formats/gitdir/dir_test.go rename to formats/file/dir_test.go index 2c6d6874b..de04ee71e 100644 --- a/formats/gitdir/dir_test.go +++ b/formats/file/dir_test.go @@ -1,4 +1,4 @@ -package gitdir +package file import ( "os" diff --git a/formats/gitdir/fixtures/no-packfile.tgz b/formats/file/fixtures/no-packfile.tgz similarity index 100% rename from formats/gitdir/fixtures/no-packfile.tgz rename to formats/file/fixtures/no-packfile.tgz diff --git a/formats/gitdir/fixtures/spinnaker-gc.tgz b/formats/file/fixtures/spinnaker-gc.tgz similarity index 100% rename from formats/gitdir/fixtures/spinnaker-gc.tgz rename to formats/file/fixtures/spinnaker-gc.tgz diff --git a/formats/gitdir/refs.go b/formats/file/refs.go similarity index 99% rename from formats/gitdir/refs.go rename to formats/file/refs.go index 89b6f0210..8ce9bd45b 100644 --- a/formats/gitdir/refs.go +++ b/formats/file/refs.go @@ -1,4 +1,4 @@ -package gitdir +package file import ( "bufio" diff --git a/repository.go b/repository.go index 753019e48..635964f21 100644 --- a/repository.go +++ b/repository.go @@ -7,7 +7,7 @@ import ( "gopkg.in/src-d/go-git.v3/clients/common" "gopkg.in/src-d/go-git.v3/core" - "gopkg.in/src-d/go-git.v3/formats/gitdir" + "gopkg.in/src-d/go-git.v3/formats/file" "gopkg.in/src-d/go-git.v3/formats/packfile" "gopkg.in/src-d/go-git.v3/storage/memory" "gopkg.in/src-d/go-git.v3/storage/seekable" @@ -92,7 +92,7 @@ func isLocalRemote(endpoint common.Endpoint) bool { func (r *Repository) useLocalStorage(endpoint common.Endpoint) error { path := strings.TrimPrefix(string(endpoint), fileScheme) - dir, err := gitdir.New(path) + dir, err := file.New(path) if err != nil { return err } @@ -106,7 +106,7 @@ func (r *Repository) useLocalStorage(endpoint common.Endpoint) error { if err != nil { // if there is no idx file, just keep on, we will manage to create one // on the fly. - if err != gitdir.ErrIdxNotFound { + if err != file.ErrIdxNotFound { return err } } diff --git a/repository_test.go b/repository_test.go index f6d38b9f5..19f58f36b 100644 --- a/repository_test.go +++ b/repository_test.go @@ -19,7 +19,7 @@ var dirFixtures = [...]struct { }{ { name: "spinnaker", - tgz: "formats/gitdir/fixtures/spinnaker-gc.tgz", + tgz: "formats/file/fixtures/spinnaker-gc.tgz", }, } From 0533ae8e34b16fb544cf16428fe48de2dc7703e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Mon, 13 Jun 2016 17:47:11 +0200 Subject: [PATCH 063/143] Fix file format ctor name, now that the package name has change --- clients/file/git_upload_pack.go | 2 +- formats/file/dir.go | 2 +- formats/file/dir_test.go | 4 ++-- repository.go | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/clients/file/git_upload_pack.go b/clients/file/git_upload_pack.go index 9db58cc7f..a54831483 100644 --- a/clients/file/git_upload_pack.go +++ b/clients/file/git_upload_pack.go @@ -26,7 +26,7 @@ func (s *GitUploadPackService) Connect(url common.Endpoint) error { var err error p := strings.TrimPrefix(string(url), "file://") - s.dir, err = file.New(p) + s.dir, err = file.NewDir(p) if err != nil { return err } diff --git a/formats/file/dir.go b/formats/file/dir.go index 095e61d53..8ed4fa65e 100644 --- a/formats/file/dir.go +++ b/formats/file/dir.go @@ -34,7 +34,7 @@ type Dir struct { // New returns a Dir value ready to be used. The path argument must be // an existing git repository directory (e.g. "/foo/bar/.git"). -func New(path string) (*Dir, error) { +func NewDir(path string) (*Dir, error) { d := &Dir{} var err error diff --git a/formats/file/dir_test.go b/formats/file/dir_test.go index de04ee71e..837696897 100644 --- a/formats/file/dir_test.go +++ b/formats/file/dir_test.go @@ -107,7 +107,7 @@ func (s *SuiteGitDir) TestNewDir(c *C) { } { com := Commentf("subtest %d", i) - d, err := New(test.input) + d, err := NewDir(test.input) c.Assert(err, Equals, test.err, com) if test.err == nil { c.Assert(d.path, Equals, test.path, com) @@ -184,7 +184,7 @@ func (s *SuiteGitDir) newFixtureDir(c *C, fixName string) (*fixture, *Dir) { f, ok := s.fixtures[fixName] c.Assert(ok, Equals, true) - d, err := New(f.path) + d, err := NewDir(f.path) c.Assert(err, IsNil) return &f, d diff --git a/repository.go b/repository.go index 635964f21..95588bfce 100644 --- a/repository.go +++ b/repository.go @@ -92,7 +92,7 @@ func isLocalRemote(endpoint common.Endpoint) bool { func (r *Repository) useLocalStorage(endpoint common.Endpoint) error { path := strings.TrimPrefix(string(endpoint), fileScheme) - dir, err := file.New(path) + dir, err := file.NewDir(path) if err != nil { return err } From 970d41e6f23b8bce6b740905a314b806b09ee4a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Tue, 14 Jun 2016 11:05:29 +0200 Subject: [PATCH 064/143] Sortcut local repo constructor to not use remotes The object storage is build directly in the repository ctor, instead of creating a remote and waiting for the user to pull it. --- objects_test.go | 7 ++-- repository.go | 80 +++++++++++++++++----------------------------- repository_test.go | 2 +- 3 files changed, 36 insertions(+), 53 deletions(-) diff --git a/objects_test.go b/objects_test.go index c48b76879..4beeeba12 100644 --- a/objects_test.go +++ b/objects_test.go @@ -4,9 +4,10 @@ import ( "io/ioutil" "time" - . "gopkg.in/check.v1" "gopkg.in/src-d/go-git.v3/core" "gopkg.in/src-d/go-git.v3/storage/memory" + + . "gopkg.in/check.v1" ) type ObjectsSuite struct { @@ -18,9 +19,11 @@ var _ = Suite(&ObjectsSuite{}) func (s *ObjectsSuite) SetUpTest(c *C) { var err error s.r, err = NewRepository(RepositoryFixture, nil) + c.Assert(err, IsNil) + s.r.Remotes["origin"].upSrv = &MockGitUploadPackService{} - s.r.Pull("origin", "refs/heads/master") + err = s.r.Pull("origin", "refs/heads/master") c.Assert(err, IsNil) } diff --git a/repository.go b/repository.go index 95588bfce..20c0fcdaf 100644 --- a/repository.go +++ b/repository.go @@ -32,66 +32,30 @@ type Repository struct { // NewRepository creates a new repository setting remote as default remote func NewRepository(url string, auth common.AuthMethod) (*Repository, error) { - var r *Remote - var err error - - if auth == nil { - r, err = NewRemote(url) - } else { - r, err = NewAuthenticatedRemote(url, auth) - } - - if err != nil { - return nil, err - } - repo := NewPlainRepository() - repo.Remotes[DefaultRemoteName] = r repo.URL = url - return repo, nil -} - -// NewPlainRepository creates a new repository without remotes -func NewPlainRepository() *Repository { - return &Repository{ - Remotes: map[string]*Remote{}, - Storage: memory.NewObjectStorage(), - } -} - -// Pull connect and fetch the given branch from the given remote, the branch -// should be provided with the full path not only the abbreviation, eg.: -// "refs/heads/master" -func (r *Repository) Pull(remoteName, branch string) (err error) { - remote, ok := r.Remotes[remoteName] - if !ok { - return fmt.Errorf("unable to find remote %q", remoteName) - } - - return r.setStorage(remote, branch) -} - -func (r *Repository) setStorage(remote *Remote, branch string) error { - if isLocalRemote(remote.Endpoint) { - return r.useLocalStorage(remote.Endpoint) + if isRemote(url) { + r, err := NewAuthenticatedRemote(url, auth) + repo.Remotes[DefaultRemoteName] = r + if err != nil { + return nil, err + } + } else { + repo.useLocalStorage(url) } - return r.fillStorageUsingFetch(remote, branch) + return repo, nil } const fileScheme = "file://" -func isLocalRemote(endpoint common.Endpoint) bool { - if strings.HasPrefix(string(endpoint), fileScheme) { - return true - } - - return false +func isRemote(url string) bool { + return !strings.HasPrefix(url, fileScheme) } -func (r *Repository) useLocalStorage(endpoint common.Endpoint) error { - path := strings.TrimPrefix(string(endpoint), fileScheme) +func (r *Repository) useLocalStorage(url string) error { + path := strings.TrimPrefix(url, fileScheme) dir, err := file.NewDir(path) if err != nil { return err @@ -116,7 +80,23 @@ func (r *Repository) useLocalStorage(endpoint common.Endpoint) error { return err } -func (r *Repository) fillStorageUsingFetch(remote *Remote, branch string) (err error) { +// NewPlainRepository creates a new repository without remotes +func NewPlainRepository() *Repository { + return &Repository{ + Remotes: map[string]*Remote{}, + Storage: memory.NewObjectStorage(), + } +} + +// Pull connect and fetch the given branch from the given remote, the branch +// should be provided with the full path not only the abbreviation, eg.: +// "refs/heads/master" +func (r *Repository) Pull(remoteName, branch string) (err error) { + remote, ok := r.Remotes[remoteName] + if !ok { + return fmt.Errorf("unable to find remote %q", remoteName) + } + if err := remote.Connect(); err != nil { return err } diff --git a/repository_test.go b/repository_test.go index 19f58f36b..7f28480a8 100644 --- a/repository_test.go +++ b/repository_test.go @@ -73,7 +73,7 @@ func (s *SuiteRepository) TestNewSeekableRepository(c *C) { c.Assert(err, IsNil, com) err = repo.PullDefault() - c.Assert(err, IsNil, com) + c.Assert(err, ErrorMatches, `unable to find remote "origin"`) c.Assert(repo.Storage, NotNil, com) c.Assert(repo.Storage, FitsTypeOf, &seekable.ObjectStorage{}, com) From 2f162c45ead44a530d0e6d7e4bf5e4a730666de0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Tue, 14 Jun 2016 11:10:39 +0200 Subject: [PATCH 065/143] update README and fix some errors in it --- README.md | 32 +++++++++++++++++++++++++------- 1 file changed, 25 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index c06e16b8d..3e16ea4fa 100644 --- a/README.md +++ b/README.md @@ -49,7 +49,10 @@ if err := r.PullDefault(); err != nil { panic(err) } -iter := r.Commits() +iter, err := r.Commits() +if err != nil { + panic(err) +} defer iter.Close() for { @@ -92,22 +95,37 @@ scheme and the path of the desired `.git` directory. To be able to use a git repository as a `file://` remote, you must first prepare it by running `git gc` on it. -When using this kind of remote, git objects are not cached in memory and all -operations require a read from the packfile on disk, this is much slower than -having all the repository contents in memory, but uses very little memory. +When using the `file://` scheme, no remote is created and there is no need to +pull as all operations are resolved by directly accessing the directory and its +packfile; this is much slower than having all the repository contents in memory, +but uses very little memory. ```go -// pushd /tmp ; git clone https://github.com/src-d/go-git ; popd +// git clone https://github.com/src-d/go-git /tmp/go-git r, err := git.NewRepository("file:///tmp/go-git/.git", nil) if err != nil { panic(err) } -if err := r.PullDefault(); err != nil { +iter, err := r.Commits() +if err != nil { panic(err) } +defer iter.Close() -// ... +for { + //the commits are not shorted in any special order + commit, err := iter.Next() + if err != nil { + if err == io.EOF { + break + } + + panic(err) + } + + fmt.Println(commit) +} ``` Retrieving the latest commit for a given repository: From e1bf74d17c9311ebcc2e594642841bf62cc4a6d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Tue, 14 Jun 2016 11:17:46 +0200 Subject: [PATCH 066/143] remove file scheme client --- clients/common.go | 2 - clients/common_test.go | 1 - clients/file/git_upload_pack.go | 70 ---------------------- clients/file/git_upload_pack_test.go | 87 ---------------------------- 4 files changed, 160 deletions(-) delete mode 100644 clients/file/git_upload_pack.go delete mode 100644 clients/file/git_upload_pack_test.go diff --git a/clients/common.go b/clients/common.go index 80650424f..b6da6568e 100644 --- a/clients/common.go +++ b/clients/common.go @@ -16,7 +16,6 @@ import ( "net/url" "gopkg.in/src-d/go-git.v3/clients/common" - "gopkg.in/src-d/go-git.v3/clients/file" "gopkg.in/src-d/go-git.v3/clients/http" "gopkg.in/src-d/go-git.v3/clients/ssh" ) @@ -26,7 +25,6 @@ var DefaultProtocols = map[string]common.GitUploadPackService{ "http": http.NewGitUploadPackService(), "https": http.NewGitUploadPackService(), "ssh": ssh.NewGitUploadPackService(), - "file": file.NewGitUploadPackService(), } // KnownProtocols holds the current set of known protocols. Initially diff --git a/clients/common_test.go b/clients/common_test.go index 0b8c65770..6bb872c43 100644 --- a/clients/common_test.go +++ b/clients/common_test.go @@ -44,7 +44,6 @@ func (s *SuiteCommon) TestNewGitUploadPackService(c *C) { {"http://github.com/src-d/go-git", false, "*http.GitUploadPackService"}, {"https://github.com/src-d/go-git", false, "*http.GitUploadPackService"}, {"ssh://github.com/src-d/go-git", false, "*ssh.GitUploadPackService"}, - {"file://" + s.dirFixturePath, false, "*file.GitUploadPackService"}, } for i, t := range tests { diff --git a/clients/file/git_upload_pack.go b/clients/file/git_upload_pack.go deleted file mode 100644 index a54831483..000000000 --- a/clients/file/git_upload_pack.go +++ /dev/null @@ -1,70 +0,0 @@ -package file - -import ( - "errors" - "fmt" - "io" - "strings" - - "gopkg.in/src-d/go-git.v3/clients/common" - "gopkg.in/src-d/go-git.v3/formats/file" -) - -var ( - ErrHeadSymRefNotFound = errors.New("HEAD symbolic reference not found") -) - -type GitUploadPackService struct { - dir *file.Dir -} - -func NewGitUploadPackService() *GitUploadPackService { - return &GitUploadPackService{} -} - -func (s *GitUploadPackService) Connect(url common.Endpoint) error { - var err error - - p := strings.TrimPrefix(string(url), "file://") - s.dir, err = file.NewDir(p) - if err != nil { - return err - } - - return nil -} - -func (s *GitUploadPackService) ConnectWithAuth(url common.Endpoint, - a common.AuthMethod) error { - - if a == nil { - return s.Connect(url) - } - - return common.ErrAuthNotSupported -} - -func (s *GitUploadPackService) Info() (*common.GitUploadPackInfo, error) { - i := common.NewGitUploadPackInfo() - var err error - - if i.Refs, err = s.dir.Refs(); err != nil { - return i, err - } - - if i.Capabilities, err = s.dir.Capabilities(); err != nil { - return i, err - } - - h := i.Capabilities.SymbolicReference("HEAD") - var ok bool - if i.Head, ok = i.Refs[h]; !ok { - return i, ErrHeadSymRefNotFound - } - - return i, nil -} - -func (s *GitUploadPackService) Fetch(r *common.GitUploadPackRequest) (io.ReadCloser, error) { - return nil, fmt.Errorf("fetch makes no sense for dir clients") -} diff --git a/clients/file/git_upload_pack_test.go b/clients/file/git_upload_pack_test.go deleted file mode 100644 index 9cf84eaf6..000000000 --- a/clients/file/git_upload_pack_test.go +++ /dev/null @@ -1,87 +0,0 @@ -package file - -import ( - "io/ioutil" - "os" - "path/filepath" - "testing" - - "gopkg.in/src-d/go-git.v3/clients/common" - "gopkg.in/src-d/go-git.v3/core" - "gopkg.in/src-d/go-git.v3/utils/tgz" - - . "gopkg.in/check.v1" -) - -func Test(t *testing.T) { TestingT(t) } - -type SuiteFileClient struct { - fixtureURL common.Endpoint - fixturePath string -} - -var _ = Suite(&SuiteFileClient{}) - -const fixtureTGZ = "../../formats/file/fixtures/spinnaker-gc.tgz" - -func (s *SuiteFileClient) SetUpSuite(c *C) { - var err error - - s.fixturePath, err = tgz.Extract(fixtureTGZ) - c.Assert(err, IsNil) - - s.fixtureURL = common.Endpoint("file://" + - filepath.Join(s.fixturePath, ".git")) -} - -func (s *SuiteFileClient) TearDownSuite(c *C) { - err := os.RemoveAll(s.fixturePath) - c.Assert(err, IsNil) -} - -func (s *SuiteFileClient) TestConnect(c *C) { - r := NewGitUploadPackService() - err := r.Connect(s.fixtureURL) - c.Assert(err, IsNil) -} - -func (s *SuiteFileClient) TestConnectWithAuth(c *C) { - r := NewGitUploadPackService() - err := r.ConnectWithAuth(s.fixtureURL, nil) - c.Assert(err, IsNil) - - r = NewGitUploadPackService() - a := dummyAuth{} - err = r.ConnectWithAuth(s.fixtureURL, a) - c.Assert(err, Equals, common.ErrAuthNotSupported) -} - -type dummyAuth struct{} - -func (d dummyAuth) Name() string { return "" } -func (d dummyAuth) String() string { return "" } - -func (s *SuiteFileClient) TestDefaultBranch(c *C) { - r := NewGitUploadPackService() - err := r.Connect(s.fixtureURL) - c.Assert(err, IsNil) - - i, err := r.Info() - c.Assert(err, IsNil) - c.Assert(i.Capabilities.SymbolicReference("HEAD"), Equals, "refs/heads/master") -} - -func (s *SuiteFileClient) NoTestFetch(c *C) { - r := NewGitUploadPackService() - c.Assert(r.Connect(s.fixtureURL), IsNil) - - req := &common.GitUploadPackRequest{} - req.Want(core.NewHash("6ecf0ef2c2dffb796033e5a02219af86ec6584e5")) - - reader, err := r.Fetch(req) - c.Assert(err, IsNil) - - b, err := ioutil.ReadAll(reader) - c.Assert(err, IsNil) - c.Assert(b, HasLen, 85374) -} From 856a39529a6f03e369672a41f404d7b721e9985f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Tue, 14 Jun 2016 14:45:20 +0200 Subject: [PATCH 067/143] Local respositories has now a new ctor This is, they are no longer identified by the scheme of the URL, but are created different from inception. --- repository.go | 36 +++++++++++++++++------------------- repository_test.go | 5 ++--- 2 files changed, 19 insertions(+), 22 deletions(-) diff --git a/repository.go b/repository.go index 20c0fcdaf..586586e99 100644 --- a/repository.go +++ b/repository.go @@ -35,35 +35,27 @@ func NewRepository(url string, auth common.AuthMethod) (*Repository, error) { repo := NewPlainRepository() repo.URL = url - if isRemote(url) { - r, err := NewAuthenticatedRemote(url, auth) - repo.Remotes[DefaultRemoteName] = r - if err != nil { - return nil, err - } - } else { - repo.useLocalStorage(url) + r, err := NewAuthenticatedRemote(url, auth) + repo.Remotes[DefaultRemoteName] = r + if err != nil { + return nil, err } return repo, nil } -const fileScheme = "file://" - -func isRemote(url string) bool { - return !strings.HasPrefix(url, fileScheme) -} +func NewRepositoryFromFS(url string) (*Repository, error) { + repo := NewPlainRepository() -func (r *Repository) useLocalStorage(url string) error { path := strings.TrimPrefix(url, fileScheme) dir, err := file.NewDir(path) if err != nil { - return err + return nil, err } packfile, err := dir.Packfile() if err != nil { - return err + return nil, err } idxfile, err := dir.Idxfile() @@ -71,13 +63,19 @@ func (r *Repository) useLocalStorage(url string) error { // if there is no idx file, just keep on, we will manage to create one // on the fly. if err != file.ErrIdxNotFound { - return err + return nil, err } } - r.Storage, err = seekable.New(packfile, idxfile) + repo.Storage, err = seekable.New(packfile, idxfile) - return err + return repo, nil +} + +const fileScheme = "file://" + +func isRemote(url string) bool { + return !strings.HasPrefix(url, fileScheme) } // NewPlainRepository creates a new repository without remotes diff --git a/repository_test.go b/repository_test.go index 7f28480a8..a93cb17c7 100644 --- a/repository_test.go +++ b/repository_test.go @@ -56,7 +56,6 @@ func (s *SuiteRepository) TestNewRepository(c *C) { r, err := NewRepository(RepositoryFixture, nil) c.Assert(err, IsNil) c.Assert(r.Remotes["origin"].Auth, IsNil) - c.Assert(r.URL, Equals, RepositoryFixture) } func (s *SuiteRepository) TestNewRepositoryWithAuth(c *C) { @@ -66,10 +65,10 @@ func (s *SuiteRepository) TestNewRepositoryWithAuth(c *C) { c.Assert(r.Remotes["origin"].Auth, Equals, auth) } -func (s *SuiteRepository) TestNewSeekableRepository(c *C) { +func (s *SuiteRepository) TestNewRepositoryFromFS(c *C) { for name, path := range s.dirFixturePaths { com := Commentf("dir fixture %q → %q\n", name, path) - repo, err := NewRepository("file://"+path, nil) + repo, err := NewRepositoryFromFS("file://" + path) c.Assert(err, IsNil, com) err = repo.PullDefault() From 6672649675205d52284d3d610266d0f4f11a2f09 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Tue, 14 Jun 2016 14:48:51 +0200 Subject: [PATCH 068/143] remove unused URL field form Repository --- blame_test.go | 1 - repository.go | 2 -- 2 files changed, 3 deletions(-) diff --git a/blame_test.go b/blame_test.go index 685f9dd0e..a96baffb4 100644 --- a/blame_test.go +++ b/blame_test.go @@ -20,7 +20,6 @@ func (s *BlameCommon) SetUpSuite(c *C) { s.repos = make(map[string]*Repository, 0) for _, fixRepo := range fixtureRepos { r := NewPlainRepository() - r.URL = fixRepo.url f, err := os.Open(fixRepo.packfile) c.Assert(err, IsNil) diff --git a/repository.go b/repository.go index 586586e99..6917111e8 100644 --- a/repository.go +++ b/repository.go @@ -27,13 +27,11 @@ const ( type Repository struct { Remotes map[string]*Remote Storage core.ObjectStorage - URL string } // NewRepository creates a new repository setting remote as default remote func NewRepository(url string, auth common.AuthMethod) (*Repository, error) { repo := NewPlainRepository() - repo.URL = url r, err := NewAuthenticatedRemote(url, auth) repo.Remotes[DefaultRemoteName] = r From 7aaf77743e895f2205a456faf97f877716b8cb35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Tue, 14 Jun 2016 14:56:25 +0200 Subject: [PATCH 069/143] move all git dir logic to seekable sotrage ctor --- repository.go | 36 ++++-------------------------------- repository_test.go | 2 +- storage/seekable/store.go | 25 +++++++++++++++++++++++++ 3 files changed, 30 insertions(+), 33 deletions(-) diff --git a/repository.go b/repository.go index 6917111e8..38d8ad49a 100644 --- a/repository.go +++ b/repository.go @@ -3,11 +3,9 @@ package git import ( "errors" "fmt" - "strings" "gopkg.in/src-d/go-git.v3/clients/common" "gopkg.in/src-d/go-git.v3/core" - "gopkg.in/src-d/go-git.v3/formats/file" "gopkg.in/src-d/go-git.v3/formats/packfile" "gopkg.in/src-d/go-git.v3/storage/memory" "gopkg.in/src-d/go-git.v3/storage/seekable" @@ -42,38 +40,12 @@ func NewRepository(url string, auth common.AuthMethod) (*Repository, error) { return repo, nil } -func NewRepositoryFromFS(url string) (*Repository, error) { +func NewRepositoryFromFS(path string) (*Repository, error) { repo := NewPlainRepository() + var err error + repo.Storage, err = seekable.NewFromPath(path) - path := strings.TrimPrefix(url, fileScheme) - dir, err := file.NewDir(path) - if err != nil { - return nil, err - } - - packfile, err := dir.Packfile() - if err != nil { - return nil, err - } - - idxfile, err := dir.Idxfile() - if err != nil { - // if there is no idx file, just keep on, we will manage to create one - // on the fly. - if err != file.ErrIdxNotFound { - return nil, err - } - } - - repo.Storage, err = seekable.New(packfile, idxfile) - - return repo, nil -} - -const fileScheme = "file://" - -func isRemote(url string) bool { - return !strings.HasPrefix(url, fileScheme) + return repo, err } // NewPlainRepository creates a new repository without remotes diff --git a/repository_test.go b/repository_test.go index a93cb17c7..e9bfa6a3a 100644 --- a/repository_test.go +++ b/repository_test.go @@ -68,7 +68,7 @@ func (s *SuiteRepository) TestNewRepositoryWithAuth(c *C) { func (s *SuiteRepository) TestNewRepositoryFromFS(c *C) { for name, path := range s.dirFixturePaths { com := Commentf("dir fixture %q → %q\n", name, path) - repo, err := NewRepositoryFromFS("file://" + path) + repo, err := NewRepositoryFromFS(path) c.Assert(err, IsNil, com) err = repo.PullDefault() diff --git a/storage/seekable/store.go b/storage/seekable/store.go index e110a53e3..99c9f74be 100644 --- a/storage/seekable/store.go +++ b/storage/seekable/store.go @@ -6,6 +6,7 @@ import ( "os" "gopkg.in/src-d/go-git.v3/core" + "gopkg.in/src-d/go-git.v3/formats/file" "gopkg.in/src-d/go-git.v3/formats/packfile" "gopkg.in/src-d/go-git.v3/storage/seekable/internal/index" ) @@ -25,6 +26,30 @@ type ObjectStorage struct { index index.Index } +func NewFromPath(path string) (s *ObjectStorage, err error) { + dir, err := file.NewDir(path) + if err != nil { + return nil, err + } + + packfile, err := dir.Packfile() + if err != nil { + return nil, err + } + + idxfile, err := dir.Idxfile() + if err != nil { + // if there is no idx file, just keep on, we will manage to create one + // on the fly. + if err != file.ErrIdxNotFound { + return nil, err + } + } + + return New(packfile, idxfile) + +} + // New returns a new ObjectStorage for the packfile at path. // // If no idx reader is provided, the index will be generated From e253e432afd0c9da17fb80d7a23bf293e9074eb0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Tue, 14 Jun 2016 15:00:36 +0200 Subject: [PATCH 070/143] fix documentation --- README.md | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 3e16ea4fa..0aba6f260 100644 --- a/README.md +++ b/README.md @@ -90,19 +90,18 @@ Date: 2015-12-11 17:57:10 +0100 +0100 ... ``` -Bare and non-bare local repositories are also supported using the `file://` -scheme and the path of the desired `.git` directory. To be able to use a git -repository as a `file://` remote, you must first prepare it by running `git gc` -on it. +Bare and non-bare local repositories are also supported using the +`NewRepositoryFromFS` constructor. To be able to use this functionality the +local repository has to be prepared beforehand by running `git gc` on it. -When using the `file://` scheme, no remote is created and there is no need to -pull as all operations are resolved by directly accessing the directory and its -packfile; this is much slower than having all the repository contents in memory, -but uses very little memory. +When accessing local repositories this way, no remote is created and there is no +need to pull as all operations are resolved by directly accessing the directory +and its packfile; this is much slower than having all the repository contents in +memory, but uses very little memory. ```go // git clone https://github.com/src-d/go-git /tmp/go-git -r, err := git.NewRepository("file:///tmp/go-git/.git", nil) +r, err := git.NewRepositoryForFS("/tmp/go-git/.git") if err != nil { panic(err) } From 61bde41811a876dbac36e1115ebe1e6033a801c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Tue, 14 Jun 2016 15:23:30 +0200 Subject: [PATCH 071/143] Make formats/file/dir an internal package to storage/seekable --- clients/common_test.go | 2 +- repository_test.go | 2 +- .../seekable/internal/gitdir}/dir.go | 22 +++++++++--------- .../seekable/internal/gitdir}/dir_test.go | 8 +++---- .../internal/gitdir}/fixtures/no-packfile.tgz | Bin .../gitdir}/fixtures/spinnaker-gc.tgz | Bin .../seekable/internal/gitdir}/refs.go | 14 +++++------ storage/seekable/store.go | 6 ++--- 8 files changed, 27 insertions(+), 27 deletions(-) rename {formats/file => storage/seekable/internal/gitdir}/dir.go (88%) rename {formats/file => storage/seekable/internal/gitdir}/dir_test.go (99%) rename {formats/file => storage/seekable/internal/gitdir}/fixtures/no-packfile.tgz (100%) rename {formats/file => storage/seekable/internal/gitdir}/fixtures/spinnaker-gc.tgz (100%) rename {formats/file => storage/seekable/internal/gitdir}/refs.go (88%) diff --git a/clients/common_test.go b/clients/common_test.go index 6bb872c43..577e5515e 100644 --- a/clients/common_test.go +++ b/clients/common_test.go @@ -20,7 +20,7 @@ type SuiteCommon struct { var _ = Suite(&SuiteCommon{}) -const fixtureTGZ = "../formats/file/fixtures/spinnaker-gc.tgz" +const fixtureTGZ = "../storage/seekable/internal/gitdir/fixtures/spinnaker-gc.tgz" func (s *SuiteCommon) SetUpSuite(c *C) { var err error diff --git a/repository_test.go b/repository_test.go index e9bfa6a3a..0b67e96ce 100644 --- a/repository_test.go +++ b/repository_test.go @@ -19,7 +19,7 @@ var dirFixtures = [...]struct { }{ { name: "spinnaker", - tgz: "formats/file/fixtures/spinnaker-gc.tgz", + tgz: "storage/seekable/internal/gitdir/fixtures/spinnaker-gc.tgz", }, } diff --git a/formats/file/dir.go b/storage/seekable/internal/gitdir/dir.go similarity index 88% rename from formats/file/dir.go rename to storage/seekable/internal/gitdir/dir.go index 8ed4fa65e..70b25460d 100644 --- a/formats/file/dir.go +++ b/storage/seekable/internal/gitdir/dir.go @@ -1,4 +1,4 @@ -package file +package gitdir import ( "errors" @@ -27,15 +27,15 @@ var ( // The Dir type represents a local git repository on disk. This // type is not zero-value-safe, use the New function to initialize it. -type Dir struct { +type GitDir struct { path string refs map[string]core.Hash } // New returns a Dir value ready to be used. The path argument must be // an existing git repository directory (e.g. "/foo/bar/.git"). -func NewDir(path string) (*Dir, error) { - d := &Dir{} +func New(path string) (*GitDir, error) { + d := &GitDir{} var err error d.path, err = cleanPath(path) @@ -59,13 +59,13 @@ func cleanPath(path string) (string, error) { return filepath.Clean(abs), nil } -func (d *Dir) isInvalidPath() bool { +func (d *GitDir) isInvalidPath() bool { return !strings.HasSuffix(d.path, suffix) } // Refs scans the git directory collecting references, which it returns. // Symbolic references are resolved and included in the output. -func (d *Dir) Refs() (map[string]core.Hash, error) { +func (d *GitDir) Refs() (map[string]core.Hash, error) { var err error if err = d.initRefsFromPackedRefs(); err != nil { @@ -80,7 +80,7 @@ func (d *Dir) Refs() (map[string]core.Hash, error) { } // Capabilities scans the git directory collection capabilities, which it returns. -func (d *Dir) Capabilities() (*common.Capabilities, error) { +func (d *GitDir) Capabilities() (*common.Capabilities, error) { c := common.NewCapabilities() err := d.addSymRefCapability(c) @@ -88,7 +88,7 @@ func (d *Dir) Capabilities() (*common.Capabilities, error) { return c, err } -func (d *Dir) addSymRefCapability(cap *common.Capabilities) (err error) { +func (d *GitDir) addSymRefCapability(cap *common.Capabilities) (err error) { f, err := os.Open(filepath.Join(d.path, "HEAD")) if err != nil { return err @@ -121,7 +121,7 @@ type ReadSeekCloser interface { } // Packfile returns the path of the packfile in the repository. -func (d *Dir) Packfile() (string, error) { +func (d *GitDir) Packfile() (string, error) { p := d.pattern(true) l, err := filepath.Glob(p) @@ -140,7 +140,7 @@ func (d *Dir) Packfile() (string, error) { return l[0], nil } -func (d *Dir) pattern(isPackfile bool) string { +func (d *GitDir) pattern(isPackfile bool) string { // packfile pattern: d.path + /objects/pack/pack-40hexs.pack // idx pattern: d.path + /objects/pack/pack-40hexs.idx base := filepath.Join(d.path, "objects") @@ -161,7 +161,7 @@ func extension(isPackfile bool) string { const filePattern = "pack-[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]" // Idxfile returns the path of the idx file in the repository. -func (d *Dir) Idxfile() (string, error) { +func (d *GitDir) Idxfile() (string, error) { p := d.pattern(false) l, err := filepath.Glob(p) diff --git a/formats/file/dir_test.go b/storage/seekable/internal/gitdir/dir_test.go similarity index 99% rename from formats/file/dir_test.go rename to storage/seekable/internal/gitdir/dir_test.go index 837696897..9fa44d4ed 100644 --- a/formats/file/dir_test.go +++ b/storage/seekable/internal/gitdir/dir_test.go @@ -1,4 +1,4 @@ -package file +package gitdir import ( "os" @@ -107,7 +107,7 @@ func (s *SuiteGitDir) TestNewDir(c *C) { } { com := Commentf("subtest %d", i) - d, err := NewDir(test.input) + d, err := New(test.input) c.Assert(err, Equals, test.err, com) if test.err == nil { c.Assert(d.path, Equals, test.path, com) @@ -180,11 +180,11 @@ func (s *SuiteGitDir) TestRefs(c *C) { } } -func (s *SuiteGitDir) newFixtureDir(c *C, fixName string) (*fixture, *Dir) { +func (s *SuiteGitDir) newFixtureDir(c *C, fixName string) (*fixture, *GitDir) { f, ok := s.fixtures[fixName] c.Assert(ok, Equals, true) - d, err := NewDir(f.path) + d, err := New(f.path) c.Assert(err, IsNil) return &f, d diff --git a/formats/file/fixtures/no-packfile.tgz b/storage/seekable/internal/gitdir/fixtures/no-packfile.tgz similarity index 100% rename from formats/file/fixtures/no-packfile.tgz rename to storage/seekable/internal/gitdir/fixtures/no-packfile.tgz diff --git a/formats/file/fixtures/spinnaker-gc.tgz b/storage/seekable/internal/gitdir/fixtures/spinnaker-gc.tgz similarity index 100% rename from formats/file/fixtures/spinnaker-gc.tgz rename to storage/seekable/internal/gitdir/fixtures/spinnaker-gc.tgz diff --git a/formats/file/refs.go b/storage/seekable/internal/gitdir/refs.go similarity index 88% rename from formats/file/refs.go rename to storage/seekable/internal/gitdir/refs.go index 8ce9bd45b..df41a8173 100644 --- a/formats/file/refs.go +++ b/storage/seekable/internal/gitdir/refs.go @@ -1,4 +1,4 @@ -package file +package gitdir import ( "bufio" @@ -29,7 +29,7 @@ const ( symRefPrefix = "ref: " ) -func (d *Dir) initRefsFromPackedRefs() (err error) { +func (d *GitDir) initRefsFromPackedRefs() (err error) { d.refs = make(map[string]core.Hash) path := filepath.Join(d.path, packedRefsPath) @@ -59,7 +59,7 @@ func (d *Dir) initRefsFromPackedRefs() (err error) { } // process lines from a packed-refs file -func (d *Dir) processLine(line string) error { +func (d *GitDir) processLine(line string) error { switch line[0] { case '#': // comment - ignore return nil @@ -81,11 +81,11 @@ func (d *Dir) processLine(line string) error { return nil } -func (d *Dir) addRefsFromRefDir() error { +func (d *GitDir) addRefsFromRefDir() error { return d.walkTree("refs") } -func (d *Dir) walkTree(relPath string) error { +func (d *GitDir) walkTree(relPath string) error { fs, err := ioutil.ReadDir(filepath.Join(d.path, relPath)) if err != nil { return err @@ -114,7 +114,7 @@ func (d *Dir) walkTree(relPath string) error { // ReadHashFile reads a single hash from a file. If a symbolic // reference is found instead of a hash, the reference is resolved and // the proper hash is returned. -func (d *Dir) readHashFile(path string) (core.Hash, error) { +func (d *GitDir) readHashFile(path string) (core.Hash, error) { b, err := ioutil.ReadFile(path) if err != nil { return core.ZeroHash, err @@ -132,7 +132,7 @@ func isSymRef(contents string) bool { return strings.HasPrefix(contents, symRefPrefix) } -func (d *Dir) resolveSymRef(symRef string) (core.Hash, error) { +func (d *GitDir) resolveSymRef(symRef string) (core.Hash, error) { ref := strings.TrimPrefix(symRef, symRefPrefix) hash, ok := d.refs[ref] diff --git a/storage/seekable/store.go b/storage/seekable/store.go index 99c9f74be..16b0e6146 100644 --- a/storage/seekable/store.go +++ b/storage/seekable/store.go @@ -6,8 +6,8 @@ import ( "os" "gopkg.in/src-d/go-git.v3/core" - "gopkg.in/src-d/go-git.v3/formats/file" "gopkg.in/src-d/go-git.v3/formats/packfile" + "gopkg.in/src-d/go-git.v3/storage/seekable/internal/gitdir" "gopkg.in/src-d/go-git.v3/storage/seekable/internal/index" ) @@ -27,7 +27,7 @@ type ObjectStorage struct { } func NewFromPath(path string) (s *ObjectStorage, err error) { - dir, err := file.NewDir(path) + dir, err := gitdir.New(path) if err != nil { return nil, err } @@ -41,7 +41,7 @@ func NewFromPath(path string) (s *ObjectStorage, err error) { if err != nil { // if there is no idx file, just keep on, we will manage to create one // on the fly. - if err != file.ErrIdxNotFound { + if err != gitdir.ErrIdxNotFound { return nil, err } } From 6d7c913f67020c65a12c8431a51f75594e1db751 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Tue, 14 Jun 2016 15:42:29 +0200 Subject: [PATCH 072/143] change package storage/seekable to storage/fs --- clients/common_test.go | 2 +- repository.go | 4 ++-- repository_test.go | 6 +++--- .../{seekable => fs}/internal/gitdir/dir.go | 0 .../internal/gitdir/dir_test.go | 0 .../internal/gitdir/fixtures/no-packfile.tgz | Bin .../internal/gitdir/fixtures/spinnaker-gc.tgz | Bin .../{seekable => fs}/internal/gitdir/refs.go | 0 .../{seekable => fs}/internal/index/index.go | 0 .../internal/index/index_test.go | 0 storage/{seekable => fs}/store.go | 18 +++++------------- storage/{seekable => fs}/store_test.go | 12 ++++++------ 12 files changed, 17 insertions(+), 25 deletions(-) rename storage/{seekable => fs}/internal/gitdir/dir.go (100%) rename storage/{seekable => fs}/internal/gitdir/dir_test.go (100%) rename storage/{seekable => fs}/internal/gitdir/fixtures/no-packfile.tgz (100%) rename storage/{seekable => fs}/internal/gitdir/fixtures/spinnaker-gc.tgz (100%) rename storage/{seekable => fs}/internal/gitdir/refs.go (100%) rename storage/{seekable => fs}/internal/index/index.go (100%) rename storage/{seekable => fs}/internal/index/index_test.go (100%) rename storage/{seekable => fs}/store.go (85%) rename storage/{seekable => fs}/store_test.go (94%) diff --git a/clients/common_test.go b/clients/common_test.go index 577e5515e..10a7dc7eb 100644 --- a/clients/common_test.go +++ b/clients/common_test.go @@ -20,7 +20,7 @@ type SuiteCommon struct { var _ = Suite(&SuiteCommon{}) -const fixtureTGZ = "../storage/seekable/internal/gitdir/fixtures/spinnaker-gc.tgz" +const fixtureTGZ = "../storage/fs/internal/gitdir/fixtures/spinnaker-gc.tgz" func (s *SuiteCommon) SetUpSuite(c *C) { var err error diff --git a/repository.go b/repository.go index 38d8ad49a..b1742cb6c 100644 --- a/repository.go +++ b/repository.go @@ -7,8 +7,8 @@ import ( "gopkg.in/src-d/go-git.v3/clients/common" "gopkg.in/src-d/go-git.v3/core" "gopkg.in/src-d/go-git.v3/formats/packfile" + "gopkg.in/src-d/go-git.v3/storage/fs" "gopkg.in/src-d/go-git.v3/storage/memory" - "gopkg.in/src-d/go-git.v3/storage/seekable" ) var ( @@ -43,7 +43,7 @@ func NewRepository(url string, auth common.AuthMethod) (*Repository, error) { func NewRepositoryFromFS(path string) (*Repository, error) { repo := NewPlainRepository() var err error - repo.Storage, err = seekable.NewFromPath(path) + repo.Storage, err = fs.NewFromPath(path) return repo, err } diff --git a/repository_test.go b/repository_test.go index 0b67e96ce..05f2722ae 100644 --- a/repository_test.go +++ b/repository_test.go @@ -7,7 +7,7 @@ import ( "gopkg.in/src-d/go-git.v3/clients/http" "gopkg.in/src-d/go-git.v3/core" - "gopkg.in/src-d/go-git.v3/storage/seekable" + "gopkg.in/src-d/go-git.v3/storage/fs" "gopkg.in/src-d/go-git.v3/utils/tgz" . "gopkg.in/check.v1" @@ -19,7 +19,7 @@ var dirFixtures = [...]struct { }{ { name: "spinnaker", - tgz: "storage/seekable/internal/gitdir/fixtures/spinnaker-gc.tgz", + tgz: "storage/fs/internal/gitdir/fixtures/spinnaker-gc.tgz", }, } @@ -75,7 +75,7 @@ func (s *SuiteRepository) TestNewRepositoryFromFS(c *C) { c.Assert(err, ErrorMatches, `unable to find remote "origin"`) c.Assert(repo.Storage, NotNil, com) - c.Assert(repo.Storage, FitsTypeOf, &seekable.ObjectStorage{}, com) + c.Assert(repo.Storage, FitsTypeOf, &fs.ObjectStorage{}, com) } } diff --git a/storage/seekable/internal/gitdir/dir.go b/storage/fs/internal/gitdir/dir.go similarity index 100% rename from storage/seekable/internal/gitdir/dir.go rename to storage/fs/internal/gitdir/dir.go diff --git a/storage/seekable/internal/gitdir/dir_test.go b/storage/fs/internal/gitdir/dir_test.go similarity index 100% rename from storage/seekable/internal/gitdir/dir_test.go rename to storage/fs/internal/gitdir/dir_test.go diff --git a/storage/seekable/internal/gitdir/fixtures/no-packfile.tgz b/storage/fs/internal/gitdir/fixtures/no-packfile.tgz similarity index 100% rename from storage/seekable/internal/gitdir/fixtures/no-packfile.tgz rename to storage/fs/internal/gitdir/fixtures/no-packfile.tgz diff --git a/storage/seekable/internal/gitdir/fixtures/spinnaker-gc.tgz b/storage/fs/internal/gitdir/fixtures/spinnaker-gc.tgz similarity index 100% rename from storage/seekable/internal/gitdir/fixtures/spinnaker-gc.tgz rename to storage/fs/internal/gitdir/fixtures/spinnaker-gc.tgz diff --git a/storage/seekable/internal/gitdir/refs.go b/storage/fs/internal/gitdir/refs.go similarity index 100% rename from storage/seekable/internal/gitdir/refs.go rename to storage/fs/internal/gitdir/refs.go diff --git a/storage/seekable/internal/index/index.go b/storage/fs/internal/index/index.go similarity index 100% rename from storage/seekable/internal/index/index.go rename to storage/fs/internal/index/index.go diff --git a/storage/seekable/internal/index/index_test.go b/storage/fs/internal/index/index_test.go similarity index 100% rename from storage/seekable/internal/index/index_test.go rename to storage/fs/internal/index/index_test.go diff --git a/storage/seekable/store.go b/storage/fs/store.go similarity index 85% rename from storage/seekable/store.go rename to storage/fs/store.go index 16b0e6146..ad5781fae 100644 --- a/storage/seekable/store.go +++ b/storage/fs/store.go @@ -1,4 +1,4 @@ -package seekable +package fs import ( "fmt" @@ -7,20 +7,12 @@ import ( "gopkg.in/src-d/go-git.v3/core" "gopkg.in/src-d/go-git.v3/formats/packfile" - "gopkg.in/src-d/go-git.v3/storage/seekable/internal/gitdir" - "gopkg.in/src-d/go-git.v3/storage/seekable/internal/index" + "gopkg.in/src-d/go-git.v3/storage/fs/internal/gitdir" + "gopkg.in/src-d/go-git.v3/storage/fs/internal/index" ) -// ObjectStorage is an implementation of core.ObjectStorage for seekable -// packfiles. -// -// The objects in the packfile are not stored in memory, instead -// every Get call will access the packfile, with some help from -// the packfile index and the fact that is seekable to speed -// things up. -// -// This means the memory footprint of this storage is much smaller -// than a memory.ObjectStorage, but it will also be probably slower. +// ObjectStorage is an implementation of core.ObjectStorage that +// stores data on disk. type ObjectStorage struct { path string index index.Index diff --git a/storage/seekable/store_test.go b/storage/fs/store_test.go similarity index 94% rename from storage/seekable/store_test.go rename to storage/fs/store_test.go index 67c5d0fce..a5cf93f7a 100644 --- a/storage/seekable/store_test.go +++ b/storage/fs/store_test.go @@ -1,4 +1,4 @@ -package seekable_test +package fs_test import ( "os" @@ -8,8 +8,8 @@ import ( "gopkg.in/src-d/go-git.v3/core" "gopkg.in/src-d/go-git.v3/formats/packfile" + "gopkg.in/src-d/go-git.v3/storage/fs" "gopkg.in/src-d/go-git.v3/storage/memory" - "gopkg.in/src-d/go-git.v3/storage/seekable" . "gopkg.in/check.v1" ) @@ -21,7 +21,7 @@ type SeekableSuite struct{} var _ = Suite(&SeekableSuite{}) func (s *SeekableSuite) TestNewFailNoData(c *C) { - _, err := seekable.New("", "") + _, err := fs.New("", "") c.Assert(err, ErrorMatches, ".* no such file or directory") } @@ -47,7 +47,7 @@ func (s *SeekableSuite) TestGetCompareWithMemoryStorage(c *C) { lastDot := strings.LastIndex(packfilePath, ".") idxPath := packfilePath[:lastDot] + ".idx" - sto, err := seekable.New(packfilePath, idxPath) + sto, err := fs.New(packfilePath, idxPath) c.Assert(err, IsNil, com) for _, typ := range [...]core.ObjectType{ @@ -103,7 +103,7 @@ func (s *SeekableSuite) TestIterCompareWithMemoryStorage(c *C) { lastDot := strings.LastIndex(packfilePath, ".") idxPath := packfilePath[:lastDot] + ".idx" - sto, err := seekable.New(packfilePath, idxPath) + sto, err := fs.New(packfilePath, idxPath) c.Assert(err, IsNil, com) for _, typ := range [...]core.ObjectType{ @@ -164,7 +164,7 @@ func (s *SeekableSuite) TestSet(c *C) { lastDot := strings.LastIndex(path, ".") idxPath := path[:lastDot] + ".idx" - sto, err := seekable.New(path, idxPath) + sto, err := fs.New(path, idxPath) c.Assert(err, IsNil) _, err = sto.Set(&memory.Object{}) From b4351ed065f2b3d984447ddae1a3ad6b65da5b68 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Wed, 15 Jun 2016 14:36:22 +0200 Subject: [PATCH 073/143] clean storage/fs --- repository.go | 2 +- storage/fs/internal/gitdir/dir.go | 34 ++++-- storage/fs/internal/gitdir/dir_test.go | 12 +- storage/fs/store.go | 34 +++--- storage/fs/store_test.go | 145 ++++++++++++++++++++++++- 5 files changed, 184 insertions(+), 43 deletions(-) diff --git a/repository.go b/repository.go index b1742cb6c..73dd50e9f 100644 --- a/repository.go +++ b/repository.go @@ -43,7 +43,7 @@ func NewRepository(url string, auth common.AuthMethod) (*Repository, error) { func NewRepositoryFromFS(path string) (*Repository, error) { repo := NewPlainRepository() var err error - repo.Storage, err = fs.NewFromPath(path) + repo.Storage, err = fs.New(path) return repo, err } diff --git a/storage/fs/internal/gitdir/dir.go b/storage/fs/internal/gitdir/dir.go index 70b25460d..0dbe7567f 100644 --- a/storage/fs/internal/gitdir/dir.go +++ b/storage/fs/internal/gitdir/dir.go @@ -2,7 +2,6 @@ package gitdir import ( "errors" - "fmt" "io" "io/ioutil" "os" @@ -19,20 +18,32 @@ const ( ) var ( - // ErrBadGitDirName is returned when the passed path is not a .git directory. + // ErrNotFound is returned by New when the path is not found. + ErrNotFound = errors.New("path not found") + // ErrBadGitDirName is returned by when the passed path is not a .git directory. ErrBadGitDirName = errors.New(`Bad git dir name (must end in ".git")`) - // ErrIdxNotFound is returned when the idx file is not found on the repository. + // ErrIdxNotFound is returned by Idxfile when the idx file is not found on the + // repository. ErrIdxNotFound = errors.New("idx file not found") + // ErrMoreThanOnePackfile is returned by Packfile when more than one packfile + // is found in the repository + ErrMoreThanOnePackfile = errors.New("more than one packfile found") + // ErrPackfileNotFound is returned by Packfile when the packfile is not found + // on the repository. + ErrPackfileNotFound = errors.New("packfile not found") + // ErrMoreThanOneIdxfile is returned by Idxfile when more than one idxfile + // is found in the repository + ErrMoreThanOneIdxfile = errors.New("more than one idxfile found") ) -// The Dir type represents a local git repository on disk. This +// The GitDir type represents a local git repository on disk. This // type is not zero-value-safe, use the New function to initialize it. type GitDir struct { path string refs map[string]core.Hash } -// New returns a Dir value ready to be used. The path argument must be +// New returns a GitDir value ready to be used. The path argument must be // an existing git repository directory (e.g. "/foo/bar/.git"). func New(path string) (*GitDir, error) { d := &GitDir{} @@ -47,6 +58,13 @@ func New(path string) (*GitDir, error) { return nil, ErrBadGitDirName } + if _, err := os.Stat(path); err != nil { + if os.IsNotExist(err) { + return nil, ErrNotFound + } + return nil, err + } + return d, nil } @@ -130,11 +148,11 @@ func (d *GitDir) Packfile() (string, error) { } if len(l) == 0 { - return "", fmt.Errorf("packfile not found") + return "", ErrPackfileNotFound } if len(l) > 1 { - return "", fmt.Errorf("found more than one packfile") + return "", ErrMoreThanOnePackfile } return l[0], nil @@ -174,7 +192,7 @@ func (d *GitDir) Idxfile() (string, error) { } if len(l) > 1 { - return "", fmt.Errorf("found more than one idxfile") + return "", ErrMoreThanOneIdxfile } return l[0], nil diff --git a/storage/fs/internal/gitdir/dir_test.go b/storage/fs/internal/gitdir/dir_test.go index 9fa44d4ed..b32900443 100644 --- a/storage/fs/internal/gitdir/dir_test.go +++ b/storage/fs/internal/gitdir/dir_test.go @@ -82,11 +82,10 @@ func (s *SuiteGitDir) TearDownSuite(c *C) { } } -func (s *SuiteGitDir) TestNewDir(c *C) { +func (s *SuiteGitDir) TestNewErrors(c *C) { for i, test := range [...]struct { input string err error - path string }{ { input: "", @@ -101,17 +100,14 @@ func (s *SuiteGitDir) TestNewDir(c *C) { input: "/tmp/foo", err: ErrBadGitDirName, }, { - input: "/tmp/../tmp/foo/.git", - path: "/tmp/foo/.git", + input: "./foo/.git", + err: ErrNotFound, }, } { com := Commentf("subtest %d", i) - d, err := New(test.input) + _, err := New(test.input) c.Assert(err, Equals, test.err, com) - if test.err == nil { - c.Assert(d.path, Equals, test.path, com) - } } } diff --git a/storage/fs/store.go b/storage/fs/store.go index ad5781fae..8f491a4d7 100644 --- a/storage/fs/store.go +++ b/storage/fs/store.go @@ -18,35 +18,18 @@ type ObjectStorage struct { index index.Index } -func NewFromPath(path string) (s *ObjectStorage, err error) { +// New returns a new ObjectStorage for the git directory at the specified path. +func New(path string) (s *ObjectStorage, err error) { dir, err := gitdir.New(path) if err != nil { return nil, err } - packfile, err := dir.Packfile() + packfilePath, err := dir.Packfile() if err != nil { return nil, err } - idxfile, err := dir.Idxfile() - if err != nil { - // if there is no idx file, just keep on, we will manage to create one - // on the fly. - if err != gitdir.ErrIdxNotFound { - return nil, err - } - } - - return New(packfile, idxfile) - -} - -// New returns a new ObjectStorage for the packfile at path. -// -// If no idx reader is provided, the index will be generated -// by reading the packfile. -func New(packfilePath, idxPath string) (s *ObjectStorage, err error) { packfile, err := os.Open(packfilePath) if err != nil { return nil, err @@ -59,7 +42,16 @@ func New(packfilePath, idxPath string) (s *ObjectStorage, err error) { } }() - idxfile, err := os.Open(idxPath) + idxfilePath, err := dir.Idxfile() + if err != nil { + // if there is no idx file, just keep on, we will manage to create one + // on the fly. + if err != gitdir.ErrIdxNotFound { + return nil, err + } + } + + idxfile, err := os.Open(idxfilePath) if err != nil { return nil, err } diff --git a/storage/fs/store_test.go b/storage/fs/store_test.go index a5cf93f7a..bf1dc9c1b 100644 --- a/storage/fs/store_test.go +++ b/storage/fs/store_test.go @@ -1,15 +1,17 @@ package fs_test import ( + "fmt" "os" - "sort" - "strings" + "reflect" "testing" "gopkg.in/src-d/go-git.v3/core" "gopkg.in/src-d/go-git.v3/formats/packfile" "gopkg.in/src-d/go-git.v3/storage/fs" + "gopkg.in/src-d/go-git.v3/storage/fs/internal/gitdir" "gopkg.in/src-d/go-git.v3/storage/memory" + "gopkg.in/src-d/go-git.v3/utils/tgz" . "gopkg.in/check.v1" ) @@ -21,10 +23,143 @@ type SeekableSuite struct{} var _ = Suite(&SeekableSuite{}) func (s *SeekableSuite) TestNewFailNoData(c *C) { - _, err := fs.New("", "") - c.Assert(err, ErrorMatches, ".* no such file or directory") + _, err := fs.New("not_found/.git") + c.Assert(err, Equals, gitdir.ErrNotFound) + + _, err = fs.New("not_found") + c.Assert(err, Equals, gitdir.ErrBadGitDirName) } +func (s *SeekableSuite) TestGetCompareWithMemoryStorage(c *C) { + for i, tgzPath := range [...]string{ + "internal/gitdir/fixtures/spinnaker-gc.tgz", + } { + com := Commentf("at subtest %d, (tgz = %q)", i, tgzPath) + + path, err := tgz.Extract(tgzPath) + c.Assert(err, IsNil, com) + com = Commentf("at subtest %d, (tgz = %q, extracted to %q)", + i, tgzPath, path) + path = path + "/.git" + + memSto, err := memStorageFromGitDir(path) + c.Assert(err, IsNil, com) + + fsSto, err := fs.New(path) + c.Assert(err, IsNil, com) + + equal, reason, err := equalsStorages(memSto, fsSto) + c.Assert(err, IsNil, com) + c.Assert(equal, Equals, true, + Commentf("%s - %s\n", com.CheckCommentString(), reason)) + + err = os.RemoveAll(path) + c.Assert(err, IsNil, com) + } +} + +func memStorageFromGitDir(path string) (*memory.ObjectStorage, error) { + dir, err := gitdir.New(path) + if err != nil { + return nil, err + } + + fmt.Println(path) + packfilePath, err := dir.Packfile() + if err != nil { + return nil, err + } + + f, err := os.Open(packfilePath) + if err != nil { + return nil, err + } + + sto := memory.NewObjectStorage() + d := packfile.NewDecoder(f) + _, err = d.Decode(sto) + if err != nil { + return nil, err + } + + err = f.Close() + if err != nil { + return nil, err + } + + return sto, nil +} + +func equalsStorages(a, b core.ObjectStorage) (bool, string, error) { + for _, typ := range [...]core.ObjectType{ + core.CommitObject, + core.TreeObject, + core.BlobObject, + core.TagObject, + } { + iter, err := a.Iter(typ) + if err != nil { + return false, "", err + } + + for { + ao, err := iter.Next() + if err != nil { + iter.Close() + break + } + + bo, err := b.Get(ao.Hash()) + if err != nil { + return false, "", err + } + + equal, reason, err := equalsObjects(ao, bo) + if !equal || err != nil { + return equal, reason, err + } + } + + iter.Close() + } + + return true, "", nil +} + +func equalsObjects(a, b core.Object) (bool, string, error) { + ah := a.Hash() + bh := b.Hash() + if ah != bh { + return false, fmt.Sprintf("object hashes differ: %s and %s\n", + ah, bh), nil + } + + atyp := a.Type() + btyp := b.Type() + if atyp != btyp { + return false, fmt.Sprintf("object types differ: %d and %d\n", + atyp, btyp), nil + } + + asz := a.Size() + bsz := b.Size() + if asz != bsz { + return false, fmt.Sprintf("object sizes differ: %d and %d\n", + asz, bsz), nil + } + + ac := a.Content() + if ac != nil { + bc := b.Content() + if !reflect.DeepEqual(ac, bc) { + return false, fmt.Sprintf("object contents differ"), nil + } + } + + return true, "", nil +} + +/* func (s *SeekableSuite) TestGetCompareWithMemoryStorage(c *C) { for i, packfilePath := range [...]string{ "../../formats/packfile/fixtures/spinnaker-spinnaker.pack", @@ -82,7 +217,6 @@ func (s *SeekableSuite) TestGetCompareWithMemoryStorage(c *C) { } } } - func (s *SeekableSuite) TestIterCompareWithMemoryStorage(c *C) { for i, packfilePath := range [...]string{ "../../formats/packfile/fixtures/spinnaker-spinnaker.pack", @@ -170,3 +304,4 @@ func (s *SeekableSuite) TestSet(c *C) { _, err = sto.Set(&memory.Object{}) c.Assert(err, ErrorMatches, "set operation not permitted") } +*/ From d0e472d9998544c58033b9221ca9e364e6d48c3f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Wed, 15 Jun 2016 19:27:55 +0200 Subject: [PATCH 074/143] overall storage/fs clean --- .../fixtures/alcortesm-binary-relations.idx | Bin 3312 -> 0 bytes repository_test.go | 3 +- storage/fs/internal/gitdir/dir.go | 16 +- storage/fs/internal/gitdir/dir_test.go | 15 +- .../fixtures/alcortesm-binary-relations.tgz | Bin 0 -> 21884 bytes .../gitdir/fixtures/spinnaker-no-idx.tgz | Bin 0 -> 1224320 bytes storage/fs/internal/index/index.go | 5 - storage/fs/store.go | 82 +++--- storage/fs/store_test.go | 247 ++++++++++-------- 9 files changed, 188 insertions(+), 180 deletions(-) delete mode 100644 formats/packfile/fixtures/alcortesm-binary-relations.idx create mode 100644 storage/fs/internal/gitdir/fixtures/alcortesm-binary-relations.tgz create mode 100644 storage/fs/internal/gitdir/fixtures/spinnaker-no-idx.tgz diff --git a/formats/packfile/fixtures/alcortesm-binary-relations.idx b/formats/packfile/fixtures/alcortesm-binary-relations.idx deleted file mode 100644 index d0a8d1cad4a23232e66db0c80e53ba6daa32c2fa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3312 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 H02l!PN>xbt literal 0 HcmV?d00001 diff --git a/storage/fs/internal/gitdir/fixtures/spinnaker-no-idx.tgz b/storage/fs/internal/gitdir/fixtures/spinnaker-no-idx.tgz new file mode 100644 index 0000000000000000000000000000000000000000..2db56eb93fe2ae958e0ae3c9ca539c16f7a831ba GIT binary patch literal 1224320 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

      A?o-ODW6%d0796wF#{J&NE+( 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%0A_-ExOoR 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 z

      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

      E0!5xmL>G?*wH(cy- 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≤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 R$ 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�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

      qC-8c!)x`f7^ciA8emcpq0D=dz}2%LatEUl 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

      ?tKzC+e%REi#eU2Q3{DWSSOw9nrB@dv&4dFb0K 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 literal 0 HcmV?d00001 diff --git a/storage/fs/internal/index/index.go b/storage/fs/internal/index/index.go index df0bd8ebe..776c9d13c 100644 --- a/storage/fs/internal/index/index.go +++ b/storage/fs/internal/index/index.go @@ -12,11 +12,6 @@ import ( // the packfile. type Index map[core.Hash]int64 -// NewFromPackfile returns a new index from a packfile file reader. -func NewFromPackfile(packfile io.Reader) (Index, error) { - return nil, fmt.Errorf("not implemented yet") -} - // NewFromIdx returns a new index from an idx file reader. func NewFromIdx(r io.Reader) (Index, error) { d := idxfile.NewDecoder(r) diff --git a/storage/fs/store.go b/storage/fs/store.go index 8f491a4d7..76557339e 100644 --- a/storage/fs/store.go +++ b/storage/fs/store.go @@ -2,7 +2,6 @@ package fs import ( "fmt" - "io" "os" "gopkg.in/src-d/go-git.v3/core" @@ -11,82 +10,61 @@ import ( "gopkg.in/src-d/go-git.v3/storage/fs/internal/index" ) -// ObjectStorage is an implementation of core.ObjectStorage that -// stores data on disk. +// ObjectStorage is an implementation of core.ObjectStorage that stores +// data on disk in the standard git format (this is, the .git directory). +// +// Zero values of this type are not safe to use, see the New function below. +// +// Currently only reads are supported, no writting. +// +// Also values from this type are not yet able to track changes on disk, this is, +// if the git repository changes, the fields of this value will be outdated. type ObjectStorage struct { - path string + dir *gitdir.GitDir index index.Index } // New returns a new ObjectStorage for the git directory at the specified path. -func New(path string) (s *ObjectStorage, err error) { - dir, err := gitdir.New(path) - if err != nil { - return nil, err - } +func New(path string) (*ObjectStorage, error) { + sto := &ObjectStorage{} - packfilePath, err := dir.Packfile() + var err error + sto.dir, err = gitdir.New(path) if err != nil { return nil, err } - packfile, err := os.Open(packfilePath) + idxfile, err := sto.dir.Idxfile() if err != nil { return nil, err } - defer func() { - errClose := packfile.Close() - if err == nil { - err = errClose - } - }() + sto.index, err = buildIndex(idxfile) - idxfilePath, err := dir.Idxfile() - if err != nil { - // if there is no idx file, just keep on, we will manage to create one - // on the fly. - if err != gitdir.ErrIdxNotFound { - return nil, err - } - } + return sto, nil +} - idxfile, err := os.Open(idxfilePath) +func buildIndex(path string) (index.Index, error) { + f, err := os.Open(path) if err != nil { return nil, err } defer func() { - errClose := idxfile.Close() + errClose := f.Close() if err == nil { err = errClose } }() - index, err := buildIndex(packfile, idxfile) - if err != nil { - return nil, err - } - - return &ObjectStorage{ - path: packfilePath, - index: index, - }, nil -} - -func buildIndex(packfile io.Reader, idx io.Reader) (index.Index, error) { - if idx != nil { - return index.NewFromIdx(idx) - } - - return index.NewFromPackfile(packfile) + return index.NewFromIdx(f) } // Set adds a new object to the storage. // This method always returns an error as this particular // implementation is read only. func (s *ObjectStorage) Set(core.Object) (core.Hash, error) { - return core.ZeroHash, fmt.Errorf("set operation not permitted") + return core.ZeroHash, fmt.Errorf("not implemented yet") } // Get returns the object with the given hash, by searching the @@ -97,7 +75,12 @@ func (s *ObjectStorage) Get(h core.Hash) (core.Object, error) { return nil, err } - f, err := os.Open(s.path) + path, err := s.dir.Packfile() + if err != nil { + return nil, err + } + + f, err := os.Open(path) if err != nil { return nil, err } @@ -143,7 +126,12 @@ func (s *ObjectStorage) ByHash(hash core.Hash) (core.Object, error) { // Given the nature of this storage, it also returns objects that // have not yet been seen. func (s *ObjectStorage) ByOffset(offset int64) (core.Object, error) { - f, err := os.Open(s.path) + path, err := s.dir.Packfile() + if err != nil { + return nil, err + } + + f, err := os.Open(path) if err != nil { return nil, err } diff --git a/storage/fs/store_test.go b/storage/fs/store_test.go index bf1dc9c1b..2ccbc6a7c 100644 --- a/storage/fs/store_test.go +++ b/storage/fs/store_test.go @@ -4,6 +4,7 @@ import ( "fmt" "os" "reflect" + "sort" "testing" "gopkg.in/src-d/go-git.v3/core" @@ -18,29 +19,80 @@ import ( func Test(t *testing.T) { TestingT(t) } -type SeekableSuite struct{} +type FsSuite struct{} -var _ = Suite(&SeekableSuite{}) +var _ = Suite(&FsSuite{}) -func (s *SeekableSuite) TestNewFailNoData(c *C) { +var fixtures map[string]string // id to git dir paths (see initFixtures below) + +func fixture(id string, c *C) string { + path, ok := fixtures[id] + c.Assert(ok, Equals, true, Commentf("fixture %q not found", id)) + + return path +} + +var initFixtures = [...]struct { + id string + tgz string +}{ + { + id: "spinnaker", + tgz: "internal/gitdir/fixtures/spinnaker-gc.tgz", + }, { + id: "spinnaker-no-idx", + tgz: "internal/gitdir/fixtures/spinnaker-no-idx.tgz", + }, { + id: "binary-relations", + tgz: "internal/gitdir/fixtures/alcortesm-binary-relations.tgz", + }, +} + +func (s *FsSuite) SetUpSuite(c *C) { + fixtures = make(map[string]string, len(initFixtures)) + for _, init := range initFixtures { + path, err := tgz.Extract(init.tgz) + c.Assert(err, IsNil, Commentf("error extracting %s\n", init.tgz)) + fixtures[init.id] = path + } +} + +func (s *FsSuite) TearDownSuite(c *C) { + for _, v := range fixtures { + err := os.RemoveAll(v) + c.Assert(err, IsNil, Commentf("error removing fixture %q\n", v)) + } +} + +func (s *FsSuite) TestNewErrorNotFound(c *C) { _, err := fs.New("not_found/.git") c.Assert(err, Equals, gitdir.ErrNotFound) +} - _, err = fs.New("not_found") - c.Assert(err, Equals, gitdir.ErrBadGitDirName) +func (s *FsSuite) TestNewIdxError(c *C) { + path := fixture("spinnaker-no-idx", c) + _, err := fs.New(path) + c.Assert(err, Equals, gitdir.ErrIdxNotFound) } -func (s *SeekableSuite) TestGetCompareWithMemoryStorage(c *C) { - for i, tgzPath := range [...]string{ - "internal/gitdir/fixtures/spinnaker-gc.tgz", - } { - com := Commentf("at subtest %d, (tgz = %q)", i, tgzPath) +func (s *FsSuite) TestGetHashNotFound(c *C) { + path := fixture("spinnaker", c) - path, err := tgz.Extract(tgzPath) - c.Assert(err, IsNil, com) - com = Commentf("at subtest %d, (tgz = %q, extracted to %q)", - i, tgzPath, path) - path = path + "/.git" + sto, err := fs.New(path) + c.Assert(err, IsNil) + + _, err = sto.Get(core.ZeroHash) + c.Assert(err, Equals, core.ErrObjectNotFound) +} + +func (s *FsSuite) TestGetCompareWithMemoryStorage(c *C) { + for i, fixId := range [...]string{ + "spinnaker", + "binary-relations", + } { + path := fixture(fixId, c) + com := Commentf("at subtest %d, (fixture id = %q, extracted to %q)", + i, fixId, path) memSto, err := memStorageFromGitDir(path) c.Assert(err, IsNil, com) @@ -52,9 +104,6 @@ func (s *SeekableSuite) TestGetCompareWithMemoryStorage(c *C) { c.Assert(err, IsNil, com) c.Assert(equal, Equals, true, Commentf("%s - %s\n", com.CheckCommentString(), reason)) - - err = os.RemoveAll(path) - c.Assert(err, IsNil, com) } } @@ -64,7 +113,6 @@ func memStorageFromGitDir(path string) (*memory.ObjectStorage, error) { return nil, err } - fmt.Println(path) packfilePath, err := dir.Packfile() if err != nil { return nil, err @@ -119,8 +167,6 @@ func equalsStorages(a, b core.ObjectStorage) (bool, string, error) { return equal, reason, err } } - - iter.Close() } return true, "", nil @@ -159,30 +205,20 @@ func equalsObjects(a, b core.Object) (bool, string, error) { return true, "", nil } -/* -func (s *SeekableSuite) TestGetCompareWithMemoryStorage(c *C) { - for i, packfilePath := range [...]string{ - "../../formats/packfile/fixtures/spinnaker-spinnaker.pack", - "../../formats/packfile/fixtures/alcortesm-binary-relations.pack", - "../../formats/packfile/fixtures/git-fixture.ref-delta", +func (s *FsSuite) TestIterCompareWithMemoryStorage(c *C) { + for i, fixId := range [...]string{ + "spinnaker", + "binary-relations", } { - com := Commentf("at subtest %d", i) - - memSto := memory.NewObjectStorage() - f, err := os.Open(packfilePath) - c.Assert(err, IsNil, com) - d := packfile.NewDecoder(f) - _, err = d.Decode(memSto) - c.Assert(err, IsNil, com) + path := fixture(fixId, c) + com := Commentf("at subtest %d, (fixture id = %q, extracted to %q)", + i, fixId, path) - err = f.Close() + memSto, err := memStorageFromDirPath(path) c.Assert(err, IsNil, com) - lastDot := strings.LastIndex(packfilePath, ".") - idxPath := packfilePath[:lastDot] + ".idx" - - sto, err := fs.New(packfilePath, idxPath) + fsSto, err := fs.New(path) c.Assert(err, IsNil, com) for _, typ := range [...]core.ObjectType{ @@ -191,73 +227,48 @@ func (s *SeekableSuite) TestGetCompareWithMemoryStorage(c *C) { core.BlobObject, core.TagObject, } { - iter, err := memSto.Iter(typ) + + memObjs, err := iterToSortedSlice(memSto, typ) c.Assert(err, IsNil, com) - for { - memObject, err := iter.Next() - if err != nil { - iter.Close() - break - } - - obt, err := sto.Get(memObject.Hash()) - c.Assert(err, IsNil, com) - - c.Assert(obt.Type(), Equals, memObject.Type(), com) - c.Assert(obt.Size(), Equals, memObject.Size(), com) - if memObject.Content() != nil { - c.Assert(obt.Content(), DeepEquals, memObject.Content(), - com) - } - c.Assert(obt.Hash(), Equals, memObject.Hash(), com) - } + fsObjs, err := iterToSortedSlice(fsSto, typ) + c.Assert(err, IsNil, com) - iter.Close() + for i, o := range memObjs { + c.Assert(fsObjs[i].Hash(), Equals, o.Hash(), com) + } } } } -func (s *SeekableSuite) TestIterCompareWithMemoryStorage(c *C) { - for i, packfilePath := range [...]string{ - "../../formats/packfile/fixtures/spinnaker-spinnaker.pack", - "../../formats/packfile/fixtures/alcortesm-binary-relations.pack", - "../../formats/packfile/fixtures/git-fixture.ref-delta", - } { - com := Commentf("at subtest %d", i) - - memSto := memory.NewObjectStorage() - f, err := os.Open(packfilePath) - c.Assert(err, IsNil, com) - d := packfile.NewDecoder(f) - _, err = d.Decode(memSto) - c.Assert(err, IsNil, com) - err = f.Close() - c.Assert(err, IsNil, com) - lastDot := strings.LastIndex(packfilePath, ".") - idxPath := packfilePath[:lastDot] + ".idx" - - sto, err := fs.New(packfilePath, idxPath) - c.Assert(err, IsNil, com) +func memStorageFromDirPath(path string) (*memory.ObjectStorage, error) { + dir, err := gitdir.New(path) + if err != nil { + return nil, err + } - for _, typ := range [...]core.ObjectType{ - core.CommitObject, - core.TreeObject, - core.BlobObject, - core.TagObject, - } { + packfilePath, err := dir.Packfile() + if err != nil { + return nil, err + } - memObjs, err := iterToSortedSlice(memSto, typ) - c.Assert(err, IsNil, com) + sto := memory.NewObjectStorage() + f, err := os.Open(packfilePath) + if err != nil { + return nil, err + } - seekableObjs, err := iterToSortedSlice(sto, typ) - c.Assert(err, IsNil, com) + d := packfile.NewDecoder(f) + _, err = d.Decode(sto) + if err != nil { + return nil, err + } - for i, exp := range memObjs { - c.Assert(seekableObjs[i].Hash(), Equals, exp.Hash(), com) - } - } + if err = f.Close(); err != nil { + return nil, err } + + return sto, nil } func iterToSortedSlice(storage core.ObjectStorage, typ core.ObjectType) ([]core.Object, @@ -278,8 +289,6 @@ func iterToSortedSlice(storage core.ObjectStorage, typ core.ObjectType) ([]core. r = append(r, obj) } - iter.Close() - sort.Sort(byHash(r)) return r, nil @@ -293,15 +302,45 @@ func (a byHash) Less(i, j int) bool { return a[i].Hash().String() < a[j].Hash().String() } -func (s *SeekableSuite) TestSet(c *C) { - path := "../../formats/packfile/fixtures/spinnaker-spinnaker.pack" - lastDot := strings.LastIndex(path, ".") - idxPath := path[:lastDot] + ".idx" +func (s *FsSuite) TestSet(c *C) { + path := fixture("spinnaker", c) - sto, err := fs.New(path, idxPath) + sto, err := fs.New(path) c.Assert(err, IsNil) _, err = sto.Set(&memory.Object{}) - c.Assert(err, ErrorMatches, "set operation not permitted") + c.Assert(err, ErrorMatches, "not implemented yet") +} + +func (s *FsSuite) TestByHash(c *C) { + path := fixture("spinnaker", c) + + sto, err := fs.New(path) + c.Assert(err, IsNil) + + for _, typ := range [...]core.ObjectType{ + core.CommitObject, + core.TreeObject, + core.BlobObject, + core.TagObject, + } { + + iter, err := sto.Iter(typ) + c.Assert(err, IsNil) + + for { + o, err := iter.Next() + if err != nil { + iter.Close() + break + } + + oByHash, err := sto.ByHash(o.Hash()) + c.Assert(err, IsNil) + + equal, reason, err := equalsObjects(o, oByHash) + c.Assert(err, IsNil) + c.Assert(equal, Equals, true, Commentf("%s", reason)) + } + } } -*/ From c7dd0222b4ce8357e7ab5ce8967b39c6a94df97f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Fri, 17 Jun 2016 09:46:19 +0200 Subject: [PATCH 075/143] more cleaning --- README.md | 5 +- clients/common/common.go | 6 +-- repository.go | 18 +++++-- storage/fs/internal/gitdir/dir.go | 37 ++++++-------- storage/fs/internal/gitdir/dir_test.go | 71 ++++++++++++-------------- storage/fs/internal/gitdir/refs.go | 4 +- storage/fs/internal/index/index.go | 18 +++---- storage/fs/store.go | 22 ++++---- utils/tgz/tgz.go | 28 +++------- utils/tgz/tgz_test.go | 3 -- 10 files changed, 95 insertions(+), 117 deletions(-) diff --git a/README.md b/README.md index 0aba6f260..62f333ca4 100644 --- a/README.md +++ b/README.md @@ -100,8 +100,11 @@ and its packfile; this is much slower than having all the repository contents in memory, but uses very little memory. ```go +// Prepare the repository as follows // git clone https://github.com/src-d/go-git /tmp/go-git -r, err := git.NewRepositoryForFS("/tmp/go-git/.git") +// pushd /tmp/go-git ; git gc ; popd + +r, err := git.NewRepositoryFromFS("/tmp/go-git") if err != nil { panic(err) } diff --git a/clients/common/common.go b/clients/common/common.go index 4aa2be4ea..a986e75ca 100644 --- a/clients/common/common.go +++ b/clients/common/common.go @@ -241,11 +241,7 @@ func (r *GitUploadPackInfo) decodeHeaderLine(line string) { } func (r *GitUploadPackInfo) isValidLine(line string) bool { - if line[0] == '#' { - return false - } - - return true + return line[0] != '#' } func (r *GitUploadPackInfo) readLine(line string) { diff --git a/repository.go b/repository.go index 73dd50e9f..27828f3b5 100644 --- a/repository.go +++ b/repository.go @@ -40,8 +40,20 @@ func NewRepository(url string, auth common.AuthMethod) (*Repository, error) { return repo, nil } +// NewRepositoryFromFS creates a new repository from an standard git +// repository on disk. +// +// Repositories created like this don't hold a local copy of the +// original repository objects, instead all queries are resolved by +// looking at the original repository packfile. This is very cheap in +// terms of memory and allows to process repositories bigger than your +// memory. +// +// To be able to use git repositories this way, you must run "git gc" on +// them beforehand. func NewRepositoryFromFS(path string) (*Repository, error) { repo := NewPlainRepository() + var err error repo.Storage, err = fs.New(path) @@ -90,11 +102,9 @@ func (r *Repository) Pull(remoteName, branch string) (err error) { defer checkClose(reader, &err) d := packfile.NewDecoder(reader) - if _, err = d.Decode(r.Storage); err != nil { - return err - } + _, err = d.Decode(r.Storage) - return nil + return err } // PullDefault like Pull but retrieve the default branch from the default remote diff --git a/storage/fs/internal/gitdir/dir.go b/storage/fs/internal/gitdir/dir.go index 8d751f056..d833a4c8e 100644 --- a/storage/fs/internal/gitdir/dir.go +++ b/storage/fs/internal/gitdir/dir.go @@ -2,7 +2,6 @@ package gitdir import ( "errors" - "io" "io/ioutil" "os" "path/filepath" @@ -41,8 +40,10 @@ type GitDir struct { refs map[string]core.Hash } -// New returns a GitDir value ready to be used. The path argument must be -// an existing git repository directory (e.g. "/foo/bar/.git"). +// New returns a GitDir value ready to be used. The path argument must +// be an existing git repository directory (e.g. "/foo/bar/.git") or the +// directory inmediately above it (e.g. "/foo/bar" given that +// "/foo/bar/.git" exists). Relative and absolute paths are allowed. func New(path string) (*GitDir, error) { d := &GitDir{} var err error @@ -82,7 +83,9 @@ func cleanPath(path string) (string, error) { func (d *GitDir) Refs() (map[string]core.Hash, error) { var err error - if err = d.initRefsFromPackedRefs(); err != nil { + d.refs = make(map[string]core.Hash) + + if err = d.addRefsFromPackedRefs(); err != nil { return nil, err } @@ -119,39 +122,33 @@ func (d *GitDir) addSymRefCapability(cap *common.Capabilities) (err error) { if err != nil { return err } - contents := strings.TrimSpace(string(b)) + data := strings.TrimSpace(string(b)) c := "symref" - ref := strings.TrimPrefix(contents, symRefPrefix) + ref := strings.TrimPrefix(data, symRefPrefix) cap.Set(c, "HEAD:"+ref) return nil } -// ReadSeekCloser is an io.ReadSeeker with a Close method. -type ReadSeekCloser interface { - io.ReadSeeker - Close() error -} - // Packfile returns the path of the packfile in the repository. func (d *GitDir) Packfile() (string, error) { p := d.pattern(true) - l, err := filepath.Glob(p) + list, err := filepath.Glob(p) if err != nil { return "", err } - if len(l) == 0 { + if len(list) == 0 { return "", ErrPackfileNotFound } - if len(l) > 1 { + if len(list) > 1 { return "", ErrMoreThanOnePackfile } - return l[0], nil + return list[0], nil } func (d *GitDir) pattern(isPackfile bool) string { @@ -178,18 +175,18 @@ const filePattern = "pack-[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a- func (d *GitDir) Idxfile() (string, error) { p := d.pattern(false) - l, err := filepath.Glob(p) + list, err := filepath.Glob(p) if err != nil { return "", err } - if len(l) == 0 { + if len(list) == 0 { return "", ErrIdxNotFound } - if len(l) > 1 { + if len(list) > 1 { return "", ErrMoreThanOneIdxfile } - return l[0], nil + return list[0], nil } diff --git a/storage/fs/internal/gitdir/dir_test.go b/storage/fs/internal/gitdir/dir_test.go index fc89e1239..281e4f3a4 100644 --- a/storage/fs/internal/gitdir/dir_test.go +++ b/storage/fs/internal/gitdir/dir_test.go @@ -5,10 +5,11 @@ import ( "path/filepath" "testing" - . "gopkg.in/check.v1" "gopkg.in/src-d/go-git.v3/clients/common" "gopkg.in/src-d/go-git.v3/core" "gopkg.in/src-d/go-git.v3/utils/tgz" + + . "gopkg.in/check.v1" ) func Test(t *testing.T) { TestingT(t) } @@ -196,61 +197,53 @@ func (s *SuiteGitDir) TestCapabilities(c *C) { } func (s *SuiteGitDir) TestPackfile(c *C) { + packfile := func(d *GitDir) (string, error) { + return d.Packfile() + } + idxfile := func(d *GitDir) (string, error) { + return d.Idxfile() + } for _, test := range [...]struct { fixture string + fn getPathFn err string // error regexp }{ { fixture: "spinnaker", + fn: packfile, + }, { + fixture: "spinnaker", + fn: idxfile, }, { fixture: "no-packfile", + fn: packfile, err: "packfile not found", - }, - } { - s.checkFile(c, true, test.fixture, test.err) - } -} - -func (s *SuiteGitDir) TestIdxfile(c *C) { - for _, test := range [...]struct { - fixture string - err string // error regexp - }{ - { - fixture: "spinnaker", }, { fixture: "no-packfile", + fn: idxfile, err: "idx file not found", }, } { - s.checkFile(c, false, test.fixture, test.err) - } -} + fix, dir := s.newFixtureDir(c, test.fixture) -func (s *SuiteGitDir) checkFile(c *C, isPackfile bool, - fixtureName string, expectedErr string) { + path, err := test.fn(dir) - fix, dir := s.newFixtureDir(c, fixtureName) + if test.err != "" { + c.Assert(err, ErrorMatches, test.err) + } else { + c.Assert(err, IsNil) - var pakPath string - var fixPath string - var err error - if isPackfile { - pakPath, err = dir.Packfile() - fixPath = fix.packfile - } else { - pakPath, err = dir.Idxfile() - fixPath = fix.idxfile - } + rel, err := filepath.Rel(dir.path, path) + c.Assert(err, IsNil) - if expectedErr != "" { - c.Assert(err, ErrorMatches, expectedErr) - } else { - c.Assert(err, IsNil) - - rel, err := filepath.Rel(dir.path, pakPath) - c.Assert(err, IsNil) - - c.Assert(rel, Equals, fixPath) + c.Assert(noExt(rel), Equals, noExt(fix.packfile)) + } } } + +func noExt(path string) string { + ext := filepath.Ext(path) + return path[0 : len(path)-len(ext)] +} + +type getPathFn func(*GitDir) (string, error) diff --git a/storage/fs/internal/gitdir/refs.go b/storage/fs/internal/gitdir/refs.go index df41a8173..d9f2b66e1 100644 --- a/storage/fs/internal/gitdir/refs.go +++ b/storage/fs/internal/gitdir/refs.go @@ -29,9 +29,7 @@ const ( symRefPrefix = "ref: " ) -func (d *GitDir) initRefsFromPackedRefs() (err error) { - d.refs = make(map[string]core.Hash) - +func (d *GitDir) addRefsFromPackedRefs() (err error) { path := filepath.Join(d.path, packedRefsPath) f, err := os.Open(path) if err != nil { diff --git a/storage/fs/internal/index/index.go b/storage/fs/internal/index/index.go index 776c9d13c..d93f89b81 100644 --- a/storage/fs/internal/index/index.go +++ b/storage/fs/internal/index/index.go @@ -8,8 +8,8 @@ import ( "gopkg.in/src-d/go-git.v3/formats/idxfile" ) -// Index is a database of the hashes of the objects and their offsets in -// the packfile. +// Index is a database of objects and their offset in a packfile. +// Objects are identified by their hash. type Index map[core.Hash]int64 // NewFromIdx returns a new index from an idx file reader. @@ -21,18 +21,18 @@ func NewFromIdx(r io.Reader) (Index, error) { return nil, err } - result := make(Index) - for _, entry := range idx.Entries { - if _, ok := result[entry.Hash]; ok { - return nil, fmt.Errorf("duplicated hash: %s", entry.Hash) + ind := make(Index) + for _, e := range idx.Entries { + if _, ok := ind[e.Hash]; ok { + return nil, fmt.Errorf("duplicated hash: %s", e.Hash) } - result[entry.Hash] = int64(entry.Offset) + ind[e.Hash] = int64(e.Offset) } - return result, nil + return ind, nil } -// Get returns the offset of an object in the packfile. +// Get returns the offset that an object has the packfile. func (i Index) Get(h core.Hash) (int64, error) { offset, ok := i[h] if !ok { diff --git a/storage/fs/store.go b/storage/fs/store.go index 76557339e..1bf8383d7 100644 --- a/storage/fs/store.go +++ b/storage/fs/store.go @@ -18,7 +18,7 @@ import ( // Currently only reads are supported, no writting. // // Also values from this type are not yet able to track changes on disk, this is, -// if the git repository changes, the fields of this value will be outdated. +// Gitdir values will get outdated as soon as repositories change on disk. type ObjectStorage struct { dir *gitdir.GitDir index index.Index @@ -26,22 +26,22 @@ type ObjectStorage struct { // New returns a new ObjectStorage for the git directory at the specified path. func New(path string) (*ObjectStorage, error) { - sto := &ObjectStorage{} + s := &ObjectStorage{} var err error - sto.dir, err = gitdir.New(path) + s.dir, err = gitdir.New(path) if err != nil { return nil, err } - idxfile, err := sto.dir.Idxfile() + idxfile, err := s.dir.Idxfile() if err != nil { return nil, err } - sto.index, err = buildIndex(idxfile) + s.index, err = buildIndex(idxfile) - return sto, nil + return s, nil } func buildIndex(path string) (index.Index, error) { @@ -60,15 +60,15 @@ func buildIndex(path string) (index.Index, error) { return index.NewFromIdx(f) } -// Set adds a new object to the storage. -// This method always returns an error as this particular -// implementation is read only. +// Set adds a new object to the storage. As this functionality is not +// yet supported, this method always returns a "not implemented yet" +// error an zero hash. func (s *ObjectStorage) Set(core.Object) (core.Hash, error) { return core.ZeroHash, fmt.Errorf("not implemented yet") } -// Get returns the object with the given hash, by searching the -// packfile. +// Get returns the object with the given hash, by searching for it in +// the packfile. func (s *ObjectStorage) Get(h core.Hash) (core.Object, error) { offset, err := s.index.Get(h) if err != nil { diff --git a/utils/tgz/tgz.go b/utils/tgz/tgz.go index 73b494ab2..694726fa9 100644 --- a/utils/tgz/tgz.go +++ b/utils/tgz/tgz.go @@ -17,11 +17,10 @@ const ( // Extract decompress a gziped tarball into a new temporal directory // created just for this purpose. // -// On success, the path of new directory and a nil error is returned. -// -// On error, a non-nil error and an empty string are returned if the -// newly created directory was correctly deleted. If not, its path is -// returned instead of the empty string. +// On success, the path of newly created directory and a nil error is +// returned. Otherwise an error is returned along with the path of the +// newly created directory with whatever information was extracted +// before the error or a empty string if no directory was created. func Extract(tgz string) (d string, err error) { f, err := os.Open(tgz) if err != nil { @@ -42,31 +41,16 @@ func Extract(tgz string) (d string, err error) { tar, err := zipTarReader(f) if err != nil { - return deleteDir(d, err) + return d, err } if err = unTar(tar, d); err != nil { - return deleteDir(d, err) + return d, err } return d, nil } -func deleteDir(dir string, prevErr error) (string, error) { - path := "" - err := prevErr - - errDelete := os.RemoveAll(dir) - if errDelete != nil { - path = dir - if prevErr == nil { - err = errDelete - } - } - - return path, err -} - func zipTarReader(r io.Reader) (*tar.Reader, error) { zip, err := gzip.NewReader(r) if err != nil { diff --git a/utils/tgz/tgz_test.go b/utils/tgz/tgz_test.go index 9949ed516..f58eecf5a 100644 --- a/utils/tgz/tgz_test.go +++ b/utils/tgz/tgz_test.go @@ -22,9 +22,6 @@ func (s *SuiteTGZ) TestExtract(c *C) { path, err := Extract(test.tgz) if test.err != "" { c.Assert(err, ErrorMatches, test.err, com) - - _, err = os.Stat(path) - c.Assert(os.IsNotExist(err), Equals, true, com) } else { c.Assert(err, IsNil, com) From 20321596221e44129cc6c650fc779c190f468003 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Fri, 17 Jun 2016 10:10:36 +0200 Subject: [PATCH 076/143] some metalinter fixes --- examples/basic/main.go | 2 +- examples/latest/latest.go | 2 +- formats/packfile/internal/readcounter/readcounter.go | 7 ++++--- repository.go | 2 +- storage/fs/store.go | 2 +- 5 files changed, 8 insertions(+), 7 deletions(-) diff --git a/examples/basic/main.go b/examples/basic/main.go index 88ba5c6a0..652ebf1b9 100644 --- a/examples/basic/main.go +++ b/examples/basic/main.go @@ -15,7 +15,7 @@ func main() { panic(err) } - if err := r.PullDefault(); err != nil { + if err = r.PullDefault(); err != nil { panic(err) } diff --git a/examples/latest/latest.go b/examples/latest/latest.go index 84aaf48a4..b443abef0 100644 --- a/examples/latest/latest.go +++ b/examples/latest/latest.go @@ -14,7 +14,7 @@ func main() { panic(err) } - if err := r.Pull(git.DefaultRemoteName, "refs/heads/master"); err != nil { + if err = r.Pull(git.DefaultRemoteName, "refs/heads/master"); err != nil { panic(err) } diff --git a/formats/packfile/internal/readcounter/readcounter.go b/formats/packfile/internal/readcounter/readcounter.go index 17b28a9ec..1ff06f3be 100644 --- a/formats/packfile/internal/readcounter/readcounter.go +++ b/formats/packfile/internal/readcounter/readcounter.go @@ -5,13 +5,13 @@ import ( "io" ) -// Tracker is a reader that keeps track of the number of bytes readed. +// ReadCounter is a reader that keeps track of the number of bytes readed. type ReadCounter struct { io.Reader count int64 } -// NewTracker returns a new tracker for the given stream r. +// New returns a new tracker for the given stream r. func New(r io.Reader) *ReadCounter { return &ReadCounter{Reader: r, count: 0} } @@ -26,6 +26,7 @@ func (t *ReadCounter) Read(p []byte) (n int, err error) { return n, err } +// ReadByte reads a byte from the readcounter. func (t *ReadCounter) ReadByte() (c byte, err error) { var p [1]byte n, err := t.Reader.Read(p[:]) @@ -41,7 +42,7 @@ func (t *ReadCounter) ReadByte() (c byte, err error) { return p[0], nil } -// Position returns the number of bytes read so far. +// Count returns the number of bytes read so far. func (t *ReadCounter) Count() int64 { return t.count } diff --git a/repository.go b/repository.go index 27828f3b5..02c3ed8fa 100644 --- a/repository.go +++ b/repository.go @@ -77,7 +77,7 @@ func (r *Repository) Pull(remoteName, branch string) (err error) { return fmt.Errorf("unable to find remote %q", remoteName) } - if err := remote.Connect(); err != nil { + if err = remote.Connect(); err != nil { return err } diff --git a/storage/fs/store.go b/storage/fs/store.go index 1bf8383d7..8b9059a6a 100644 --- a/storage/fs/store.go +++ b/storage/fs/store.go @@ -41,7 +41,7 @@ func New(path string) (*ObjectStorage, error) { s.index, err = buildIndex(idxfile) - return s, nil + return s, err } func buildIndex(path string) (index.Index, error) { From 59f28e1fb5bde83db84da6248c1fff5f167d8240 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Fri, 17 Jun 2016 10:53:30 +0200 Subject: [PATCH 077/143] upgrade cshared to last changes --- cshared/repository_cshared.go | 45 +++++++++++++---------------------- 1 file changed, 16 insertions(+), 29 deletions(-) diff --git a/cshared/repository_cshared.go b/cshared/repository_cshared.go index 6ca600f0a..1c8fa9d5f 100644 --- a/cshared/repository_cshared.go +++ b/cshared/repository_cshared.go @@ -5,8 +5,8 @@ import ( "C" "gopkg.in/src-d/go-git.v3" - "gopkg.in/src-d/go-git.v3/core" "gopkg.in/src-d/go-git.v3/clients/common" + "gopkg.in/src-d/go-git.v3/core" ) //export c_Repository @@ -90,25 +90,6 @@ func c_Repository_set_Storage(r uint64, val uint64) { repo.Storage = *obj.(*core.ObjectStorage) } -//export c_Repository_get_URL -func c_Repository_get_URL(r uint64) *C.char { - obj, ok := GetObject(Handle(r)) - if !ok { - return nil - } - return C.CString(obj.(*git.Repository).URL) -} - -//export c_Repository_set_URL -func c_Repository_set_URL(r uint64, val string) { - obj, ok := GetObject(Handle(r)) - if !ok { - return - } - repo := obj.(*git.Repository) - repo.URL = CopyString(val) -} - //export c_Repository_Pull func c_Repository_Pull(r uint64, remoteName, branch string) (int, *C.char) { obj, ok := GetObject(Handle(r)) @@ -150,20 +131,23 @@ func c_Repository_Commit(r uint64, h []byte) (uint64, int, *C.char) { if err != nil { return IH, ErrorCodeInternal, C.CString(err.Error()) } - commit_handle := RegisterObject(commit) + commit_handle := RegisterObject(commit) return uint64(commit_handle), ErrorCodeSuccess, nil } //export c_Repository_Commits -func c_Repository_Commits(r uint64) uint64 { +func c_Repository_Commits(r uint64) (uint64, int, *C.char) { obj, ok := GetObject(Handle(r)) if !ok { - return IH + return IH, ErrorCodeNotFound, C.CString(MessageNotFound) } repo := obj.(*git.Repository) - iter := repo.Commits() + iter, err := repo.Commits() + if err != nil { + return IH, ErrorCodeInternal, C.CString(err.Error()) + } iter_handle := RegisterObject(iter) - return uint64(iter_handle) + return uint64(iter_handle), ErrorCodeSuccess, nil } //export c_Repository_Tree @@ -218,15 +202,18 @@ func c_Repository_Tag(r uint64, h []byte) (uint64, int, *C.char) { } //export c_Repository_Tags -func c_Repository_Tags(r uint64) uint64 { +func c_Repository_Tags(r uint64) (uint64, int, *C.char) { obj, ok := GetObject(Handle(r)) if !ok { - return IH + return IH, ErrorCodeNotFound, C.CString(MessageNotFound) } repo := obj.(*git.Repository) - iter := repo.Tags() + iter, err := repo.Tags() + if err != nil { + return IH, ErrorCodeInternal, C.CString(err.Error()) + } iter_handle := RegisterObject(iter) - return uint64(iter_handle) + return uint64(iter_handle), ErrorCodeSuccess, nil } //export c_Repository_Object From 59ae8148350af7baeda4527a302bce7b6039b761 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Fri, 17 Jun 2016 11:04:05 +0200 Subject: [PATCH 078/143] remove dead code --- clients/common/common.go | 1 - 1 file changed, 1 deletion(-) diff --git a/clients/common/common.go b/clients/common/common.go index a986e75ca..8783481f6 100644 --- a/clients/common/common.go +++ b/clients/common/common.go @@ -17,7 +17,6 @@ import ( var ( NotFoundErr = errors.New("repository not found") EmptyGitUploadPackErr = errors.New("empty git-upload-pack given") - ErrAuthNotSupported = errors.New("authentication not supported by client") ) const GitUploadPackServiceName = "git-upload-pack" From f60a0bb9997727a369ad50863becb88a6f87dceb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Fri, 17 Jun 2016 11:05:04 +0200 Subject: [PATCH 079/143] fix test error info --- blame_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blame_test.go b/blame_test.go index a96baffb4..614b084e2 100644 --- a/blame_test.go +++ b/blame_test.go @@ -58,7 +58,7 @@ func (s *BlameCommon) mockBlame(t blameTest, c *C) (blame *Blame) { lines, err := f.Lines() c.Assert(err, IsNil) c.Assert(len(t.blames), Equals, len(lines), Commentf( - "repo=%s, path=%s, rev=%s: the number of lines in the file and the number of exp blames differ (len(blames)=%d, len(lines)=%d)\nblames=%#q\nlines=%#q", t.repo, t.path, t.rev, len(t.blames), len(lines), t.blames, lines)) + "repo=%s, path=%s, rev=%s: the number of lines in the file and the number of expected blames differ (len(blames)=%d, len(lines)=%d)\nblames=%#q\nlines=%#q", t.repo, t.path, t.rev, len(t.blames), len(lines), t.blames, lines)) blamedLines := make([]*line, 0, len(t.blames)) for i := range t.blames { From fc0c74d9aa3043f669e11af4dda7a3a770af1c33 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Fri, 17 Jun 2016 11:07:30 +0200 Subject: [PATCH 080/143] remove file scheme check from clients --- clients/common/common.go | 4 ---- 1 file changed, 4 deletions(-) diff --git a/clients/common/common.go b/clients/common/common.go index 8783481f6..728045039 100644 --- a/clients/common/common.go +++ b/clients/common/common.go @@ -36,10 +36,6 @@ type AuthMethod interface { type Endpoint string func NewEndpoint(url string) (Endpoint, error) { - if strings.HasPrefix(url, "file://") { - return Endpoint(url), nil - } - vcs, err := vcsurl.Parse(url) if err != nil { return "", core.NewPermanentError(err) From 443787c054501f935a4c73670b8e27211e427f2a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Fri, 17 Jun 2016 11:09:58 +0200 Subject: [PATCH 081/143] fix test error message --- clients/http/common.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/clients/http/common.go b/clients/http/common.go index 2a0d7bda9..f163cfc46 100644 --- a/clients/http/common.go +++ b/clients/http/common.go @@ -65,7 +65,7 @@ func (e *HTTPError) StatusCode() int { } func (e *HTTPError) Error() string { - return fmt.Sprintf("unexp requesting %q status code: %d", + return fmt.Sprintf("unexpected requesting %q status code: %d", e.Response.Request.URL, e.Response.StatusCode, ) } From 22819f15ccf63417fa381c652ddc1b3cf84a74ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Fri, 17 Jun 2016 11:10:35 +0200 Subject: [PATCH 082/143] fix test error message --- clients/http/common_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/clients/http/common_test.go b/clients/http/common_test.go index 982672cb3..7bd970871 100644 --- a/clients/http/common_test.go +++ b/clients/http/common_test.go @@ -29,7 +29,7 @@ func (s *SuiteCommon) TestNewHTTPError404(c *C) { } func (s *SuiteCommon) TestNewHTTPError40x(c *C) { - s.testNewHTTPError(c, 402, "unexp client error.*") + s.testNewHTTPError(c, 402, "unexpected client error.*") } func (s *SuiteCommon) testNewHTTPError(c *C, code int, msg string) { From aabec5fc4714b10423e92207411c40fd2a8a544e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Fri, 17 Jun 2016 11:16:04 +0200 Subject: [PATCH 083/143] fix error messages --- commit_test.go | 4 ++-- core/errors.go | 2 +- formats/pktline/decoder.go | 2 +- formats/pktline/encoder.go | 2 +- tag_test.go | 4 ++-- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/commit_test.go b/commit_test.go index f872b225c..a620e8c6d 100644 --- a/commit_test.go +++ b/commit_test.go @@ -95,8 +95,8 @@ var fileTests = []struct { repo string // the repo name as in localRepos commit string // the commit to search for the file path string // the path of the file to find - blobHash string // exp hash of the returned file - found bool // exp found value + blobHash string // expected hash of the returned file + found bool // expected found value }{ // use git ls-tree commit to get the hash of the blobs {"https://github.com/tyba/git-fixture.git", "b029517f6300c2da0f4b651b8642506cd6aaf45d", "not-found", diff --git a/core/errors.go b/core/errors.go index cee1d4cb9..50772b639 100644 --- a/core/errors.go +++ b/core/errors.go @@ -31,5 +31,5 @@ func NewUnexpectedError(err error) *UnexpectedError { } func (e *UnexpectedError) Error() string { - return fmt.Sprintf("unexp client error: %s", e.Err.Error()) + return fmt.Sprintf("unexpected client error: %s", e.Err.Error()) } diff --git a/formats/pktline/decoder.go b/formats/pktline/decoder.go index 44f1a77b4..34e6f51a4 100644 --- a/formats/pktline/decoder.go +++ b/formats/pktline/decoder.go @@ -8,7 +8,7 @@ import ( var ( // ErrUnderflow is triggered when a line is shorter than the described length - ErrUnderflow = errors.New("unexp string length (underflow)") + ErrUnderflow = errors.New("unexpected string length (underflow)") // ErrInvalidHeader invalid pktline header ErrInvalidHeader = errors.New("invalid header") // ErrInvalidLen ivanlid line length found, < 0 diff --git a/formats/pktline/encoder.go b/formats/pktline/encoder.go index 85b2fd327..18efa2531 100644 --- a/formats/pktline/encoder.go +++ b/formats/pktline/encoder.go @@ -8,7 +8,7 @@ import ( var ( //ErrOverflow is triggered when the line length exceed the MaxLength - ErrOverflow = errors.New("unexp string length (overflow)") + ErrOverflow = errors.New("unexpected string length (overflow)") ) // Encoder implements a pkt-line format encoder diff --git a/tag_test.go b/tag_test.go index 380e0e733..239dec3fe 100644 --- a/tag_test.go +++ b/tag_test.go @@ -25,7 +25,7 @@ var tagFixtures = []packedFixture{ var tagTests = []struct { repo string // the repo name in the test suite's map of fixtures - tags map[string]expectedTag // the exp tags to test, mapped by tag hash + tags map[string]expectedTag // the expected tags to test, mapped by tag hash }{ // https://api.github.com/repos/spinnaker/spinnaker/git/tags/TAGHASH {"https://github.com/spinnaker/spinnaker.git", map[string]expectedTag{ @@ -166,7 +166,7 @@ func testTagIter(c *C, iter *TagIter, tags map[string]expectedTag, com string) { c.Assert(tag.Hash.IsZero(), Equals, false) exp, ok := tags[tag.Hash.String()] - c.Assert(ok, Equals, true, Commentf("%sunexp tag hash=%v", com, tag.Hash)) + c.Assert(ok, Equals, true, Commentf("%sunexpected tag hash=%v", com, tag.Hash)) testTagExpected(c, tag, tag.Hash, exp, com) } From 43c3d5d3829bc88df47e014554258a1e9942981a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Fri, 17 Jun 2016 11:19:39 +0200 Subject: [PATCH 084/143] style changes --- blame_test.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/blame_test.go b/blame_test.go index 614b084e2..c7651964d 100644 --- a/blame_test.go +++ b/blame_test.go @@ -104,6 +104,7 @@ func repeat(s string, n int) []string { for i := 0; i < n; i++ { r = append(r, s) } + return r } @@ -113,6 +114,7 @@ func concat(vargs ...[]string) []string { for _, ss := range vargs { r = append(r, ss...) } + return r } From 33f5cf99060cd011288de7593f8454ffecab919a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Fri, 17 Jun 2016 11:26:29 +0200 Subject: [PATCH 085/143] fix comments everywhere --- common_test.go | 2 +- file_test.go | 4 ++-- formats/packfile/delta.go | 2 +- storage/fs/internal/gitdir/dir_test.go | 2 +- tree_test.go | 8 ++++---- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/common_test.go b/common_test.go index 2f49028ba..5fda5a302 100644 --- a/common_test.go +++ b/common_test.go @@ -90,7 +90,7 @@ var _ = Suite(&SuiteCommon{}) var countLinesTests = [...]struct { i string // the string we want to count lines from - e int // the exp number of lines in i + e int // the expected number of lines in i }{ {"", 0}, {"a", 1}, diff --git a/file_test.go b/file_test.go index ba421ca6f..ad5abb3b4 100644 --- a/file_test.go +++ b/file_test.go @@ -73,7 +73,7 @@ var contentsTests = []struct { repo string // the repo name as in localRepos commit string // the commit to search for the file path string // the path of the file to find - contents string // exp contents of the file + contents string // expected contents of the file }{ { "https://github.com/tyba/git-fixture.git", @@ -120,7 +120,7 @@ var linesTests = []struct { repo string // the repo name as in localRepos commit string // the commit to search for the file path string // the path of the file to find - lines []string // exp lines in the file + lines []string // expected lines in the file }{ { "https://github.com/tyba/git-fixture.git", diff --git a/formats/packfile/delta.go b/formats/packfile/delta.go index 761d31f1f..e0bbb6542 100644 --- a/formats/packfile/delta.go +++ b/formats/packfile/delta.go @@ -61,7 +61,7 @@ func PatchDelta(src, delta []byte) []byte { // stream. // // This must be called twice on the delta data buffer, first to get the -// exp source buffer size, and again to get the target buffer size. +// expected source buffer size, and again to get the target buffer size. func decodeLEB128(input []byte) (uint, []byte) { var num, sz uint var b byte diff --git a/storage/fs/internal/gitdir/dir_test.go b/storage/fs/internal/gitdir/dir_test.go index 281e4f3a4..aafc691bd 100644 --- a/storage/fs/internal/gitdir/dir_test.go +++ b/storage/fs/internal/gitdir/dir_test.go @@ -38,7 +38,7 @@ var initFixtures = [...]struct { type fixture struct { path string // repo names to paths of the extracted tgz - capabilities *common.Capabilities // exp capabilities + capabilities *common.Capabilities // expected capabilities packfile string // path of the packfile idxfile string // path of the idxfile } diff --git a/tree_test.go b/tree_test.go index 5c4c0f963..4bf42be95 100644 --- a/tree_test.go +++ b/tree_test.go @@ -32,9 +32,9 @@ func (s *SuiteTree) TestFile(c *C) { repo string // the repo name as in localRepos commit string // the commit to search for the file path string // the path of the file to find - blobHash string // exp hash of the returned file - size int64 // exp size of the returned file - found bool // exp found value + blobHash string // expected hash of the returned file + size int64 // expected size of the returned file + found bool // expected found value }{ // use git ls-tree commit to get the hash of the blobs { @@ -208,7 +208,7 @@ func (s *SuiteTree) TestFiles(c *C) { for i, t := range []struct { repo string // the repo name as in localRepos commit string // the commit to search for the file - files []string // the exp files in the commit + files []string // the expected files in the commit }{ {"https://github.com/alcortesm/binary-relations.git", "b373f85fa2594d7dcd9989f4a5858a81647fb8ea", []string{ "binary-relations.tex", From e75c9c8029fb504a3863cf685b840774eced4603 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Fri, 17 Jun 2016 11:40:15 +0200 Subject: [PATCH 086/143] style changes --- formats/packfile/internal/readcounter/readcounter.go | 2 ++ formats/packfile/object_at.go | 2 +- references_test.go | 2 +- tree_walker_test.go | 2 +- 4 files changed, 5 insertions(+), 3 deletions(-) diff --git a/formats/packfile/internal/readcounter/readcounter.go b/formats/packfile/internal/readcounter/readcounter.go index 1ff06f3be..5257d3c8a 100644 --- a/formats/packfile/internal/readcounter/readcounter.go +++ b/formats/packfile/internal/readcounter/readcounter.go @@ -23,6 +23,7 @@ func (t *ReadCounter) Read(p []byte) (n int, err error) { } t.count += int64(n) + return n, err } @@ -39,6 +40,7 @@ func (t *ReadCounter) ReadByte() (c byte, err error) { } t.count++ + return p[0], nil } diff --git a/formats/packfile/object_at.go b/formats/packfile/object_at.go index 4079b21e0..e37ec1df2 100644 --- a/formats/packfile/object_at.go +++ b/formats/packfile/object_at.go @@ -60,7 +60,6 @@ func readTypeAndLength(packfile io.Reader) (core.ObjectType, int64, error) { } typ := parseType(buf[0]) - length, err := readLength(buf[0], packfile) return typ, length, err @@ -153,6 +152,7 @@ func inflate(r io.Reader, w io.Writer) (err error) { }() _, err = io.Copy(w, zr) + return err } diff --git a/references_test.go b/references_test.go index 6405bbca9..3768b4b16 100644 --- a/references_test.go +++ b/references_test.go @@ -40,7 +40,7 @@ var referencesTests = [...]struct { repo string commit string path string - // exp output data form the revlist + // expected output data form the revlist revs []string }{ // Tyba git-fixture diff --git a/tree_walker_test.go b/tree_walker_test.go index c59964050..44ddf504f 100644 --- a/tree_walker_test.go +++ b/tree_walker_test.go @@ -25,7 +25,7 @@ var treeWalkerFixtures = []packedFixture{ var treeWalkerTests = []struct { repo string // the repo name as in localRepos commit string // the commit to search for the file - objs []expectedTreeWalkerEntry // the exp objects in the commit + objs []expectedTreeWalkerEntry // the expected objects in the commit }{ // https://api.github.com/repos/alcortesm/binary-relations/git/trees/b373f85fa2594d7dcd9989f4a5858a81647fb8ea {"https://github.com/alcortesm/binary-relations.git", "b373f85fa2594d7dcd9989f4a5858a81647fb8ea", []expectedTreeWalkerEntry{ From a939c15fc62d660495a10dafe002582f1a36fe33 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Fri, 17 Jun 2016 11:47:16 +0200 Subject: [PATCH 087/143] style changes --- storage/memory/object.go | 32 ++++++++++++++++---------------- storage/memory/object_test.go | 4 ++-- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/storage/memory/object.go b/storage/memory/object.go index 7c32e495e..b850aa46b 100644 --- a/storage/memory/object.go +++ b/storage/memory/object.go @@ -9,19 +9,19 @@ import ( // Object on memory core.Object implementation type Object struct { - t core.ObjectType - h core.Hash - content []byte - size int64 + t core.ObjectType + h core.Hash + cont []byte + sz int64 } // NewObject creates a new object with the given type and content -func NewObject(typ core.ObjectType, size int64, content []byte) *Object { +func NewObject(typ core.ObjectType, size int64, cont []byte) *Object { return &Object{ - t: typ, - h: core.ComputeHash(typ, content), - content: content, - size: int64(len(content)), + t: typ, + h: core.ComputeHash(typ, cont), + cont: cont, + sz: int64(len(cont)), } } @@ -30,8 +30,8 @@ func NewObject(typ core.ObjectType, size int64, content []byte) *Object { // type or the content has changed. The Hash is only generated if the size of // the content is exactly the Object.Size func (o *Object) Hash() core.Hash { - if o.h == core.ZeroHash && int64(len(o.content)) == o.size { - o.h = core.ComputeHash(o.t, o.content) + if o.h == core.ZeroHash && int64(len(o.cont)) == o.sz { + o.h = core.ComputeHash(o.t, o.cont) } return o.h @@ -44,17 +44,17 @@ func (o *Object) Type() core.ObjectType { return o.t } func (o *Object) SetType(t core.ObjectType) { o.t = t } // Size return the size of the object -func (o *Object) Size() int64 { return o.size } +func (o *Object) Size() int64 { return o.sz } // SetSize set the object size, the given size should be written afterwards -func (o *Object) SetSize(s int64) { o.size = s } +func (o *Object) SetSize(s int64) { o.sz = s } // Content returns the contents of the object -func (o *Object) Content() []byte { return o.content } +func (o *Object) Content() []byte { return o.cont } // Reader returns a core.ObjectReader used to read the object's content. func (o *Object) Reader() (core.ObjectReader, error) { - return ioutil.NopCloser(bytes.NewBuffer(o.content)), nil + return ioutil.NopCloser(bytes.NewBuffer(o.cont)), nil } // Writer returns a core.ObjectWriter used to write the object's content. @@ -63,7 +63,7 @@ func (o *Object) Writer() (core.ObjectWriter, error) { } func (o *Object) Write(p []byte) (n int, err error) { - o.content = append(o.content, p...) + o.cont = append(o.cont, p...) return len(p), nil } diff --git a/storage/memory/object_test.go b/storage/memory/object_test.go index f2873faad..32712549c 100644 --- a/storage/memory/object_test.go +++ b/storage/memory/object_test.go @@ -49,7 +49,7 @@ func (s *ObjectSuite) TestSize(c *C) { } func (s *ObjectSuite) TestReader(c *C) { - o := &Object{content: []byte("foo")} + o := &Object{cont: []byte("foo")} reader, err := o.Reader() c.Assert(err, IsNil) @@ -71,5 +71,5 @@ func (s *ObjectSuite) TestWriter(c *C) { c.Assert(err, IsNil) c.Assert(n, Equals, 3) - c.Assert(o.content, DeepEquals, []byte("foo")) + c.Assert(o.cont, DeepEquals, []byte("foo")) } From 2a8dfbdddff778738b07b8fe412c0e25c6f20494 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Thu, 23 Jun 2016 18:29:25 +0200 Subject: [PATCH 088/143] scaffolding and tests for local packfiles without ifx files --- storage/fs/internal/index/index.go | 5 +++++ storage/fs/store.go | 36 ++++++++++++++++++++++++++---- storage/fs/store_test.go | 7 +----- 3 files changed, 38 insertions(+), 10 deletions(-) diff --git a/storage/fs/internal/index/index.go b/storage/fs/internal/index/index.go index d93f89b81..f555e0d5e 100644 --- a/storage/fs/internal/index/index.go +++ b/storage/fs/internal/index/index.go @@ -12,6 +12,11 @@ import ( // Objects are identified by their hash. type Index map[core.Hash]int64 +// NewFrompackfile returns a new index from a packfile reader. +func NewFromPackfile(r io.Reader) (Index, error) { + return nil, fmt.Errorf("TODO") +} + // NewFromIdx returns a new index from an idx file reader. func NewFromIdx(r io.Reader) (Index, error) { d := idxfile.NewDecoder(r) diff --git a/storage/fs/store.go b/storage/fs/store.go index 8b9059a6a..25dda0ae2 100644 --- a/storage/fs/store.go +++ b/storage/fs/store.go @@ -34,17 +34,45 @@ func New(path string) (*ObjectStorage, error) { return nil, err } - idxfile, err := s.dir.Idxfile() + s.index, err = buildIndex(s.dir) + + return s, err +} + +func buildIndex(dir *gitdir.GitDir) (index.Index, error) { + idxfile, err := dir.Idxfile() if err != nil { + if err == gitdir.ErrIdxNotFound { + return buildIndexFromPackfile(dir) + } return nil, err } - s.index, err = buildIndex(idxfile) + return buildIndexFromIdxfile(idxfile) +} - return s, err +func buildIndexFromPackfile(dir *gitdir.GitDir) (index.Index, error) { + packfile, err := dir.Packfile() + if err != nil { + return nil, err + } + + f, err := os.Open(packfile) + if err != nil { + return nil, err + } + + defer func() { + errClose := f.Close() + if err == nil { + err = errClose + } + }() + + return index.NewFromPackfile(f) } -func buildIndex(path string) (index.Index, error) { +func buildIndexFromIdxfile(path string) (index.Index, error) { f, err := os.Open(path) if err != nil { return nil, err diff --git a/storage/fs/store_test.go b/storage/fs/store_test.go index 2ccbc6a7c..c9d6ffd27 100644 --- a/storage/fs/store_test.go +++ b/storage/fs/store_test.go @@ -69,12 +69,6 @@ func (s *FsSuite) TestNewErrorNotFound(c *C) { c.Assert(err, Equals, gitdir.ErrNotFound) } -func (s *FsSuite) TestNewIdxError(c *C) { - path := fixture("spinnaker-no-idx", c) - _, err := fs.New(path) - c.Assert(err, Equals, gitdir.ErrIdxNotFound) -} - func (s *FsSuite) TestGetHashNotFound(c *C) { path := fixture("spinnaker", c) @@ -88,6 +82,7 @@ func (s *FsSuite) TestGetHashNotFound(c *C) { func (s *FsSuite) TestGetCompareWithMemoryStorage(c *C) { for i, fixId := range [...]string{ "spinnaker", + "spinnaker-no-idx", "binary-relations", } { path := fixture(fixId, c) From 5f39e0de6105db8331aa3759d1a5054c5b3e9c84 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Fri, 24 Jun 2016 09:41:29 +0200 Subject: [PATCH 089/143] outsource index building from packfile to the packfile decoder --- formats/packfile/decoder.go | 4 ++++ storage/fs/internal/index/index.go | 9 ++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/formats/packfile/decoder.go b/formats/packfile/decoder.go index 2c85c4084..4b5b347da 100644 --- a/formats/packfile/decoder.go +++ b/formats/packfile/decoder.go @@ -223,3 +223,7 @@ func (e *DecoderError) addDetails(format string, args ...interface{}) *DecoderEr details: fmt.Sprintf(format, args...), } } + +func (d *Decoder) HasesOffsets() (map[core.Hash]int64, error) { + return nil, fmt.Errorf("TODO") +} diff --git a/storage/fs/internal/index/index.go b/storage/fs/internal/index/index.go index f555e0d5e..95b6455ed 100644 --- a/storage/fs/internal/index/index.go +++ b/storage/fs/internal/index/index.go @@ -6,6 +6,7 @@ import ( "gopkg.in/src-d/go-git.v3/core" "gopkg.in/src-d/go-git.v3/formats/idxfile" + "gopkg.in/src-d/go-git.v3/formats/packfile" ) // Index is a database of objects and their offset in a packfile. @@ -14,7 +15,13 @@ type Index map[core.Hash]int64 // NewFrompackfile returns a new index from a packfile reader. func NewFromPackfile(r io.Reader) (Index, error) { - return nil, fmt.Errorf("TODO") + d := packfile.NewDecoder(r) + hasesOffsets, err := d.HasesOffsets() + if err != nil { + return nil, err + } + + return Index(hasesOffsets), nil } // NewFromIdx returns a new index from an idx file reader. From 75ade5227796a13fbd51f16800f3de51b36d136a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Fri, 24 Jun 2016 10:51:11 +0200 Subject: [PATCH 090/143] refactor packfile header reading into a new function --- formats/packfile/decoder.go | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/formats/packfile/decoder.go b/formats/packfile/decoder.go index 4b5b347da..c3dc4583a 100644 --- a/formats/packfile/decoder.go +++ b/formats/packfile/decoder.go @@ -78,33 +78,45 @@ func NewDecoder(r io.Reader) *Decoder { // Decode reads a packfile and stores it in the value pointed to by s. func (d *Decoder) Decode(s core.ObjectStorage) (int64, error) { d.s = s + + count, err := d.readHeader() + if err != nil { + return d.readCounter.Count(), err + } + + err = d.readObjects(count) + + return d.readCounter.Count(), err +} + +func (d *Decoder) readHeader() (uint32, error) { if err := d.validateHeader(); err != nil { if err == io.EOF { - return -1, ErrEmptyPackfile + return 0, ErrEmptyPackfile } - return -1, err + return 0, err } ver, err := d.readInt32() if err != nil { - return -1, err + return 0, err } if ver > VersionSupported { - return -1, ErrUnsupportedVersion + return 0, ErrUnsupportedVersion } count, err := d.readInt32() if err != nil { - return -1, err + return 0, err } if count > d.MaxObjectsLimit { - return -1, ErrMaxObjectsLimitReached + return 0, ErrMaxObjectsLimitReached } - return d.readCounter.Count(), d.readObjects(count) + return count, nil } func (d *Decoder) validateHeader() error { From 80193dd3324b9edbe4ef17eccbeafa71839a72d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Fri, 24 Jun 2016 11:48:21 +0200 Subject: [PATCH 091/143] move code to generate index from packfile back to index package --- formats/packfile/decoder.go | 4 ---- storage/fs/internal/index/from_packfile.go | 11 +++++++++++ storage/fs/internal/index/index.go | 12 ------------ 3 files changed, 11 insertions(+), 16 deletions(-) create mode 100644 storage/fs/internal/index/from_packfile.go diff --git a/formats/packfile/decoder.go b/formats/packfile/decoder.go index c3dc4583a..d13462388 100644 --- a/formats/packfile/decoder.go +++ b/formats/packfile/decoder.go @@ -235,7 +235,3 @@ func (e *DecoderError) addDetails(format string, args ...interface{}) *DecoderEr details: fmt.Sprintf(format, args...), } } - -func (d *Decoder) HasesOffsets() (map[core.Hash]int64, error) { - return nil, fmt.Errorf("TODO") -} diff --git a/storage/fs/internal/index/from_packfile.go b/storage/fs/internal/index/from_packfile.go new file mode 100644 index 000000000..82c49835b --- /dev/null +++ b/storage/fs/internal/index/from_packfile.go @@ -0,0 +1,11 @@ +package index + +import ( + "fmt" + "io" +) + +// NewFrompackfile returns a new index from a packfile reader. +func NewFromPackfile(r io.ReadSeeker) (Index, error) { + return nil, fmt.Errorf("TODO") +} diff --git a/storage/fs/internal/index/index.go b/storage/fs/internal/index/index.go index 95b6455ed..d93f89b81 100644 --- a/storage/fs/internal/index/index.go +++ b/storage/fs/internal/index/index.go @@ -6,24 +6,12 @@ import ( "gopkg.in/src-d/go-git.v3/core" "gopkg.in/src-d/go-git.v3/formats/idxfile" - "gopkg.in/src-d/go-git.v3/formats/packfile" ) // Index is a database of objects and their offset in a packfile. // Objects are identified by their hash. type Index map[core.Hash]int64 -// NewFrompackfile returns a new index from a packfile reader. -func NewFromPackfile(r io.Reader) (Index, error) { - d := packfile.NewDecoder(r) - hasesOffsets, err := d.HasesOffsets() - if err != nil { - return nil, err - } - - return Index(hasesOffsets), nil -} - // NewFromIdx returns a new index from an idx file reader. func NewFromIdx(r io.Reader) (Index, error) { d := idxfile.NewDecoder(r) From fc6d0eecca3522b163bcf530b663b36fd5ceaaba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Fri, 24 Jun 2016 12:08:42 +0200 Subject: [PATCH 092/143] add header parsing --- storage/fs/internal/index/from_packfile.go | 105 +++++++++++++++++++++ 1 file changed, 105 insertions(+) diff --git a/storage/fs/internal/index/from_packfile.go b/storage/fs/internal/index/from_packfile.go index 82c49835b..65fc00480 100644 --- a/storage/fs/internal/index/from_packfile.go +++ b/storage/fs/internal/index/from_packfile.go @@ -1,11 +1,116 @@ package index import ( + "bytes" + "encoding/binary" "fmt" "io" ) +var ( + // ErrEmptyPackfile is returned by Decode when no data is found in the packfile + ErrEmptyPackfile = fmt.Errorf("empty packfile") + // ErrUnsupportedVersion is returned by Decode when packfile version is different than VersionSupported. + ErrUnsupportedVersion = fmt.Errorf("unsupported packfile version") + // ErrMaxObjectsLimitReached is returned by Decode when the number of objects in the packfile is higher than Decoder.MaxObjectsLimit. + ErrMaxObjectsLimitReached = fmt.Errorf("max. objects limit reached") + // ErrMalformedPackfile is returned by Decode when the packfile is corrupt. + ErrMalformedPackfile = fmt.Errorf("malformed pack file, does not start with 'PACK'") + // ErrInvalidObject is returned by Decode when an invalid object is found in the packfile. + ErrInvalidObject = fmt.Errorf("invalid git object") + // ErrPackEntryNotFound is returned by Decode when a reference in the packfile references and unknown object. + ErrPackEntryNotFound = fmt.Errorf("can't find a pack entry") + // ErrZLib is returned by Decode when there was an error unzipping the packfile contents. + ErrZLib = fmt.Errorf("zlib reading error") +) + +const ( + // DefaultMaxObjectsLimit is the maximum amount of objects the decoder will decode before + // returning ErrMaxObjectsLimitReached. + DefaultMaxObjectsLimit = 1 << 20 + // VersionSupported is the packfile version supported by this decoder. + VersionSupported = 2 +) + // NewFrompackfile returns a new index from a packfile reader. func NewFromPackfile(r io.ReadSeeker) (Index, error) { + _, err := readHeader(r) + if err != nil { + return nil, err + } + return nil, fmt.Errorf("TODO") } + +func readHeader(r io.Reader) (uint32, error) { + sig, err := readSignature(r) + if err != nil { + if err == io.EOF { + return 0, ErrEmptyPackfile + } + return 0, err + } + + if !isValidSignature(sig) { + return 0, ErrMalformedPackfile + } + + ver, err := readVersion(r) + if err != nil { + return 0, err + } + + if !isSupportedVersion(ver) { + return 0, ErrUnsupportedVersion + } + + count, err := readCount(r) + if err != nil { + return 0, err + } + + if !isValidCount(count) { + return 0, ErrMaxObjectsLimitReached + } + + return count, nil +} + +func readSignature(r io.Reader) ([]byte, error) { + var sig = make([]byte, 4) + if _, err := io.ReadFull(r, sig); err != nil { + return []byte{}, err + } + + return sig, nil +} + +func isValidSignature(sig []byte) bool { + return bytes.Equal(sig, []byte{'P', 'A', 'C', 'K'}) +} + +func readVersion(r io.Reader) (uint32, error) { + var v uint32 + if err := binary.Read(r, binary.BigEndian, &v); err != nil { + return 0, err + } + + return v, nil +} + +func isSupportedVersion(v uint32) bool { + return v == VersionSupported +} + +func readCount(r io.Reader) (uint32, error) { + var c uint32 + if err := binary.Read(r, binary.BigEndian, &c); err != nil { + return 0, err + } + + return c, nil +} + +func isValidCount(c uint32) bool { + return c <= DefaultMaxObjectsLimit +} From b1a12ff8d5dd63312290f276fca1147a55f9f355 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Fri, 24 Jun 2016 15:22:45 +0200 Subject: [PATCH 093/143] fix documentation errata --- formats/packfile/internal/readcounter/readcounter.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/formats/packfile/internal/readcounter/readcounter.go b/formats/packfile/internal/readcounter/readcounter.go index 5257d3c8a..0b0db6244 100644 --- a/formats/packfile/internal/readcounter/readcounter.go +++ b/formats/packfile/internal/readcounter/readcounter.go @@ -11,7 +11,7 @@ type ReadCounter struct { count int64 } -// New returns a new tracker for the given stream r. +// New returns a new ReadCounter for the given stream r. func New(r io.Reader) *ReadCounter { return &ReadCounter{Reader: r, count: 0} } From 0485468d100b20e76fa3bca4e905e801a3ef342d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Fri, 24 Jun 2016 19:17:01 +0200 Subject: [PATCH 094/143] add undeltified and OFS delta support for index building from the packfile --- storage/fs/internal/index/from_packfile.go | 322 ++++++++++++++++++++- storage/fs/store_test.go | 1 + 2 files changed, 314 insertions(+), 9 deletions(-) diff --git a/storage/fs/internal/index/from_packfile.go b/storage/fs/internal/index/from_packfile.go index 65fc00480..4a575b3fe 100644 --- a/storage/fs/internal/index/from_packfile.go +++ b/storage/fs/internal/index/from_packfile.go @@ -2,26 +2,32 @@ package index import ( "bytes" + "compress/zlib" "encoding/binary" "fmt" "io" + "os" + + "gopkg.in/src-d/go-git.v3/core" + "gopkg.in/src-d/go-git.v3/formats/packfile" + "gopkg.in/src-d/go-git.v3/storage/memory" ) var ( // ErrEmptyPackfile is returned by Decode when no data is found in the packfile - ErrEmptyPackfile = fmt.Errorf("empty packfile") + ErrEmptyPackfile = newDecoderError("empty packfile") // ErrUnsupportedVersion is returned by Decode when packfile version is different than VersionSupported. - ErrUnsupportedVersion = fmt.Errorf("unsupported packfile version") + ErrUnsupportedVersion = newDecoderError("unsupported packfile version") // ErrMaxObjectsLimitReached is returned by Decode when the number of objects in the packfile is higher than Decoder.MaxObjectsLimit. - ErrMaxObjectsLimitReached = fmt.Errorf("max. objects limit reached") + ErrMaxObjectsLimitReached = newDecoderError("max. objects limit reached") // ErrMalformedPackfile is returned by Decode when the packfile is corrupt. - ErrMalformedPackfile = fmt.Errorf("malformed pack file, does not start with 'PACK'") + ErrMalformedPackfile = newDecoderError("malformed pack file, does not start with 'PACK'") // ErrInvalidObject is returned by Decode when an invalid object is found in the packfile. - ErrInvalidObject = fmt.Errorf("invalid git object") + ErrInvalidObject = newDecoderError("invalid git object") // ErrPackEntryNotFound is returned by Decode when a reference in the packfile references and unknown object. - ErrPackEntryNotFound = fmt.Errorf("can't find a pack entry") + ErrPackEntryNotFound = newDecoderError("can't find a pack entry") // ErrZLib is returned by Decode when there was an error unzipping the packfile contents. - ErrZLib = fmt.Errorf("zlib reading error") + ErrZLib = newDecoderError("zlib reading error") ) const ( @@ -34,12 +40,35 @@ const ( // NewFrompackfile returns a new index from a packfile reader. func NewFromPackfile(r io.ReadSeeker) (Index, error) { - _, err := readHeader(r) + count, err := readHeader(r) if err != nil { return nil, err } - return nil, fmt.Errorf("TODO") + result := make(map[core.Hash]int64) + + fmt.Printf("%d objects in the packfile\n", count) + + for i := 0; i < int(count); i++ { + + fmt.Printf("trying to read object %d:\n", i) + + offset, err := currentOffset(r) + if err != nil { + return nil, err + } + fmt.Printf("\tcurrent offset = %d:\n", offset) + + obj, err := readObject(r) + if err != nil { + return nil, err + } + + result[obj.Hash()] = offset + fmt.Printf("\tobject hash : %s\n", obj.Hash()) + } + + return result, nil } func readHeader(r io.Reader) (uint32, error) { @@ -114,3 +143,278 @@ func readCount(r io.Reader) (uint32, error) { func isValidCount(c uint32) bool { return c <= DefaultMaxObjectsLimit } + +func readObject(r io.ReadSeeker) (core.Object, error) { + + start, err := currentOffset(r) + if err != nil { + return nil, err + } + _ = start + + var typ core.ObjectType + var sz int64 + typ, sz, err = readTypeAndLength(r) + if err != nil { + return nil, err + } + fmt.Printf("\treaded size (from object head): %d\n", sz) + + var cont []byte + fmt.Printf("\tobject type: %s\n", typ) + offset, _ := currentOffset(r) + fmt.Printf("\tcurrent offset = %d:\n", offset) + switch typ { + case core.REFDeltaObject: + err = fmt.Errorf("REFDeltaObject not supported yet") + _ = cont + /* + cont, typ, err = readContentREFDelta(d.readCounter, d) + sz = int64(len(cont)) + */ + case core.OFSDeltaObject: + err = fmt.Errorf("OFSDeltaObject not supported yet") + cont, typ, err = readContentOFSDelta(r, start) + sz = int64(len(cont)) + case core.CommitObject, core.TreeObject, core.BlobObject, core.TagObject: + cont, err = readContent(r) + fmt.Printf("\treaded size (unzipped): %d\n", len(cont)) + offset, _ := currentOffset(r) + fmt.Printf("\tcurrent offset = %d:\n", offset) + default: + err = ErrInvalidObject.addDetails("tag %q", typ) + } + if err != nil { + return nil, err + } + + return memory.NewObject(typ, sz, cont), nil +} + +func readTypeAndLength(r io.Reader) (core.ObjectType, int64, error) { + var buf [1]byte + if _, err := r.Read(buf[:]); err != nil { + return core.ObjectType(0), 0, err + } + + typ := parseType(buf[0]) + length, err := readLength(buf[0], r) + + return typ, length, err +} + +var ( + maskContinue = uint8(128) // 1000 0000 + maskType = uint8(112) // 0111 0000 + maskFirstLength = uint8(15) // 0000 1111 + firstLengthBits = uint8(4) // the first byte has 4 bits to store the length + maskLength = uint8(127) // 0111 1111 + lengthBits = uint8(7) // subsequent bytes has 7 bits to store the length +) + +func parseType(b byte) core.ObjectType { + return core.ObjectType((b & maskType) >> firstLengthBits) +} + +// Reads the last 4 bits from the first byte in the object. +// If more bytes are required for the length, read more bytes +// and use the first 7 bits of each one until no more bytes +// are required. +func readLength(first byte, packfile io.Reader) (int64, error) { + length := int64(first & maskFirstLength) + + buf := [1]byte{first} + shift := firstLengthBits + for moreBytesInLength(buf[0]) { + if _, err := packfile.Read(buf[:]); err != nil { + return 0, err + } + + length += int64(buf[0]&maskLength) << shift + shift += lengthBits + } + + return length, nil +} + +func moreBytesInLength(b byte) bool { + return b&maskContinue > 0 +} + +func readContent(r io.Reader) ([]byte, error) { + buf := bytes.NewBuffer(nil) + err := inflate(r, buf) + + return buf.Bytes(), err +} + +// https://github.com/golang/go/commit/7ba54d45732219af86bde9a5b73c145db82b70c6 +// https://groups.google.com/forum/#!topic/golang-nuts/fWTRdHpt0QI +// https://gowalker.org/compress/zlib#NewReader +type byteReader struct { + io.Reader +} + +func (b *byteReader) ReadByte() (byte, error) { + var p [1]byte + _, err := b.Read(p[:]) + if err != nil { + return 0, err + } + + return p[0], nil +} + +func inflate(r io.Reader, w io.Writer) (err error) { + byteReader := &byteReader{r} // see byteReader comments above + zr, err := zlib.NewReader(byteReader) + if err != nil { + if err != zlib.ErrHeader { + return fmt.Errorf("zlib reading error: %s", err) + } + } + + defer func() { + closeErr := zr.Close() + if err == nil { + err = closeErr + } + }() + + _, err = io.Copy(w, zr) + + return err +} + +// DecoderError specifies errors returned by Decode. +type DecoderError struct { + reason, details string +} + +func newDecoderError(reason string) *DecoderError { + return &DecoderError{reason: reason} +} + +func (e *DecoderError) Error() string { + if e.details == "" { + return e.reason + } + + return fmt.Sprintf("%s: %s", e.reason, e.details) +} + +func (e *DecoderError) addDetails(format string, args ...interface{}) *DecoderError { + return &DecoderError{ + reason: e.reason, + details: fmt.Sprintf(format, args...), + } +} + +func readContentOFSDelta(r io.ReadSeeker, objectStart int64) ( + content []byte, typ core.ObjectType, err error) { + + _, err = currentOffset(r) + if err != nil { + return nil, core.ObjectType(0), err + } + + offset, err := readNegativeOffset(r) + if err != nil { + return nil, core.ObjectType(0), err + } + + referencedObjectOffset := objectStart + offset + + fmt.Printf("\tOFS DELTA offset = %d\n", offset) + fmt.Printf("\tOFS DELTA destination of jump = %d\n", referencedObjectOffset) + + delta, err := currentOffset(r) + if err != nil { + return nil, core.ObjectType(0), err + } + fmt.Printf("\tOFS delta data at = %d\n", delta) + + r.Seek(referencedObjectOffset, os.SEEK_SET) + current, _ := currentOffset(r) + fmt.Printf("\tjust jumped to referenced object at %d\n", current) + + refObj, err := readObject(r) + if err != nil { + return nil, core.ObjectType(0), err + } + fmt.Printf("\treaded type of referenced object: %s\n", refObj.Type()) + + r.Seek(delta, os.SEEK_SET) + current, _ = currentOffset(r) + fmt.Printf("\tjumped back to %d (delta data)\n", current) + + diff := bytes.NewBuffer(nil) + if err = inflate(r, diff); err != nil { + return nil, core.ObjectType(0), err + } + + patched := packfile.PatchDelta(refObj.Content(), diff.Bytes()) + if patched == nil { + return nil, core.ObjectType(0), fmt.Errorf("paching error") + } + + return patched, refObj.Type(), nil +} + +// Git VLQ is quite special: +// +// Ordinary VLQ has some redundancies, example: the number 358 can be +// encoded as the 2-octet VLQ 0x8166 or the 3-octet VLQ 0x808166 or the +// 4-octet VLQ 0x80808166 and so forth. +// +// To avoid these redundancies, the VLQ format used in Git removes this +// prepending redundancy and extends the representable range of shorter +// VLQs by adding an offset to VLQs of 2 or more octets in such a way +// that the lowest possible value for such an (N+1)-octet VLQ becomes +// exactly one more than the maximum possible value for an N-octet VLQ. +// In particular, since a 1-octet VLQ can store a maximum value of 127, +// the minimum 2-octet VLQ (0x8000) is assigned the value 128 instead of +// 0. Conversely, the maximum value of such a 2-octet VLQ (0xff7f) is +// 16511 instead of just 16383. Similarly, the minimum 3-octet VLQ +// (0x808000) has a value of 16512 instead of zero, which means that the +// maximum 3-octet VLQ (0xffff7f) is 2113663 instead of just 2097151. +// And so forth. +// +// This is how the offset is saved in C: +// +// dheader[pos] = ofs & 127; +// while (ofs >>= 7) +// dheader[--pos] = 128 | (--ofs & 127); +// +func readNegativeOffset(r io.Reader) (int64, error) { + var b byte + var err error + + if b, err = readByte(r); err != nil { + return 0, err + } + + var offset = int64(b & maskLength) + for moreBytesInLength(b) { + offset++ + if b, err = readByte(r); err != nil { + return 0, err + } + offset = (offset << lengthBits) + int64(b&maskLength) + } + + return -offset, nil +} + +func readByte(r io.Reader) (byte, error) { + buf := [1]byte{} + if _, err := r.Read(buf[:]); err != nil { + return 0, err + } + + return buf[0], nil +} + +func currentOffset(r io.Seeker) (int64, error) { + return r.Seek(0, os.SEEK_CUR) +} diff --git a/storage/fs/store_test.go b/storage/fs/store_test.go index c9d6ffd27..e5255500f 100644 --- a/storage/fs/store_test.go +++ b/storage/fs/store_test.go @@ -203,6 +203,7 @@ func equalsObjects(a, b core.Object) (bool, string, error) { func (s *FsSuite) TestIterCompareWithMemoryStorage(c *C) { for i, fixId := range [...]string{ "spinnaker", + "spinnaker-no-idx", "binary-relations", } { From 0380bde48c6112cc8927c30f6751c0b527fef5df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Mon, 27 Jun 2016 12:13:19 +0200 Subject: [PATCH 095/143] add tests for packfile with ref-deltas --- .../gitdir/fixtures/ref-deltas-no-idx.tgz | Bin 0 -> 91307 bytes storage/fs/store_test.go | 3 +++ 2 files changed, 3 insertions(+) create mode 100644 storage/fs/internal/gitdir/fixtures/ref-deltas-no-idx.tgz diff --git a/storage/fs/internal/gitdir/fixtures/ref-deltas-no-idx.tgz b/storage/fs/internal/gitdir/fixtures/ref-deltas-no-idx.tgz new file mode 100644 index 0000000000000000000000000000000000000000..ac5fd8b564bbd6d51c38b2abf5348e74a5f15d92 GIT binary patch literal 91307 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 Date: Mon, 27 Jun 2016 12:50:31 +0200 Subject: [PATCH 096/143] support for packfiles with ref-deltas and no idx --- storage/fs/internal/index/from_packfile.go | 82 +++++++++++++--------- storage/fs/store_test.go | 4 +- 2 files changed, 50 insertions(+), 36 deletions(-) diff --git a/storage/fs/internal/index/from_packfile.go b/storage/fs/internal/index/from_packfile.go index 4a575b3fe..973c7a068 100644 --- a/storage/fs/internal/index/from_packfile.go +++ b/storage/fs/internal/index/from_packfile.go @@ -47,25 +47,18 @@ func NewFromPackfile(r io.ReadSeeker) (Index, error) { result := make(map[core.Hash]int64) - fmt.Printf("%d objects in the packfile\n", count) - for i := 0; i < int(count); i++ { - - fmt.Printf("trying to read object %d:\n", i) - offset, err := currentOffset(r) if err != nil { return nil, err } - fmt.Printf("\tcurrent offset = %d:\n", offset) - obj, err := readObject(r) + obj, err := readObject(r, result) if err != nil { return nil, err } result[obj.Hash()] = offset - fmt.Printf("\tobject hash : %s\n", obj.Hash()) } return result, nil @@ -144,7 +137,7 @@ func isValidCount(c uint32) bool { return c <= DefaultMaxObjectsLimit } -func readObject(r io.ReadSeeker) (core.Object, error) { +func readObject(r io.ReadSeeker, memo map[core.Hash]int64) (core.Object, error) { start, err := currentOffset(r) if err != nil { @@ -158,29 +151,17 @@ func readObject(r io.ReadSeeker) (core.Object, error) { if err != nil { return nil, err } - fmt.Printf("\treaded size (from object head): %d\n", sz) var cont []byte - fmt.Printf("\tobject type: %s\n", typ) - offset, _ := currentOffset(r) - fmt.Printf("\tcurrent offset = %d:\n", offset) switch typ { case core.REFDeltaObject: - err = fmt.Errorf("REFDeltaObject not supported yet") - _ = cont - /* - cont, typ, err = readContentREFDelta(d.readCounter, d) - sz = int64(len(cont)) - */ + cont, typ, err = readContentREFDelta(r, memo) + sz = int64(len(cont)) case core.OFSDeltaObject: - err = fmt.Errorf("OFSDeltaObject not supported yet") - cont, typ, err = readContentOFSDelta(r, start) + cont, typ, err = readContentOFSDelta(r, start, memo) sz = int64(len(cont)) case core.CommitObject, core.TreeObject, core.BlobObject, core.TagObject: cont, err = readContent(r) - fmt.Printf("\treaded size (unzipped): %d\n", len(cont)) - offset, _ := currentOffset(r) - fmt.Printf("\tcurrent offset = %d:\n", offset) default: err = ErrInvalidObject.addDetails("tag %q", typ) } @@ -310,7 +291,7 @@ func (e *DecoderError) addDetails(format string, args ...interface{}) *DecoderEr } } -func readContentOFSDelta(r io.ReadSeeker, objectStart int64) ( +func readContentOFSDelta(r io.ReadSeeker, objectStart int64, memo map[core.Hash]int64) ( content []byte, typ core.ObjectType, err error) { _, err = currentOffset(r) @@ -325,28 +306,19 @@ func readContentOFSDelta(r io.ReadSeeker, objectStart int64) ( referencedObjectOffset := objectStart + offset - fmt.Printf("\tOFS DELTA offset = %d\n", offset) - fmt.Printf("\tOFS DELTA destination of jump = %d\n", referencedObjectOffset) - delta, err := currentOffset(r) if err != nil { return nil, core.ObjectType(0), err } - fmt.Printf("\tOFS delta data at = %d\n", delta) r.Seek(referencedObjectOffset, os.SEEK_SET) - current, _ := currentOffset(r) - fmt.Printf("\tjust jumped to referenced object at %d\n", current) - refObj, err := readObject(r) + refObj, err := readObject(r, memo) if err != nil { return nil, core.ObjectType(0), err } - fmt.Printf("\treaded type of referenced object: %s\n", refObj.Type()) r.Seek(delta, os.SEEK_SET) - current, _ = currentOffset(r) - fmt.Printf("\tjumped back to %d (delta data)\n", current) diff := bytes.NewBuffer(nil) if err = inflate(r, diff); err != nil { @@ -418,3 +390,43 @@ func readByte(r io.Reader) (byte, error) { func currentOffset(r io.Seeker) (int64, error) { return r.Seek(0, os.SEEK_CUR) } + +func readContentREFDelta(r io.ReadSeeker, memo map[core.Hash]int64) ( + content []byte, typ core.ObjectType, err error) { + + var ref core.Hash + if _, err = io.ReadFull(r, ref[:]); err != nil { + return nil, core.ObjectType(0), err + } + + delta, err := currentOffset(r) + if err != nil { + return nil, core.ObjectType(0), err + } + + refOffset, ok := memo[ref] + if !ok { + return nil, core.ObjectType(0), fmt.Errorf("ref %q unkown") + } + + r.Seek(refOffset, os.SEEK_SET) + + refObj, err := readObject(r, memo) + if err != nil { + return nil, core.ObjectType(0), err + } + + r.Seek(delta, os.SEEK_SET) + + diff := bytes.NewBuffer(nil) + if err = inflate(r, diff); err != nil { + return nil, core.ObjectType(0), err + } + + patched := packfile.PatchDelta(refObj.Content(), diff.Bytes()) + if patched == nil { + return nil, core.ObjectType(0), fmt.Errorf("paching error") + } + + return patched, refObj.Type(), nil +} diff --git a/storage/fs/store_test.go b/storage/fs/store_test.go index b973e3a2f..329d44e8b 100644 --- a/storage/fs/store_test.go +++ b/storage/fs/store_test.go @@ -46,7 +46,7 @@ var initFixtures = [...]struct { id: "binary-relations", tgz: "internal/gitdir/fixtures/alcortesm-binary-relations.tgz", }, { - id: "test", + id: "ref-deltas-no-idx", tgz: "internal/gitdir/fixtures/ref-deltas-no-idx.tgz", }, } @@ -87,6 +87,7 @@ func (s *FsSuite) TestGetCompareWithMemoryStorage(c *C) { "spinnaker", "spinnaker-no-idx", "binary-relations", + "ref-deltas-no-idx", } { path := fixture(fixId, c) com := Commentf("at subtest %d, (fixture id = %q, extracted to %q)", @@ -208,6 +209,7 @@ func (s *FsSuite) TestIterCompareWithMemoryStorage(c *C) { "spinnaker", "spinnaker-no-idx", "binary-relations", + "ref-deltas-no-idx", } { path := fixture(fixId, c) From 8b86f2f9217608c6ae7f5cd62efc6776eef8b49b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Mon, 27 Jun 2016 14:28:13 +0200 Subject: [PATCH 097/143] refactor packfile format parser to reuse code --- formats/packfile/core.go | 37 ++++++++++++++ formats/packfile/decoder.go | 59 ++++------------------ formats/packfile/error.go | 27 ++++++++++ storage/fs/internal/index/from_packfile.go | 41 +++------------ 4 files changed, 81 insertions(+), 83 deletions(-) create mode 100644 formats/packfile/core.go create mode 100644 formats/packfile/error.go diff --git a/formats/packfile/core.go b/formats/packfile/core.go new file mode 100644 index 000000000..90f8a0ae6 --- /dev/null +++ b/formats/packfile/core.go @@ -0,0 +1,37 @@ +package packfile + +import ( + "encoding/binary" + "io" +) + +var ( + // ErrUnsupportedVersion is returned by Decode when packfile version is + // different than VersionSupported. + ErrUnsupportedVersion = newError("unsupported packfile version") +) + +const ( + // VersionSupported is the packfile version supported by this decoder. + VersionSupported = 2 +) + +var ( + // ReadVersion reads and returns the version field of a packfile. + ReadVersion = readInt32 + // ReadVersion reads and returns the count of objects field of a packfile. + ReadCount = readInt32 +) + +func readInt32(r io.Reader) (uint32, error) { + var v uint32 + if err := binary.Read(r, binary.BigEndian, &v); err != nil { + return 0, err + } + + return v, nil +} + +func IsSupportedVersion(v uint32) bool { + return v == VersionSupported +} diff --git a/formats/packfile/decoder.go b/formats/packfile/decoder.go index d13462388..0ce4a76a4 100644 --- a/formats/packfile/decoder.go +++ b/formats/packfile/decoder.go @@ -2,8 +2,6 @@ package packfile import ( "bytes" - "encoding/binary" - "fmt" "io" "gopkg.in/src-d/go-git.v3/core" @@ -23,27 +21,23 @@ const ( var ( // ErrEmptyPackfile is returned by Decode when no data is found in the packfile - ErrEmptyPackfile = newDecoderError("empty packfile") - // ErrUnsupportedVersion is returned by Decode when packfile version is different than VersionSupported. - ErrUnsupportedVersion = newDecoderError("unsupported packfile version") + ErrEmptyPackfile = newError("empty packfile") // ErrMaxObjectsLimitReached is returned by Decode when the number of objects in the packfile is higher than Decoder.MaxObjectsLimit. - ErrMaxObjectsLimitReached = newDecoderError("max. objects limit reached") + ErrMaxObjectsLimitReached = newError("max. objects limit reached") // ErrMalformedPackfile is returned by Decode when the packfile is corrupt. - ErrMalformedPackfile = newDecoderError("malformed pack file, does not start with 'PACK'") + ErrMalformedPackfile = newError("malformed pack file, does not start with 'PACK'") // ErrInvalidObject is returned by Decode when an invalid object is found in the packfile. - ErrInvalidObject = newDecoderError("invalid git object") + ErrInvalidObject = newError("invalid git object") // ErrPackEntryNotFound is returned by Decode when a reference in the packfile references and unknown object. - ErrPackEntryNotFound = newDecoderError("can't find a pack entry") + ErrPackEntryNotFound = newError("can't find a pack entry") // ErrZLib is returned by Decode when there was an error unzipping the packfile contents. - ErrZLib = newDecoderError("zlib reading error") + ErrZLib = newError("zlib reading error") ) const ( // DefaultMaxObjectsLimit is the maximum amount of objects the decoder will decode before // returning ErrMaxObjectsLimitReached. DefaultMaxObjectsLimit = 1 << 20 - // VersionSupported is the packfile version supported by this decoder. - VersionSupported = 2 ) // Decoder reads and decodes packfiles from an input stream. @@ -98,7 +92,7 @@ func (d *Decoder) readHeader() (uint32, error) { return 0, err } - ver, err := d.readInt32() + ver, err := ReadVersion(d.readCounter) if err != nil { return 0, err } @@ -107,7 +101,7 @@ func (d *Decoder) readHeader() (uint32, error) { return 0, ErrUnsupportedVersion } - count, err := d.readInt32() + count, err := ReadCount(d.readCounter) if err != nil { return 0, err } @@ -132,15 +126,6 @@ func (d *Decoder) validateHeader() error { return nil } -func (d *Decoder) readInt32() (uint32, error) { - var v uint32 - if err := binary.Read(d.readCounter, binary.BigEndian, &v); err != nil { - return 0, err - } - - return v, nil -} - func (d *Decoder) readObjects(count uint32) error { // This code has 50-80 µs of overhead per object not counting zlib inflation. // Together with zlib inflation, it's 400-410 µs for small objects. @@ -188,7 +173,7 @@ func (d *Decoder) newObject() (core.Object, error) { case core.CommitObject, core.TreeObject, core.BlobObject, core.TagObject: cont, err = readContent(d.readCounter) default: - err = ErrInvalidObject.addDetails("tag %q", typ) + err = ErrInvalidObject.AddDetails("tag %q", typ) } if err != nil { return nil, err @@ -206,32 +191,8 @@ func (d *Decoder) ByHash(hash core.Hash) (core.Object, error) { func (d *Decoder) ByOffset(offset int64) (core.Object, error) { hash, ok := d.offsets[offset] if !ok { - return nil, ErrPackEntryNotFound.addDetails("offset %d", offset) + return nil, ErrPackEntryNotFound.AddDetails("offset %d", offset) } return d.ByHash(hash) } - -// DecoderError specifies errors returned by Decode. -type DecoderError struct { - reason, details string -} - -func newDecoderError(reason string) *DecoderError { - return &DecoderError{reason: reason} -} - -func (e *DecoderError) Error() string { - if e.details == "" { - return e.reason - } - - return fmt.Sprintf("%s: %s", e.reason, e.details) -} - -func (e *DecoderError) addDetails(format string, args ...interface{}) *DecoderError { - return &DecoderError{ - reason: e.reason, - details: fmt.Sprintf(format, args...), - } -} diff --git a/formats/packfile/error.go b/formats/packfile/error.go new file mode 100644 index 000000000..154909f5d --- /dev/null +++ b/formats/packfile/error.go @@ -0,0 +1,27 @@ +package packfile + +import "fmt" + +// Error specifies errors returned during packfile parsing. +type Error struct { + reason, details string +} + +func newError(reason string) *Error { + return &Error{reason: reason} +} + +func (e *Error) Error() string { + if e.details == "" { + return e.reason + } + + return fmt.Sprintf("%s: %s", e.reason, e.details) +} + +func (e *Error) AddDetails(format string, args ...interface{}) *Error { + return &Error{ + reason: e.reason, + details: fmt.Sprintf(format, args...), + } +} diff --git a/storage/fs/internal/index/from_packfile.go b/storage/fs/internal/index/from_packfile.go index 973c7a068..725c310d9 100644 --- a/storage/fs/internal/index/from_packfile.go +++ b/storage/fs/internal/index/from_packfile.go @@ -3,7 +3,6 @@ package index import ( "bytes" "compress/zlib" - "encoding/binary" "fmt" "io" "os" @@ -16,8 +15,6 @@ import ( var ( // ErrEmptyPackfile is returned by Decode when no data is found in the packfile ErrEmptyPackfile = newDecoderError("empty packfile") - // ErrUnsupportedVersion is returned by Decode when packfile version is different than VersionSupported. - ErrUnsupportedVersion = newDecoderError("unsupported packfile version") // ErrMaxObjectsLimitReached is returned by Decode when the number of objects in the packfile is higher than Decoder.MaxObjectsLimit. ErrMaxObjectsLimitReached = newDecoderError("max. objects limit reached") // ErrMalformedPackfile is returned by Decode when the packfile is corrupt. @@ -31,11 +28,9 @@ var ( ) const ( - // DefaultMaxObjectsLimit is the maximum amount of objects the decoder will decode before - // returning ErrMaxObjectsLimitReached. - DefaultMaxObjectsLimit = 1 << 20 - // VersionSupported is the packfile version supported by this decoder. - VersionSupported = 2 + // DefaultMaxObjectsLimit is the maximum amount of objects the decoder will + // decode before returning ErrMaxObjectsLimitReached. + DefaultMaxObjectsLimit = 1 << 30 ) // NewFrompackfile returns a new index from a packfile reader. @@ -77,16 +72,16 @@ func readHeader(r io.Reader) (uint32, error) { return 0, ErrMalformedPackfile } - ver, err := readVersion(r) + ver, err := packfile.ReadVersion(r) if err != nil { return 0, err } - if !isSupportedVersion(ver) { - return 0, ErrUnsupportedVersion + if !packfile.IsSupportedVersion(ver) { + return 0, packfile.ErrUnsupportedVersion.AddDetails("%d", ver) } - count, err := readCount(r) + count, err := packfile.ReadCount(r) if err != nil { return 0, err } @@ -111,28 +106,6 @@ func isValidSignature(sig []byte) bool { return bytes.Equal(sig, []byte{'P', 'A', 'C', 'K'}) } -func readVersion(r io.Reader) (uint32, error) { - var v uint32 - if err := binary.Read(r, binary.BigEndian, &v); err != nil { - return 0, err - } - - return v, nil -} - -func isSupportedVersion(v uint32) bool { - return v == VersionSupported -} - -func readCount(r io.Reader) (uint32, error) { - var c uint32 - if err := binary.Read(r, binary.BigEndian, &c); err != nil { - return 0, err - } - - return c, nil -} - func isValidCount(c uint32) bool { return c <= DefaultMaxObjectsLimit } From e3353c10770cc628871834a2b93f34704d5d79fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Mon, 27 Jun 2016 14:42:15 +0200 Subject: [PATCH 098/143] refactor packfile format parser to reuse code --- formats/packfile/core.go | 20 ++++++++++++++++- formats/packfile/decoder.go | 16 ++++++-------- storage/fs/internal/index/from_packfile.go | 25 ++++------------------ 3 files changed, 30 insertions(+), 31 deletions(-) diff --git a/formats/packfile/core.go b/formats/packfile/core.go index 90f8a0ae6..219db87b0 100644 --- a/formats/packfile/core.go +++ b/formats/packfile/core.go @@ -1,11 +1,16 @@ package packfile import ( + "bytes" "encoding/binary" "io" ) var ( + // ErrEmptyPackfile is returned when no data is found in the packfile + ErrEmptyPackfile = newError("empty packfile") + // ErrBadSignature is returned when the signature in the packfile is incorrect. + ErrBadSignature = newError("malformed pack file signature") // ErrUnsupportedVersion is returned by Decode when packfile version is // different than VersionSupported. ErrUnsupportedVersion = newError("unsupported packfile version") @@ -19,7 +24,7 @@ const ( var ( // ReadVersion reads and returns the version field of a packfile. ReadVersion = readInt32 - // ReadVersion reads and returns the count of objects field of a packfile. + // ReadCount reads and returns the count of objects field of a packfile. ReadCount = readInt32 ) @@ -35,3 +40,16 @@ func readInt32(r io.Reader) (uint32, error) { func IsSupportedVersion(v uint32) bool { return v == VersionSupported } + +func ReadSignature(r io.Reader) ([]byte, error) { + var sig = make([]byte, 4) + if _, err := io.ReadFull(r, sig); err != nil { + return []byte{}, err + } + + return sig, nil +} + +func IsValidSignature(sig []byte) bool { + return bytes.Equal(sig, []byte{'P', 'A', 'C', 'K'}) +} diff --git a/formats/packfile/decoder.go b/formats/packfile/decoder.go index 0ce4a76a4..25a2f049e 100644 --- a/formats/packfile/decoder.go +++ b/formats/packfile/decoder.go @@ -1,7 +1,6 @@ package packfile import ( - "bytes" "io" "gopkg.in/src-d/go-git.v3/core" @@ -20,12 +19,8 @@ const ( ) var ( - // ErrEmptyPackfile is returned by Decode when no data is found in the packfile - ErrEmptyPackfile = newError("empty packfile") // ErrMaxObjectsLimitReached is returned by Decode when the number of objects in the packfile is higher than Decoder.MaxObjectsLimit. ErrMaxObjectsLimitReached = newError("max. objects limit reached") - // ErrMalformedPackfile is returned by Decode when the packfile is corrupt. - ErrMalformedPackfile = newError("malformed pack file, does not start with 'PACK'") // ErrInvalidObject is returned by Decode when an invalid object is found in the packfile. ErrInvalidObject = newError("invalid git object") // ErrPackEntryNotFound is returned by Decode when a reference in the packfile references and unknown object. @@ -114,13 +109,16 @@ func (d *Decoder) readHeader() (uint32, error) { } func (d *Decoder) validateHeader() error { - var h = make([]byte, 4) - if _, err := io.ReadFull(d.readCounter, h); err != nil { + sig, err := ReadSignature(d.readCounter) + if err != nil { + if err == io.EOF { + return ErrEmptyPackfile + } return err } - if !bytes.Equal(h, []byte{'P', 'A', 'C', 'K'}) { - return ErrMalformedPackfile + if !IsValidSignature(sig) { + return ErrBadSignature } return nil diff --git a/storage/fs/internal/index/from_packfile.go b/storage/fs/internal/index/from_packfile.go index 725c310d9..aec2cadb7 100644 --- a/storage/fs/internal/index/from_packfile.go +++ b/storage/fs/internal/index/from_packfile.go @@ -13,12 +13,8 @@ import ( ) var ( - // ErrEmptyPackfile is returned by Decode when no data is found in the packfile - ErrEmptyPackfile = newDecoderError("empty packfile") // ErrMaxObjectsLimitReached is returned by Decode when the number of objects in the packfile is higher than Decoder.MaxObjectsLimit. ErrMaxObjectsLimitReached = newDecoderError("max. objects limit reached") - // ErrMalformedPackfile is returned by Decode when the packfile is corrupt. - ErrMalformedPackfile = newDecoderError("malformed pack file, does not start with 'PACK'") // ErrInvalidObject is returned by Decode when an invalid object is found in the packfile. ErrInvalidObject = newDecoderError("invalid git object") // ErrPackEntryNotFound is returned by Decode when a reference in the packfile references and unknown object. @@ -60,16 +56,16 @@ func NewFromPackfile(r io.ReadSeeker) (Index, error) { } func readHeader(r io.Reader) (uint32, error) { - sig, err := readSignature(r) + sig, err := packfile.ReadSignature(r) if err != nil { if err == io.EOF { - return 0, ErrEmptyPackfile + return 0, packfile.ErrEmptyPackfile } return 0, err } - if !isValidSignature(sig) { - return 0, ErrMalformedPackfile + if !packfile.IsValidSignature(sig) { + return 0, packfile.ErrBadSignature } ver, err := packfile.ReadVersion(r) @@ -93,19 +89,6 @@ func readHeader(r io.Reader) (uint32, error) { return count, nil } -func readSignature(r io.Reader) ([]byte, error) { - var sig = make([]byte, 4) - if _, err := io.ReadFull(r, sig); err != nil { - return []byte{}, err - } - - return sig, nil -} - -func isValidSignature(sig []byte) bool { - return bytes.Equal(sig, []byte{'P', 'A', 'C', 'K'}) -} - func isValidCount(c uint32) bool { return c <= DefaultMaxObjectsLimit } From 0c78926a7ff4fa6ee0423f71411c5bae1243fe57 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Mon, 27 Jun 2016 14:54:49 +0200 Subject: [PATCH 099/143] refactor packfile format parser to reuse code --- formats/packfile/core.go | 43 ++++++++++++++++-- formats/packfile/decoder.go | 51 +++------------------- storage/fs/internal/index/from_packfile.go | 40 +++-------------- 3 files changed, 50 insertions(+), 84 deletions(-) diff --git a/formats/packfile/core.go b/formats/packfile/core.go index 219db87b0..b10ab0e7e 100644 --- a/formats/packfile/core.go +++ b/formats/packfile/core.go @@ -23,12 +23,13 @@ const ( var ( // ReadVersion reads and returns the version field of a packfile. - ReadVersion = readInt32 + ReadVersion = ReadInt32 // ReadCount reads and returns the count of objects field of a packfile. - ReadCount = readInt32 + ReadCount = ReadInt32 ) -func readInt32(r io.Reader) (uint32, error) { +// ReadInt32 reads an int32 from the packfile as Big Endian. +func ReadInt32(r io.Reader) (uint32, error) { var v uint32 if err := binary.Read(r, binary.BigEndian, &v); err != nil { return 0, err @@ -37,10 +38,13 @@ func readInt32(r io.Reader) (uint32, error) { return v, nil } +// IsSupportedVersion returns whether version v is supported by the parser. +// The current supported version is VersionSupported, defined above. func IsSupportedVersion(v uint32) bool { return v == VersionSupported } +// ReadSignature reads an return the signature in the packfile. func ReadSignature(r io.Reader) ([]byte, error) { var sig = make([]byte, 4) if _, err := io.ReadFull(r, sig); err != nil { @@ -50,6 +54,39 @@ func ReadSignature(r io.Reader) ([]byte, error) { return sig, nil } +// IsValidSignature returns if sig is a valid packfile signature. func IsValidSignature(sig []byte) bool { return bytes.Equal(sig, []byte{'P', 'A', 'C', 'K'}) } + +// ReadHeader reads the packfile header (signature, version and object count) +// and returns the object count. +func ReadHeader(r io.Reader) (uint32, error) { + sig, err := ReadSignature(r) + if err != nil { + if err == io.EOF { + return 0, ErrEmptyPackfile + } + return 0, err + } + + if !IsValidSignature(sig) { + return 0, ErrBadSignature + } + + ver, err := ReadVersion(r) + if err != nil { + return 0, err + } + + if !IsSupportedVersion(ver) { + return 0, ErrUnsupportedVersion.AddDetails("%d", ver) + } + + count, err := ReadCount(r) + if err != nil { + return 0, err + } + + return count, nil +} diff --git a/formats/packfile/decoder.go b/formats/packfile/decoder.go index 25a2f049e..ca4d365fe 100644 --- a/formats/packfile/decoder.go +++ b/formats/packfile/decoder.go @@ -68,60 +68,19 @@ func NewDecoder(r io.Reader) *Decoder { func (d *Decoder) Decode(s core.ObjectStorage) (int64, error) { d.s = s - count, err := d.readHeader() + count, err := ReadHeader(d.readCounter) if err != nil { return d.readCounter.Count(), err } - err = d.readObjects(count) - - return d.readCounter.Count(), err -} - -func (d *Decoder) readHeader() (uint32, error) { - if err := d.validateHeader(); err != nil { - if err == io.EOF { - return 0, ErrEmptyPackfile - } - - return 0, err - } - - ver, err := ReadVersion(d.readCounter) - if err != nil { - return 0, err - } - - if ver > VersionSupported { - return 0, ErrUnsupportedVersion - } - - count, err := ReadCount(d.readCounter) - if err != nil { - return 0, err - } - if count > d.MaxObjectsLimit { - return 0, ErrMaxObjectsLimitReached - } - - return count, nil -} - -func (d *Decoder) validateHeader() error { - sig, err := ReadSignature(d.readCounter) - if err != nil { - if err == io.EOF { - return ErrEmptyPackfile - } - return err + return d.readCounter.Count(), + ErrMaxObjectsLimitReached.AddDetails("%d", count) } - if !IsValidSignature(sig) { - return ErrBadSignature - } + err = d.readObjects(count) - return nil + return d.readCounter.Count(), err } func (d *Decoder) readObjects(count uint32) error { diff --git a/storage/fs/internal/index/from_packfile.go b/storage/fs/internal/index/from_packfile.go index aec2cadb7..8f62a13ad 100644 --- a/storage/fs/internal/index/from_packfile.go +++ b/storage/fs/internal/index/from_packfile.go @@ -31,11 +31,15 @@ const ( // NewFrompackfile returns a new index from a packfile reader. func NewFromPackfile(r io.ReadSeeker) (Index, error) { - count, err := readHeader(r) + count, err := packfile.ReadHeader(r) if err != nil { return nil, err } + if !isValidCount(count) { + return nil, ErrMaxObjectsLimitReached.addDetails("%d", count) + } + result := make(map[core.Hash]int64) for i := 0; i < int(count); i++ { @@ -55,40 +59,6 @@ func NewFromPackfile(r io.ReadSeeker) (Index, error) { return result, nil } -func readHeader(r io.Reader) (uint32, error) { - sig, err := packfile.ReadSignature(r) - if err != nil { - if err == io.EOF { - return 0, packfile.ErrEmptyPackfile - } - return 0, err - } - - if !packfile.IsValidSignature(sig) { - return 0, packfile.ErrBadSignature - } - - ver, err := packfile.ReadVersion(r) - if err != nil { - return 0, err - } - - if !packfile.IsSupportedVersion(ver) { - return 0, packfile.ErrUnsupportedVersion.AddDetails("%d", ver) - } - - count, err := packfile.ReadCount(r) - if err != nil { - return 0, err - } - - if !isValidCount(count) { - return 0, ErrMaxObjectsLimitReached - } - - return count, nil -} - func isValidCount(c uint32) bool { return c <= DefaultMaxObjectsLimit } From 6a5bc18c8df9a2978565eed91475f08cf7a14ee0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Mon, 27 Jun 2016 16:36:43 +0200 Subject: [PATCH 100/143] refactor packfile format parser to reuse code --- formats/packfile/core.go | 111 +++++++++++++++++++++ formats/packfile/decoder.go | 2 +- formats/packfile/object_at.go | 71 +++---------- storage/fs/internal/index/from_packfile.go | 109 ++------------------ storage/fs/store.go | 19 +++- 5 files changed, 151 insertions(+), 161 deletions(-) diff --git a/formats/packfile/core.go b/formats/packfile/core.go index b10ab0e7e..1cf712c66 100644 --- a/formats/packfile/core.go +++ b/formats/packfile/core.go @@ -4,6 +4,8 @@ import ( "bytes" "encoding/binary" "io" + + "gopkg.in/src-d/go-git.v3/core" ) var ( @@ -90,3 +92,112 @@ func ReadHeader(r io.Reader) (uint32, error) { return count, nil } + +// ReadObjectTypeAndLength reads and return an the object type and the length field +// from an object entry in a packfile. +func ReadObjectTypeAndLength(r io.ByteReader) (core.ObjectType, int64, error) { + t, c, err := readType(r) + if err != nil { + return t, 0, err + } + + l, err := readLength(c, r) + + return t, l, err +} + +func readType(r io.ByteReader) (core.ObjectType, byte, error) { + var c byte + var err error + if c, err = r.ReadByte(); err != nil { + return core.ObjectType(0), 0, err + } + typ := parseType(c) + + return typ, c, nil +} + +var ( + maskContinue = uint8(128) // 1000 0000 + maskType = uint8(112) // 0111 0000 + maskFirstLength = uint8(15) // 0000 1111 + firstLengthBits = uint8(4) // the first byte has 4 bits to store the length + maskLength = uint8(127) // 0111 1111 + lengthBits = uint8(7) // subsequent bytes has 7 bits to store the length +) + +func parseType(b byte) core.ObjectType { + return core.ObjectType((b & maskType) >> firstLengthBits) +} + +// Reads the last 4 bits from the first byte in the object. +// If more bytes are required for the length, read more bytes +// and use the first 7 bits of each one until no more bytes +// are required. +func readLength(first byte, r io.ByteReader) (int64, error) { + length := int64(first & maskFirstLength) + + c := first + shift := firstLengthBits + var err error + for moreBytesInLength(c) { + if c, err = r.ReadByte(); err != nil { + return 0, err + } + + length += int64(c&maskLength) << shift + shift += lengthBits + } + + return length, nil +} + +func moreBytesInLength(c byte) bool { + return c&maskContinue > 0 +} + +// ReadNegativeOffset reads and returns an offset from a OFS DELTA +// object entry in a packfile. OFS DELTA offsets are specified in Git +// VLQ special format: +// +// Ordinary VLQ has some redundancies, example: the number 358 can be +// encoded as the 2-octet VLQ 0x8166 or the 3-octet VLQ 0x808166 or the +// 4-octet VLQ 0x80808166 and so forth. +// +// To avoid these redundancies, the VLQ format used in Git removes this +// prepending redundancy and extends the representable range of shorter +// VLQs by adding an offset to VLQs of 2 or more octets in such a way +// that the lowest possible value for such an (N+1)-octet VLQ becomes +// exactly one more than the maximum possible value for an N-octet VLQ. +// In particular, since a 1-octet VLQ can store a maximum value of 127, +// the minimum 2-octet VLQ (0x8000) is assigned the value 128 instead of +// 0. Conversely, the maximum value of such a 2-octet VLQ (0xff7f) is +// 16511 instead of just 16383. Similarly, the minimum 3-octet VLQ +// (0x808000) has a value of 16512 instead of zero, which means +// that the maximum 3-octet VLQ (0xffff7f) is 2113663 instead of +// just 2097151. And so forth. +// +// This is how the offset is saved in C: +// +// dheader[pos] = ofs & 127; while (ofs >>= 7) dheader[--pos] = 128 +// | (--ofs & 127); +// +func ReadNegativeOffset(r io.ByteReader) (int64, error) { + var c byte + var err error + + if c, err = r.ReadByte(); err != nil { + return 0, err + } + + var offset = int64(c & maskLength) + for moreBytesInLength(c) { + offset++ + if c, err = r.ReadByte(); err != nil { + return 0, err + } + offset = (offset << lengthBits) + int64(c&maskLength) + } + + return -offset, nil +} diff --git a/formats/packfile/decoder.go b/formats/packfile/decoder.go index ca4d365fe..fac3b1d52 100644 --- a/formats/packfile/decoder.go +++ b/formats/packfile/decoder.go @@ -115,7 +115,7 @@ func (d *Decoder) newObject() (core.Object, error) { objectStart := d.readCounter.Count() - typ, sz, err := readTypeAndLength(d.readCounter) + typ, sz, err := ReadObjectTypeAndLength(d.readCounter) if err != nil { return nil, err } diff --git a/formats/packfile/object_at.go b/formats/packfile/object_at.go index e37ec1df2..9d5c9a58b 100644 --- a/formats/packfile/object_at.go +++ b/formats/packfile/object_at.go @@ -19,8 +19,17 @@ type AlreadySeener interface { ByOffset(offset int64) (core.Object, error) } +type ByteReadReader interface { + io.ByteReader + io.Reader +} +type ByteReadReadSeeker interface { + ByteReadReader + io.Seeker +} + // ObjectAt returns the object at the given offset in a packfile. -func ObjectAt(packfile io.ReadSeeker, +func ObjectAt(packfile ByteReadReadSeeker, offset int64, remember AlreadySeener) (core.Object, error) { _, err := packfile.Seek(offset, os.SEEK_SET) @@ -28,7 +37,7 @@ func ObjectAt(packfile io.ReadSeeker, return nil, err } - typ, length, err := readTypeAndLength(packfile) + typ, length, err := ReadObjectTypeAndLength(packfile) if err != nil { return nil, err } @@ -53,64 +62,14 @@ func ObjectAt(packfile io.ReadSeeker, return memory.NewObject(typ, length, cont), err } -func readTypeAndLength(packfile io.Reader) (core.ObjectType, int64, error) { - var buf [1]byte - if _, err := packfile.Read(buf[:]); err != nil { - return core.ObjectType(0), 0, err - } - - typ := parseType(buf[0]) - length, err := readLength(buf[0], packfile) - - return typ, length, err -} - -var ( - maskContinue = uint8(128) // 1000 0000 - maskType = uint8(112) // 0111 0000 - maskFirstLength = uint8(15) // 0000 1111 - firstLengthBits = uint8(4) // the first byte has 4 bits to store the length - maskLength = uint8(127) // 0111 1111 - lengthBits = uint8(7) // subsequent bytes has 7 bits to store the length -) - -func parseType(b byte) core.ObjectType { - return core.ObjectType((b & maskType) >> firstLengthBits) -} - -// Reads the last 4 bits from the first byte in the object. -// If more bytes are required for the length, read more bytes -// and use the first 7 bits of each one until no more bytes -// are required. -func readLength(first byte, packfile io.Reader) (int64, error) { - length := int64(first & maskFirstLength) - - buf := [1]byte{first} - shift := firstLengthBits - for moreBytesInLength(buf[0]) { - if _, err := packfile.Read(buf[:]); err != nil { - return 0, err - } - - length += int64(buf[0]&maskLength) << shift - shift += lengthBits - } - - return length, nil -} - -func moreBytesInLength(b byte) bool { - return b&maskContinue > 0 -} - -func readContent(packfile io.Reader) ([]byte, error) { +func readContent(packfile ByteReadReader) ([]byte, error) { buf := bytes.NewBuffer(nil) err := inflate(packfile, buf) return buf.Bytes(), err } -func readContentREFDelta(packfile io.Reader, remember AlreadySeener) (content []byte, +func readContentREFDelta(packfile ByteReadReader, remember AlreadySeener) (content []byte, typ core.ObjectType, err error) { var ref core.Hash @@ -136,7 +95,7 @@ func readContentREFDelta(packfile io.Reader, remember AlreadySeener) (content [] return content, referenced.Type(), nil } -func inflate(r io.Reader, w io.Writer) (err error) { +func inflate(r ByteReadReader, w io.Writer) (err error) { zr, err := zlib.NewReader(r) if err != nil { if err != zlib.ErrHeader { @@ -156,7 +115,7 @@ func inflate(r io.Reader, w io.Writer) (err error) { return err } -func readContentOFSDelta(packfile io.Reader, +func readContentOFSDelta(packfile ByteReadReader, objectStart int64, remember AlreadySeener) (content []byte, typ core.ObjectType, err error) { diff --git a/storage/fs/internal/index/from_packfile.go b/storage/fs/internal/index/from_packfile.go index 8f62a13ad..ade7ea05f 100644 --- a/storage/fs/internal/index/from_packfile.go +++ b/storage/fs/internal/index/from_packfile.go @@ -30,7 +30,7 @@ const ( ) // NewFrompackfile returns a new index from a packfile reader. -func NewFromPackfile(r io.ReadSeeker) (Index, error) { +func NewFromPackfile(r packfile.ByteReadReadSeeker) (Index, error) { count, err := packfile.ReadHeader(r) if err != nil { return nil, err @@ -63,7 +63,8 @@ func isValidCount(c uint32) bool { return c <= DefaultMaxObjectsLimit } -func readObject(r io.ReadSeeker, memo map[core.Hash]int64) (core.Object, error) { +func readObject(r packfile.ByteReadReadSeeker, + memo map[core.Hash]int64) (core.Object, error) { start, err := currentOffset(r) if err != nil { @@ -73,7 +74,7 @@ func readObject(r io.ReadSeeker, memo map[core.Hash]int64) (core.Object, error) var typ core.ObjectType var sz int64 - typ, sz, err = readTypeAndLength(r) + typ, sz, err = packfile.ReadObjectTypeAndLength(r) if err != nil { return nil, err } @@ -98,56 +99,6 @@ func readObject(r io.ReadSeeker, memo map[core.Hash]int64) (core.Object, error) return memory.NewObject(typ, sz, cont), nil } -func readTypeAndLength(r io.Reader) (core.ObjectType, int64, error) { - var buf [1]byte - if _, err := r.Read(buf[:]); err != nil { - return core.ObjectType(0), 0, err - } - - typ := parseType(buf[0]) - length, err := readLength(buf[0], r) - - return typ, length, err -} - -var ( - maskContinue = uint8(128) // 1000 0000 - maskType = uint8(112) // 0111 0000 - maskFirstLength = uint8(15) // 0000 1111 - firstLengthBits = uint8(4) // the first byte has 4 bits to store the length - maskLength = uint8(127) // 0111 1111 - lengthBits = uint8(7) // subsequent bytes has 7 bits to store the length -) - -func parseType(b byte) core.ObjectType { - return core.ObjectType((b & maskType) >> firstLengthBits) -} - -// Reads the last 4 bits from the first byte in the object. -// If more bytes are required for the length, read more bytes -// and use the first 7 bits of each one until no more bytes -// are required. -func readLength(first byte, packfile io.Reader) (int64, error) { - length := int64(first & maskFirstLength) - - buf := [1]byte{first} - shift := firstLengthBits - for moreBytesInLength(buf[0]) { - if _, err := packfile.Read(buf[:]); err != nil { - return 0, err - } - - length += int64(buf[0]&maskLength) << shift - shift += lengthBits - } - - return length, nil -} - -func moreBytesInLength(b byte) bool { - return b&maskContinue > 0 -} - func readContent(r io.Reader) ([]byte, error) { buf := bytes.NewBuffer(nil) err := inflate(r, buf) @@ -217,7 +168,8 @@ func (e *DecoderError) addDetails(format string, args ...interface{}) *DecoderEr } } -func readContentOFSDelta(r io.ReadSeeker, objectStart int64, memo map[core.Hash]int64) ( +func readContentOFSDelta(r packfile.ByteReadReadSeeker, + objectStart int64, memo map[core.Hash]int64) ( content []byte, typ core.ObjectType, err error) { _, err = currentOffset(r) @@ -225,7 +177,7 @@ func readContentOFSDelta(r io.ReadSeeker, objectStart int64, memo map[core.Hash] return nil, core.ObjectType(0), err } - offset, err := readNegativeOffset(r) + offset, err := packfile.ReadNegativeOffset(r) if err != nil { return nil, core.ObjectType(0), err } @@ -259,51 +211,6 @@ func readContentOFSDelta(r io.ReadSeeker, objectStart int64, memo map[core.Hash] return patched, refObj.Type(), nil } -// Git VLQ is quite special: -// -// Ordinary VLQ has some redundancies, example: the number 358 can be -// encoded as the 2-octet VLQ 0x8166 or the 3-octet VLQ 0x808166 or the -// 4-octet VLQ 0x80808166 and so forth. -// -// To avoid these redundancies, the VLQ format used in Git removes this -// prepending redundancy and extends the representable range of shorter -// VLQs by adding an offset to VLQs of 2 or more octets in such a way -// that the lowest possible value for such an (N+1)-octet VLQ becomes -// exactly one more than the maximum possible value for an N-octet VLQ. -// In particular, since a 1-octet VLQ can store a maximum value of 127, -// the minimum 2-octet VLQ (0x8000) is assigned the value 128 instead of -// 0. Conversely, the maximum value of such a 2-octet VLQ (0xff7f) is -// 16511 instead of just 16383. Similarly, the minimum 3-octet VLQ -// (0x808000) has a value of 16512 instead of zero, which means that the -// maximum 3-octet VLQ (0xffff7f) is 2113663 instead of just 2097151. -// And so forth. -// -// This is how the offset is saved in C: -// -// dheader[pos] = ofs & 127; -// while (ofs >>= 7) -// dheader[--pos] = 128 | (--ofs & 127); -// -func readNegativeOffset(r io.Reader) (int64, error) { - var b byte - var err error - - if b, err = readByte(r); err != nil { - return 0, err - } - - var offset = int64(b & maskLength) - for moreBytesInLength(b) { - offset++ - if b, err = readByte(r); err != nil { - return 0, err - } - offset = (offset << lengthBits) + int64(b&maskLength) - } - - return -offset, nil -} - func readByte(r io.Reader) (byte, error) { buf := [1]byte{} if _, err := r.Read(buf[:]); err != nil { @@ -317,7 +224,7 @@ func currentOffset(r io.Seeker) (int64, error) { return r.Seek(0, os.SEEK_CUR) } -func readContentREFDelta(r io.ReadSeeker, memo map[core.Hash]int64) ( +func readContentREFDelta(r packfile.ByteReadReadSeeker, memo map[core.Hash]int64) ( content []byte, typ core.ObjectType, err error) { var ref core.Hash diff --git a/storage/fs/store.go b/storage/fs/store.go index 25dda0ae2..2e6a818fa 100644 --- a/storage/fs/store.go +++ b/storage/fs/store.go @@ -69,7 +69,20 @@ func buildIndexFromPackfile(dir *gitdir.GitDir) (index.Index, error) { } }() - return index.NewFromPackfile(f) + return index.NewFromPackfile(&fileByteReader{*f}) +} + +type fileByteReader struct { + os.File +} + +func (f *fileByteReader) ReadByte() (byte, error) { + buf := [1]byte{} + if _, err := f.Read(buf[:]); err != nil { + return 0, err + } + + return buf[0], nil } func buildIndexFromIdxfile(path string) (index.Index, error) { @@ -120,7 +133,7 @@ func (s *ObjectStorage) Get(h core.Hash) (core.Object, error) { } }() - return packfile.ObjectAt(f, offset, s) + return packfile.ObjectAt(&fileByteReader{*f}, offset, s) } // Iter returns an iterator for all the objects in the packfile with the @@ -171,5 +184,5 @@ func (s *ObjectStorage) ByOffset(offset int64) (core.Object, error) { } }() - return packfile.ObjectAt(f, offset, s) + return packfile.ObjectAt(&fileByteReader{*f}, offset, s) } From 6e85d44af61bed6c54d0fe52e74a1ed15e89bf5d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Mon, 27 Jun 2016 16:47:16 +0200 Subject: [PATCH 101/143] refactor packfile format parser to reuse code --- formats/packfile/core.go | 6 +-- formats/packfile/decoder.go | 28 ++++++++----- formats/packfile/error.go | 2 +- storage/fs/internal/index/from_packfile.go | 47 ++++++---------------- 4 files changed, 35 insertions(+), 48 deletions(-) diff --git a/formats/packfile/core.go b/formats/packfile/core.go index 1cf712c66..ed7eb5fe7 100644 --- a/formats/packfile/core.go +++ b/formats/packfile/core.go @@ -10,12 +10,12 @@ import ( var ( // ErrEmptyPackfile is returned when no data is found in the packfile - ErrEmptyPackfile = newError("empty packfile") + ErrEmptyPackfile = NewError("empty packfile") // ErrBadSignature is returned when the signature in the packfile is incorrect. - ErrBadSignature = newError("malformed pack file signature") + ErrBadSignature = NewError("malformed pack file signature") // ErrUnsupportedVersion is returned by Decode when packfile version is // different than VersionSupported. - ErrUnsupportedVersion = newError("unsupported packfile version") + ErrUnsupportedVersion = NewError("unsupported packfile version") ) const ( diff --git a/formats/packfile/decoder.go b/formats/packfile/decoder.go index fac3b1d52..acb6c1579 100644 --- a/formats/packfile/decoder.go +++ b/formats/packfile/decoder.go @@ -19,19 +19,27 @@ const ( ) var ( - // ErrMaxObjectsLimitReached is returned by Decode when the number of objects in the packfile is higher than Decoder.MaxObjectsLimit. - ErrMaxObjectsLimitReached = newError("max. objects limit reached") - // ErrInvalidObject is returned by Decode when an invalid object is found in the packfile. - ErrInvalidObject = newError("invalid git object") - // ErrPackEntryNotFound is returned by Decode when a reference in the packfile references and unknown object. - ErrPackEntryNotFound = newError("can't find a pack entry") - // ErrZLib is returned by Decode when there was an error unzipping the packfile contents. - ErrZLib = newError("zlib reading error") + // ErrMaxObjectsLimitReached is returned by Decode when the number + // of objects in the packfile is higher than + // Decoder.MaxObjectsLimit. + ErrMaxObjectsLimitReached = NewError("max. objects limit reached") + + // ErrInvalidObject is returned by Decode when an invalid object is + // found in the packfile. + ErrInvalidObject = NewError("invalid git object") + + // ErrPackEntryNotFound is returned by Decode when a reference in + // the packfile references and unknown object. + ErrPackEntryNotFound = NewError("can't find a pack entry") + + // ErrZLib is returned by Decode when there was an error unzipping + // the packfile contents. + ErrZLib = NewError("zlib reading error") ) const ( - // DefaultMaxObjectsLimit is the maximum amount of objects the decoder will decode before - // returning ErrMaxObjectsLimitReached. + // DefaultMaxObjectsLimit is the maximum amount of objects the + // decoder will decode before returning ErrMaxObjectsLimitReached. DefaultMaxObjectsLimit = 1 << 20 ) diff --git a/formats/packfile/error.go b/formats/packfile/error.go index 154909f5d..671eadbb7 100644 --- a/formats/packfile/error.go +++ b/formats/packfile/error.go @@ -7,7 +7,7 @@ type Error struct { reason, details string } -func newError(reason string) *Error { +func NewError(reason string) *Error { return &Error{reason: reason} } diff --git a/storage/fs/internal/index/from_packfile.go b/storage/fs/internal/index/from_packfile.go index ade7ea05f..8468195fc 100644 --- a/storage/fs/internal/index/from_packfile.go +++ b/storage/fs/internal/index/from_packfile.go @@ -13,14 +13,17 @@ import ( ) var ( - // ErrMaxObjectsLimitReached is returned by Decode when the number of objects in the packfile is higher than Decoder.MaxObjectsLimit. - ErrMaxObjectsLimitReached = newDecoderError("max. objects limit reached") - // ErrInvalidObject is returned by Decode when an invalid object is found in the packfile. - ErrInvalidObject = newDecoderError("invalid git object") - // ErrPackEntryNotFound is returned by Decode when a reference in the packfile references and unknown object. - ErrPackEntryNotFound = newDecoderError("can't find a pack entry") - // ErrZLib is returned by Decode when there was an error unzipping the packfile contents. - ErrZLib = newDecoderError("zlib reading error") + // ErrInvalidObject is returned by Decode when an invalid object is + // found in the packfile. + ErrInvalidObject = packfile.NewError("invalid git object") + + // ErrPackEntryNotFound is returned by Decode when a reference in + // the packfile references and unknown object. + ErrPackEntryNotFound = packfile.NewError("can't find a pack entry") + + // ErrZLib is returned by Decode when there was an error unzipping + // the packfile contents. + ErrZLib = packfile.NewError("zlib reading error") ) const ( @@ -37,7 +40,7 @@ func NewFromPackfile(r packfile.ByteReadReadSeeker) (Index, error) { } if !isValidCount(count) { - return nil, ErrMaxObjectsLimitReached.addDetails("%d", count) + return nil, packfile.ErrMaxObjectsLimitReached.AddDetails("%d", count) } result := make(map[core.Hash]int64) @@ -90,7 +93,7 @@ func readObject(r packfile.ByteReadReadSeeker, case core.CommitObject, core.TreeObject, core.BlobObject, core.TagObject: cont, err = readContent(r) default: - err = ErrInvalidObject.addDetails("tag %q", typ) + err = packfile.ErrInvalidObject.AddDetails("tag %q", typ) } if err != nil { return nil, err @@ -144,30 +147,6 @@ func inflate(r io.Reader, w io.Writer) (err error) { return err } -// DecoderError specifies errors returned by Decode. -type DecoderError struct { - reason, details string -} - -func newDecoderError(reason string) *DecoderError { - return &DecoderError{reason: reason} -} - -func (e *DecoderError) Error() string { - if e.details == "" { - return e.reason - } - - return fmt.Sprintf("%s: %s", e.reason, e.details) -} - -func (e *DecoderError) addDetails(format string, args ...interface{}) *DecoderError { - return &DecoderError{ - reason: e.reason, - details: fmt.Sprintf(format, args...), - } -} - func readContentOFSDelta(r packfile.ByteReadReadSeeker, objectStart int64, memo map[core.Hash]int64) ( content []byte, typ core.ObjectType, err error) { From 76483efd520f6733d17a14a8ac9ed43622120a95 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Mon, 27 Jun 2016 18:05:22 +0200 Subject: [PATCH 102/143] WIP refactor packfile format parser to reuse code --- formats/packfile/core.go | 117 +++++++++++++++++++++ formats/packfile/decoder.go | 4 +- formats/packfile/object_at.go | 82 --------------- formats/packfile/reader.go | 11 ++ storage/fs/internal/index/from_packfile.go | 41 -------- 5 files changed, 130 insertions(+), 125 deletions(-) create mode 100644 formats/packfile/reader.go diff --git a/formats/packfile/core.go b/formats/packfile/core.go index ed7eb5fe7..8ec8c5508 100644 --- a/formats/packfile/core.go +++ b/formats/packfile/core.go @@ -2,10 +2,13 @@ package packfile import ( "bytes" + "compress/zlib" "encoding/binary" + "fmt" "io" "gopkg.in/src-d/go-git.v3/core" + "gopkg.in/src-d/go-git.v3/storage/memory" ) var ( @@ -201,3 +204,117 @@ func ReadNegativeOffset(r io.ByteReader) (int64, error) { return -offset, nil } + +func ReadObject(r Reader) (core.Object, error) { + start, err := r.Offset() + if err != nil { + return nil, err + } + + var typ core.ObjectType + var sz int64 + typ, sz, err = ReadObjectTypeAndLength(r) + if err != nil { + return nil, err + } + + var cont []byte + switch typ { + case core.CommitObject, core.TreeObject, core.BlobObject, core.TagObject: + cont, err = ReadNonDeltaObjectContent(r) + case core.REFDeltaObject: + cont, typ, err = ReadREFDeltaObjectContent(r) + case core.OFSDeltaObject: + cont, typ, err = readOFSDeltaObjectContent(r, start) + default: + err = ErrInvalidObject.AddDetails("tag %q", typ) + } + if err != nil { + return nil, err + } + + if int64(len(cont)) != sz { + return nil, fmt.Errorf("corrupt packfile: size missmatch") + } + + return memory.NewObject(typ, int64(len(cont)), cont), nil +} + +var ReadNonDeltaObjectContent = ReadZip + +func ReadZip(r Reader) ([]byte, error) { + buf := bytes.NewBuffer(nil) + err := inflate(r, buf) + + return buf.Bytes(), err +} + +func inflate(r Reader, w io.Writer) (err error) { + zr, err := zlib.NewReader(r) + if err != nil { + if err != zlib.ErrHeader { + return fmt.Errorf("zlib reading error: %s", err) + } + } + + defer func() { + closeErr := zr.Close() + if err == nil { + err = closeErr + } + }() + + _, err = io.Copy(w, zr) + + return err +} + +func ReadREFDeltaObjectContent(r Reader) ([]byte, core.ObjectType, error) { + var refHash core.Hash + var err error + if _, err = io.ReadFull(r, refHash[:]); err != nil { + return nil, core.ObjectType(0), err + } + + refObj, err := r.RecallByHash(refHash) + if err != nil { + return nil, core.ObjectType(0), fmt.Errorf("reference not found: %s", refHash) + } + + content, err := ReadSolveDelta(r, refObj.Content()) + if err != nil { + return nil, refObj.Type(), err + } + + return content, refObj.Type(), nil +} + +func ReadSolveDelta(r Reader, base []byte) ([]byte, error) { + diff, err := ReadZip(r) + if err != nil { + return nil, err + } + + return PatchDelta(base, diff), nil +} + +func readOFSDeltaObjectContent(r Reader, start int64) ( + []byte, core.ObjectType, error) { + + jump, err := ReadNegativeOffset(r) + if err != nil { + return nil, core.ObjectType(0), err + } + + ref, err := r.RecallByOffset(start + jump) + if err != nil { + return nil, core.ObjectType(0), err + } + + content, err := ReadSolveDelta(r, ref.Content()) + if err != nil { + return nil, ref.Type(), err + } + + return content, ref.Type(), nil +} diff --git a/formats/packfile/decoder.go b/formats/packfile/decoder.go index acb6c1579..d3de2433c 100644 --- a/formats/packfile/decoder.go +++ b/formats/packfile/decoder.go @@ -148,12 +148,12 @@ func (d *Decoder) newObject() (core.Object, error) { } // ByHash returns an already seen object by its hash. -func (d *Decoder) ByHash(hash core.Hash) (core.Object, error) { +func (d *Decoder) RecallByHash(hash core.Hash) (core.Object, error) { return d.s.Get(hash) } // ByOffset returns an already seen object by its offset in the packfile. -func (d *Decoder) ByOffset(offset int64) (core.Object, error) { +func (d *Decoder) RecallByOffset(offset int64) (core.Object, error) { hash, ok := d.offsets[offset] if !ok { return nil, ErrPackEntryNotFound.AddDetails("offset %d", offset) diff --git a/formats/packfile/object_at.go b/formats/packfile/object_at.go index 9d5c9a58b..7655069a6 100644 --- a/formats/packfile/object_at.go +++ b/formats/packfile/object_at.go @@ -1,8 +1,6 @@ package packfile import ( - "bytes" - "compress/zlib" "fmt" "io" "os" @@ -62,86 +60,6 @@ func ObjectAt(packfile ByteReadReadSeeker, return memory.NewObject(typ, length, cont), err } -func readContent(packfile ByteReadReader) ([]byte, error) { - buf := bytes.NewBuffer(nil) - err := inflate(packfile, buf) - - return buf.Bytes(), err -} - -func readContentREFDelta(packfile ByteReadReader, remember AlreadySeener) (content []byte, - typ core.ObjectType, err error) { - - var ref core.Hash - if _, err = io.ReadFull(packfile, ref[:]); err != nil { - return nil, core.ObjectType(0), err - } - - diff := bytes.NewBuffer(nil) - if err = inflate(packfile, diff); err != nil { - return nil, core.ObjectType(0), err - } - - referenced, err := remember.ByHash(ref) - if err != nil { - return nil, core.ObjectType(0), fmt.Errorf("reference not found: %s", ref) - } - - content = PatchDelta(referenced.Content(), diff.Bytes()) - if content == nil { - return nil, core.ObjectType(0), fmt.Errorf("patching error: %q", ref) - } - - return content, referenced.Type(), nil -} - -func inflate(r ByteReadReader, w io.Writer) (err error) { - zr, err := zlib.NewReader(r) - if err != nil { - if err != zlib.ErrHeader { - return fmt.Errorf("zlib reading error: %s", err) - } - } - - defer func() { - closeErr := zr.Close() - if err == nil { - err = closeErr - } - }() - - _, err = io.Copy(w, zr) - - return err -} - -func readContentOFSDelta(packfile ByteReadReader, - objectStart int64, remember AlreadySeener) (content []byte, - typ core.ObjectType, err error) { - - offset, err := readNegativeOffset(packfile) - if err != nil { - return nil, core.ObjectType(0), err - } - - diff := bytes.NewBuffer(nil) - if err = inflate(packfile, diff); err != nil { - return nil, core.ObjectType(0), err - } - - referenced, err := remember.ByOffset(objectStart + offset) - if err != nil { - return nil, core.ObjectType(0), err - } - - patched := PatchDelta(referenced.Content(), diff.Bytes()) - if patched == nil { - return nil, core.ObjectType(0), fmt.Errorf("paching error") - } - - return patched, referenced.Type(), nil -} - // Git VLQ is quite special: // // Ordinary VLQ has some redundancies, example: the number 358 can be diff --git a/formats/packfile/reader.go b/formats/packfile/reader.go new file mode 100644 index 000000000..cdd3c7517 --- /dev/null +++ b/formats/packfile/reader.go @@ -0,0 +1,11 @@ +package packfile + +import "gopkg.in/src-d/go-git.v3/core" + +type Reader interface { + Read(p []byte) (int, error) + ReadByte() (byte, error) + Offset() (int64, error) + RecallByOffset(int64) (core.Object, error) + RecallByHash(core.Hash) (core.Object, error) +} diff --git a/storage/fs/internal/index/from_packfile.go b/storage/fs/internal/index/from_packfile.go index 8468195fc..e88037142 100644 --- a/storage/fs/internal/index/from_packfile.go +++ b/storage/fs/internal/index/from_packfile.go @@ -9,7 +9,6 @@ import ( "gopkg.in/src-d/go-git.v3/core" "gopkg.in/src-d/go-git.v3/formats/packfile" - "gopkg.in/src-d/go-git.v3/storage/memory" ) var ( @@ -66,42 +65,6 @@ func isValidCount(c uint32) bool { return c <= DefaultMaxObjectsLimit } -func readObject(r packfile.ByteReadReadSeeker, - memo map[core.Hash]int64) (core.Object, error) { - - start, err := currentOffset(r) - if err != nil { - return nil, err - } - _ = start - - var typ core.ObjectType - var sz int64 - typ, sz, err = packfile.ReadObjectTypeAndLength(r) - if err != nil { - return nil, err - } - - var cont []byte - switch typ { - case core.REFDeltaObject: - cont, typ, err = readContentREFDelta(r, memo) - sz = int64(len(cont)) - case core.OFSDeltaObject: - cont, typ, err = readContentOFSDelta(r, start, memo) - sz = int64(len(cont)) - case core.CommitObject, core.TreeObject, core.BlobObject, core.TagObject: - cont, err = readContent(r) - default: - err = packfile.ErrInvalidObject.AddDetails("tag %q", typ) - } - if err != nil { - return nil, err - } - - return memory.NewObject(typ, sz, cont), nil -} - func readContent(r io.Reader) ([]byte, error) { buf := bytes.NewBuffer(nil) err := inflate(r, buf) @@ -199,10 +162,6 @@ func readByte(r io.Reader) (byte, error) { return buf[0], nil } -func currentOffset(r io.Seeker) (int64, error) { - return r.Seek(0, os.SEEK_CUR) -} - func readContentREFDelta(r packfile.ByteReadReadSeeker, memo map[core.Hash]int64) ( content []byte, typ core.ObjectType, err error) { From ee60829b4a6d684b60ec79c12d755b880f6cea31 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Tue, 28 Jun 2016 17:17:03 +0200 Subject: [PATCH 103/143] refactor packfile format parser to reuse code --- blame_test.go | 10 +- common_test.go | 17 +- formats/packfile/core.go | 13 +- formats/packfile/decoder.go | 93 +++------- formats/packfile/decoder_test.go | 20 +- formats/packfile/object_at.go | 115 ------------ formats/packfile/reader.go | 15 ++ formats/packfile/seekable_reader.go | 83 +++++++++ formats/packfile/stream_reader.go | 67 +++++++ references_test.go | 8 +- remote_test.go | 5 +- repository.go | 5 +- storage/fs/internal/index/from_packfile.go | 203 --------------------- storage/fs/internal/index/index.go | 52 +++++- storage/fs/store.go | 58 +----- storage/fs/store_test.go | 49 +---- 16 files changed, 293 insertions(+), 520 deletions(-) delete mode 100644 formats/packfile/object_at.go create mode 100644 formats/packfile/seekable_reader.go create mode 100644 formats/packfile/stream_reader.go delete mode 100644 storage/fs/internal/index/from_packfile.go diff --git a/blame_test.go b/blame_test.go index c7651964d..890975eb1 100644 --- a/blame_test.go +++ b/blame_test.go @@ -23,14 +23,10 @@ func (s *BlameCommon) SetUpSuite(c *C) { f, err := os.Open(fixRepo.packfile) c.Assert(err, IsNil) + reader := packfile.NewSeekableReader(f) - d := packfile.NewDecoder(f) - // TODO: how to know the format of a pack file ahead of time? - // Some info at: - // https://codewords.recurse.com/issues/three/unpacking-git-packfiles - d.Format = packfile.OFSDeltaFormat - - _, err = d.Decode(r.Storage) + d := packfile.NewDecoder(reader) + err = d.Decode(r.Storage) c.Assert(err, IsNil) c.Assert(f.Close(), IsNil) diff --git a/common_test.go b/common_test.go index 5fda5a302..9a1d45ca6 100644 --- a/common_test.go +++ b/common_test.go @@ -66,18 +66,19 @@ func unpackFixtures(c *C, fixtures ...[]packedFixture) map[string]*Repository { if _, existing := repos[fixture.url]; existing { continue } - repos[fixture.url] = NewPlainRepository() - f, err := os.Open(fixture.packfile) - c.Assert(err, IsNil) + comment := Commentf("fixture packfile: %q", fixture.packfile) - d := packfile.NewDecoder(f) - d.Format = packfile.OFSDeltaFormat // This is hardcoded because we don't have a good way to sniff the format + repos[fixture.url] = NewPlainRepository() - _, err = d.Decode(repos[fixture.url].Storage) - c.Assert(err, IsNil) + f, err := os.Open(fixture.packfile) + c.Assert(err, IsNil, comment) + r := packfile.NewSeekableReader(f) + d := packfile.NewDecoder(r) + err = d.Decode(repos[fixture.url].Storage) + c.Assert(err, IsNil, comment) - c.Assert(f.Close(), IsNil) + c.Assert(f.Close(), IsNil, comment) } } diff --git a/formats/packfile/core.go b/formats/packfile/core.go index 8ec8c5508..5541daa9c 100644 --- a/formats/packfile/core.go +++ b/formats/packfile/core.go @@ -212,8 +212,7 @@ func ReadObject(r Reader) (core.Object, error) { } var typ core.ObjectType - var sz int64 - typ, sz, err = ReadObjectTypeAndLength(r) + typ, _, err = ReadObjectTypeAndLength(r) if err != nil { return nil, err } @@ -233,10 +232,6 @@ func ReadObject(r Reader) (core.Object, error) { return nil, err } - if int64(len(cont)) != sz { - return nil, fmt.Errorf("corrupt packfile: size missmatch") - } - return memory.NewObject(typ, int64(len(cont)), cont), nil } @@ -276,10 +271,14 @@ func ReadREFDeltaObjectContent(r Reader) ([]byte, core.ObjectType, error) { return nil, core.ObjectType(0), err } + fmt.Printf("ref-delta found, looking for %s\n", refHash) + refObj, err := r.RecallByHash(refHash) if err != nil { - return nil, core.ObjectType(0), fmt.Errorf("reference not found: %s", refHash) + fmt.Printf("ERROR hash not found: %s\n", refHash) + return nil, core.ObjectType(0), err } + fmt.Printf("hash was found: %s\n", refHash) content, err := ReadSolveDelta(r, refObj.Content()) if err != nil { diff --git a/formats/packfile/decoder.go b/formats/packfile/decoder.go index d3de2433c..da4bc124a 100644 --- a/formats/packfile/decoder.go +++ b/formats/packfile/decoder.go @@ -4,8 +4,6 @@ import ( "io" "gopkg.in/src-d/go-git.v3/core" - "gopkg.in/src-d/go-git.v3/formats/packfile/internal/readcounter" - "gopkg.in/src-d/go-git.v3/storage/memory" ) // Format specifies if the packfile uses ref-deltas or ofs-deltas. @@ -52,43 +50,35 @@ type Decoder struct { // repositories you can run out of memory. MaxObjectsLimit uint32 - // Format specifies if we are using ref-delta's or ofs-delta's, by choosing the - // correct format the memory usage is optimized - // https://github.com/git/git/blob/8d530c4d64ffcc853889f7b385f554d53db375ed/Documentation/technical/protocol-capabilities.txt#L154 - Format Format - - readCounter *readcounter.ReadCounter - s core.ObjectStorage - offsets map[int64]core.Hash + r Reader + s core.ObjectStorage } // NewDecoder returns a new Decoder that reads from r. -func NewDecoder(r io.Reader) *Decoder { +func NewDecoder(r Reader) *Decoder { return &Decoder{ MaxObjectsLimit: DefaultMaxObjectsLimit, - readCounter: readcounter.New(r), - offsets: make(map[int64]core.Hash, 0), + r: r, } } // Decode reads a packfile and stores it in the value pointed to by s. -func (d *Decoder) Decode(s core.ObjectStorage) (int64, error) { +func (d *Decoder) Decode(s core.ObjectStorage) error { d.s = s - count, err := ReadHeader(d.readCounter) + count, err := ReadHeader(d.r) if err != nil { - return d.readCounter.Count(), err + return err } if count > d.MaxObjectsLimit { - return d.readCounter.Count(), - ErrMaxObjectsLimitReached.AddDetails("%d", count) + return ErrMaxObjectsLimitReached.AddDetails("%d", count) } err = d.readObjects(count) - return d.readCounter.Count(), err + return err } func (d *Decoder) readObjects(count uint32) error { @@ -97,14 +87,23 @@ func (d *Decoder) readObjects(count uint32) error { // That's 1 sec for ~2450 objects, ~4.20 MB, or ~250 ms per MB, // of which 12-20 % is _not_ zlib inflation (ie. is our code). for i := 0; i < int(count); i++ { - start := d.readCounter.Count() - obj, err := d.newObject() - if err != nil && err != io.EOF { + start, err := d.r.Offset() + if err != nil { + return err + } + + obj, err := ReadObject(d.r) + if err != nil { + if err == io.EOF { + break + } + return err } - if d.Format == UnknownFormat || d.Format == OFSDeltaFormat { - d.offsets[start] = obj.Hash() + err = d.r.Remember(start, obj) + if err != nil { + return err } _, err = d.s.Set(obj) @@ -115,49 +114,3 @@ func (d *Decoder) readObjects(count uint32) error { return nil } - -func (d *Decoder) newObject() (core.Object, error) { - var typ core.ObjectType - var sz int64 - var cont []byte - - objectStart := d.readCounter.Count() - - typ, sz, err := ReadObjectTypeAndLength(d.readCounter) - if err != nil { - return nil, err - } - - switch typ { - case core.REFDeltaObject: - cont, typ, err = readContentREFDelta(d.readCounter, d) - sz = int64(len(cont)) - case core.OFSDeltaObject: - cont, typ, err = readContentOFSDelta(d.readCounter, objectStart, d) - sz = int64(len(cont)) - case core.CommitObject, core.TreeObject, core.BlobObject, core.TagObject: - cont, err = readContent(d.readCounter) - default: - err = ErrInvalidObject.AddDetails("tag %q", typ) - } - if err != nil { - return nil, err - } - - return memory.NewObject(typ, sz, cont), err -} - -// ByHash returns an already seen object by its hash. -func (d *Decoder) RecallByHash(hash core.Hash) (core.Object, error) { - return d.s.Get(hash) -} - -// ByOffset returns an already seen object by its offset in the packfile. -func (d *Decoder) RecallByOffset(offset int64) (core.Object, error) { - hash, ok := d.offsets[offset] - if !ok { - return nil, ErrPackEntryNotFound.AddDetails("offset %d", offset) - } - - return d.ByHash(hash) -} diff --git a/formats/packfile/decoder_test.go b/formats/packfile/decoder_test.go index 4e2f99be2..113b31bc7 100644 --- a/formats/packfile/decoder_test.go +++ b/formats/packfile/decoder_test.go @@ -27,11 +27,11 @@ var packFileWithEmptyObjects = "UEFDSwAAAAIAAAALnw54nKXMQWoDMQxA0b1PoX2hSLIm44FS func (s *ReaderSuite) TestReadPackfile(c *C) { data, _ := base64.StdEncoding.DecodeString(packFileWithEmptyObjects) f := bytes.NewReader(data) - - d := NewDecoder(f) + r := NewSeekableReader(f) + d := NewDecoder(r) sto := memory.NewObjectStorage() - _, err := d.Decode(sto) + err := d.Decode(sto) c.Assert(err, IsNil) AssertObjects(c, sto, []string{ @@ -60,12 +60,11 @@ func (s *ReaderSuite) TestReadPackfileREFDelta(c *C) { func (s *ReaderSuite) testReadPackfileGitFixture(c *C, file string, format Format) { f, err := os.Open(file) c.Assert(err, IsNil) - - d := NewDecoder(f) - d.Format = format + r := NewSeekableReader(f) + d := NewDecoder(r) sto := memory.NewObjectStorage() - _, err = d.Decode(sto) + err = d.Decode(sto) c.Assert(err, IsNil) AssertObjects(c, sto, []string{ @@ -168,12 +167,11 @@ func (s *ReaderSuite) _TestMemoryREF(c *C) { func readFromFile(c *C, file string, format Format) *memory.ObjectStorage { f, err := os.Open(file) c.Assert(err, IsNil) - - d := NewDecoder(f) - d.Format = format + r := NewSeekableReader(f) + d := NewDecoder(r) sto := memory.NewObjectStorage() - _, err = d.Decode(sto) + err = d.Decode(sto) c.Assert(err, IsNil) return sto diff --git a/formats/packfile/object_at.go b/formats/packfile/object_at.go deleted file mode 100644 index 7655069a6..000000000 --- a/formats/packfile/object_at.go +++ /dev/null @@ -1,115 +0,0 @@ -package packfile - -import ( - "fmt" - "io" - "os" - - "gopkg.in/src-d/go-git.v3/core" - "gopkg.in/src-d/go-git.v3/storage/memory" -) - -// AlreadySeener remembers already seen objects by hash or offset -// and can be asked to retrieve them. It is used to resolve -// REF-delta and OFS-delta references in the packfile. -type AlreadySeener interface { - ByHash(hash core.Hash) (core.Object, error) - ByOffset(offset int64) (core.Object, error) -} - -type ByteReadReader interface { - io.ByteReader - io.Reader -} -type ByteReadReadSeeker interface { - ByteReadReader - io.Seeker -} - -// ObjectAt returns the object at the given offset in a packfile. -func ObjectAt(packfile ByteReadReadSeeker, - offset int64, remember AlreadySeener) (core.Object, error) { - - _, err := packfile.Seek(offset, os.SEEK_SET) - if err != nil { - return nil, err - } - - typ, length, err := ReadObjectTypeAndLength(packfile) - if err != nil { - return nil, err - } - - var cont []byte - switch typ { - case core.CommitObject, core.TreeObject, core.BlobObject, core.TagObject: - cont, err = readContent(packfile) - case core.REFDeltaObject: - cont, typ, err = readContentREFDelta(packfile, remember) - length = int64(len(cont)) - case core.OFSDeltaObject: - cont, typ, err = readContentOFSDelta(packfile, offset, remember) - length = int64(len(cont)) - default: - err = fmt.Errorf("invalid object type: tag %q", typ) - } - if err != nil { - return nil, err - } - - return memory.NewObject(typ, length, cont), err -} - -// Git VLQ is quite special: -// -// Ordinary VLQ has some redundancies, example: the number 358 can be -// encoded as the 2-octet VLQ 0x8166 or the 3-octet VLQ 0x808166 or the -// 4-octet VLQ 0x80808166 and so forth. -// -// To avoid these redundancies, the VLQ format used in Git removes this -// prepending redundancy and extends the representable range of shorter -// VLQs by adding an offset to VLQs of 2 or more octets in such a way -// that the lowest possible value for such an (N+1)-octet VLQ becomes -// exactly one more than the maximum possible value for an N-octet VLQ. -// In particular, since a 1-octet VLQ can store a maximum value of 127, -// the minimum 2-octet VLQ (0x8000) is assigned the value 128 instead of -// 0. Conversely, the maximum value of such a 2-octet VLQ (0xff7f) is -// 16511 instead of just 16383. Similarly, the minimum 3-octet VLQ -// (0x808000) has a value of 16512 instead of zero, which means that the -// maximum 3-octet VLQ (0xffff7f) is 2113663 instead of just 2097151. -// And so forth. -// -// This is how the offset is saved in C: -// -// dheader[pos] = ofs & 127; -// while (ofs >>= 7) -// dheader[--pos] = 128 | (--ofs & 127); -// -func readNegativeOffset(packfile io.Reader) (int64, error) { - var b byte - var err error - - if b, err = readByte(packfile); err != nil { - return 0, err - } - - var offset = int64(b & maskLength) - for moreBytesInLength(b) { - offset++ - if b, err = readByte(packfile); err != nil { - return 0, err - } - offset = (offset << lengthBits) + int64(b&maskLength) - } - - return -offset, nil -} - -func readByte(r io.Reader) (byte, error) { - buf := [1]byte{} - if _, err := r.Read(buf[:]); err != nil { - return 0, err - } - - return buf[0], nil -} diff --git a/formats/packfile/reader.go b/formats/packfile/reader.go index cdd3c7517..4650572c1 100644 --- a/formats/packfile/reader.go +++ b/formats/packfile/reader.go @@ -2,10 +2,25 @@ package packfile import "gopkg.in/src-d/go-git.v3/core" +var ( + // ErrDulicatedObject is returned by Remember if an object appears several + // times in a packfile. + ErrDuplicatedObj = NewError("duplicated object") + // ErrRecall is returned by RecallByOffset or RecallByHash if the object + // to recall cannot be returned. + ErrRecall = NewError("cannot recall object") +) + +// The Reader interface has all the functions needed by a packfile Parser to operate. +// resons for ReadByte: +// https://github.com/golang/go/commit/7ba54d45732219af86bde9a5b73c145db82b70c6 +// https://groups.google.com/forum/#!topic/golang-nuts/fWTRdHpt0QI +// https://gowalker.org/compress/zlib#NewReader type Reader interface { Read(p []byte) (int, error) ReadByte() (byte, error) Offset() (int64, error) + Remember(int64, core.Object) error RecallByOffset(int64) (core.Object, error) RecallByHash(core.Hash) (core.Object, error) } diff --git a/formats/packfile/seekable_reader.go b/formats/packfile/seekable_reader.go new file mode 100644 index 000000000..da1f9a06a --- /dev/null +++ b/formats/packfile/seekable_reader.go @@ -0,0 +1,83 @@ +package packfile + +import ( + "fmt" + "io" + "os" + + "gopkg.in/src-d/go-git.v3/core" +) + +// SeekableReader implements Reader from a packfile in a io.ReadSeeker. +type SeekableReader struct { + io.ReadSeeker + OffsetsByHash map[core.Hash]int64 +} + +func NewSeekableReader(r io.ReadSeeker) *SeekableReader { + return &SeekableReader{ + r, + make(map[core.Hash]int64), + } +} + +func (r *SeekableReader) Read(p []byte) (int, error) { + return r.ReadSeeker.Read(p) +} + +func (r *SeekableReader) ReadByte() (byte, error) { + var p [1]byte + _, err := r.ReadSeeker.Read(p[:]) + if err != nil { + return 0, err + } + + return p[0], nil +} + +func (r *SeekableReader) Offset() (int64, error) { + return r.Seek(0, os.SEEK_CUR) +} + +func (r *SeekableReader) Remember(o int64, obj core.Object) error { + h := obj.Hash() + if _, ok := r.OffsetsByHash[h]; ok { + return ErrDuplicatedObj.AddDetails("with hash %s", h) + } + + fmt.Printf("adding hash = %s, len=%d\n", h, len(r.OffsetsByHash)) + r.OffsetsByHash[h] = o + + return nil +} + +func (r *SeekableReader) RecallByHash(h core.Hash) (core.Object, error) { + o, ok := r.OffsetsByHash[h] + if !ok { + return nil, ErrRecall.AddDetails("hash not found: %s", h) + } + + return r.RecallByOffset(o) +} + +func (r *SeekableReader) RecallByOffset(o int64) (obj core.Object, err error) { + beforeJump, err := r.Offset() + if err != nil { + return nil, err + } + + defer func() { + _, seekErr := r.Seek(beforeJump, os.SEEK_SET) + if err == nil { + err = seekErr + } + }() + + // jump to offset o + _, err = r.Seek(o, os.SEEK_SET) + if err != nil { + return nil, err + } + + return ReadObject(r) +} diff --git a/formats/packfile/stream_reader.go b/formats/packfile/stream_reader.go new file mode 100644 index 000000000..5e3d0c7f9 --- /dev/null +++ b/formats/packfile/stream_reader.go @@ -0,0 +1,67 @@ +package packfile + +import ( + "io" + + "gopkg.in/src-d/go-git.v3/core" + "gopkg.in/src-d/go-git.v3/formats/packfile/internal/readcounter" +) + +// StreamReader implements Reader from a packfile in a io.Reader. +type StreamReader struct { + byOffset map[int64]core.Object + byHash map[core.Hash]core.Object + readCounter *readcounter.ReadCounter +} + +func NewStreamReader(r io.Reader) *StreamReader { + return &StreamReader{ + byHash: make(map[core.Hash]core.Object, 0), + byOffset: make(map[int64]core.Object, 0), + readCounter: readcounter.New(r), + } +} + +func (r *StreamReader) Read(p []byte) (int, error) { + return r.readCounter.Read(p) +} + +func (r *StreamReader) ReadByte() (byte, error) { + return r.readCounter.ReadByte() +} + +func (r *StreamReader) Offset() (int64, error) { + return r.readCounter.Count(), nil +} + +func (r *StreamReader) Remember(o int64, obj core.Object) error { + h := obj.Hash() + if _, ok := r.byHash[h]; ok { + return ErrDuplicatedObj.AddDetails("with hash: %s", h) + } + if _, ok := r.byOffset[o]; ok { + return ErrDuplicatedObj.AddDetails("at offset: %d", o) + } + r.byHash[h] = obj + r.byOffset[o] = obj + + return nil +} + +func (r *StreamReader) RecallByHash(h core.Hash) (core.Object, error) { + obj, ok := r.byHash[h] + if !ok { + return nil, ErrRecall.AddDetails("hash not found: %s", h) + } + + return obj, nil +} + +func (r *StreamReader) RecallByOffset(o int64) (core.Object, error) { + obj, ok := r.byOffset[o] + if !ok { + return nil, ErrRecall.AddDetails("no object found at offset %d", o) + } + + return obj, nil +} diff --git a/references_test.go b/references_test.go index 3768b4b16..3fa22f49e 100644 --- a/references_test.go +++ b/references_test.go @@ -26,11 +26,9 @@ func (s *ReferencesSuite) SetUpSuite(c *C) { f, err := os.Open(fix.packfile) defer f.Close() c.Assert(err, IsNil) - - d := packfile.NewDecoder(f) - d.Format = packfile.OFSDeltaFormat // TODO: how to know the format of a pack file ahead of time? - - _, err = d.Decode(s.repos[fix.url].Storage) + r := packfile.NewSeekableReader(f) + d := packfile.NewDecoder(r) + err = d.Decode(s.repos[fix.url].Storage) c.Assert(err, IsNil) } } diff --git a/remote_test.go b/remote_test.go index 005d40a76..aaedcc7bd 100644 --- a/remote_test.go +++ b/remote_test.go @@ -56,10 +56,11 @@ func (s *SuiteRemote) TestFetchDefaultBranch(c *C) { reader, err := r.FetchDefaultBranch() c.Assert(err, IsNil) - d := packfile.NewDecoder(reader) + packfileReader := packfile.NewStreamReader(reader) + d := packfile.NewDecoder(packfileReader) sto := memory.NewObjectStorage() - _, err = d.Decode(sto) + err = d.Decode(sto) c.Assert(err, IsNil) c.Assert(sto.Objects, HasLen, 28) } diff --git a/repository.go b/repository.go index 02c3ed8fa..7c803e0fe 100644 --- a/repository.go +++ b/repository.go @@ -100,9 +100,10 @@ func (r *Repository) Pull(remoteName, branch string) (err error) { return err } defer checkClose(reader, &err) + stream := packfile.NewStreamReader(reader) - d := packfile.NewDecoder(reader) - _, err = d.Decode(r.Storage) + d := packfile.NewDecoder(stream) + err = d.Decode(r.Storage) return err } diff --git a/storage/fs/internal/index/from_packfile.go b/storage/fs/internal/index/from_packfile.go deleted file mode 100644 index e88037142..000000000 --- a/storage/fs/internal/index/from_packfile.go +++ /dev/null @@ -1,203 +0,0 @@ -package index - -import ( - "bytes" - "compress/zlib" - "fmt" - "io" - "os" - - "gopkg.in/src-d/go-git.v3/core" - "gopkg.in/src-d/go-git.v3/formats/packfile" -) - -var ( - // ErrInvalidObject is returned by Decode when an invalid object is - // found in the packfile. - ErrInvalidObject = packfile.NewError("invalid git object") - - // ErrPackEntryNotFound is returned by Decode when a reference in - // the packfile references and unknown object. - ErrPackEntryNotFound = packfile.NewError("can't find a pack entry") - - // ErrZLib is returned by Decode when there was an error unzipping - // the packfile contents. - ErrZLib = packfile.NewError("zlib reading error") -) - -const ( - // DefaultMaxObjectsLimit is the maximum amount of objects the decoder will - // decode before returning ErrMaxObjectsLimitReached. - DefaultMaxObjectsLimit = 1 << 30 -) - -// NewFrompackfile returns a new index from a packfile reader. -func NewFromPackfile(r packfile.ByteReadReadSeeker) (Index, error) { - count, err := packfile.ReadHeader(r) - if err != nil { - return nil, err - } - - if !isValidCount(count) { - return nil, packfile.ErrMaxObjectsLimitReached.AddDetails("%d", count) - } - - result := make(map[core.Hash]int64) - - for i := 0; i < int(count); i++ { - offset, err := currentOffset(r) - if err != nil { - return nil, err - } - - obj, err := readObject(r, result) - if err != nil { - return nil, err - } - - result[obj.Hash()] = offset - } - - return result, nil -} - -func isValidCount(c uint32) bool { - return c <= DefaultMaxObjectsLimit -} - -func readContent(r io.Reader) ([]byte, error) { - buf := bytes.NewBuffer(nil) - err := inflate(r, buf) - - return buf.Bytes(), err -} - -// https://github.com/golang/go/commit/7ba54d45732219af86bde9a5b73c145db82b70c6 -// https://groups.google.com/forum/#!topic/golang-nuts/fWTRdHpt0QI -// https://gowalker.org/compress/zlib#NewReader -type byteReader struct { - io.Reader -} - -func (b *byteReader) ReadByte() (byte, error) { - var p [1]byte - _, err := b.Read(p[:]) - if err != nil { - return 0, err - } - - return p[0], nil -} - -func inflate(r io.Reader, w io.Writer) (err error) { - byteReader := &byteReader{r} // see byteReader comments above - zr, err := zlib.NewReader(byteReader) - if err != nil { - if err != zlib.ErrHeader { - return fmt.Errorf("zlib reading error: %s", err) - } - } - - defer func() { - closeErr := zr.Close() - if err == nil { - err = closeErr - } - }() - - _, err = io.Copy(w, zr) - - return err -} - -func readContentOFSDelta(r packfile.ByteReadReadSeeker, - objectStart int64, memo map[core.Hash]int64) ( - content []byte, typ core.ObjectType, err error) { - - _, err = currentOffset(r) - if err != nil { - return nil, core.ObjectType(0), err - } - - offset, err := packfile.ReadNegativeOffset(r) - if err != nil { - return nil, core.ObjectType(0), err - } - - referencedObjectOffset := objectStart + offset - - delta, err := currentOffset(r) - if err != nil { - return nil, core.ObjectType(0), err - } - - r.Seek(referencedObjectOffset, os.SEEK_SET) - - refObj, err := readObject(r, memo) - if err != nil { - return nil, core.ObjectType(0), err - } - - r.Seek(delta, os.SEEK_SET) - - diff := bytes.NewBuffer(nil) - if err = inflate(r, diff); err != nil { - return nil, core.ObjectType(0), err - } - - patched := packfile.PatchDelta(refObj.Content(), diff.Bytes()) - if patched == nil { - return nil, core.ObjectType(0), fmt.Errorf("paching error") - } - - return patched, refObj.Type(), nil -} - -func readByte(r io.Reader) (byte, error) { - buf := [1]byte{} - if _, err := r.Read(buf[:]); err != nil { - return 0, err - } - - return buf[0], nil -} - -func readContentREFDelta(r packfile.ByteReadReadSeeker, memo map[core.Hash]int64) ( - content []byte, typ core.ObjectType, err error) { - - var ref core.Hash - if _, err = io.ReadFull(r, ref[:]); err != nil { - return nil, core.ObjectType(0), err - } - - delta, err := currentOffset(r) - if err != nil { - return nil, core.ObjectType(0), err - } - - refOffset, ok := memo[ref] - if !ok { - return nil, core.ObjectType(0), fmt.Errorf("ref %q unkown") - } - - r.Seek(refOffset, os.SEEK_SET) - - refObj, err := readObject(r, memo) - if err != nil { - return nil, core.ObjectType(0), err - } - - r.Seek(delta, os.SEEK_SET) - - diff := bytes.NewBuffer(nil) - if err = inflate(r, diff); err != nil { - return nil, core.ObjectType(0), err - } - - patched := packfile.PatchDelta(refObj.Content(), diff.Bytes()) - if patched == nil { - return nil, core.ObjectType(0), fmt.Errorf("paching error") - } - - return patched, refObj.Type(), nil -} diff --git a/storage/fs/internal/index/index.go b/storage/fs/internal/index/index.go index d93f89b81..3b5c17793 100644 --- a/storage/fs/internal/index/index.go +++ b/storage/fs/internal/index/index.go @@ -6,6 +6,7 @@ import ( "gopkg.in/src-d/go-git.v3/core" "gopkg.in/src-d/go-git.v3/formats/idxfile" + "gopkg.in/src-d/go-git.v3/formats/packfile" ) // Index is a database of objects and their offset in a packfile. @@ -32,12 +33,59 @@ func NewFromIdx(r io.Reader) (Index, error) { return ind, nil } +// NewFrompackfile returns a new index from a packfile reader. +func NewFromPackfile(rs io.ReadSeeker) (Index, error) { + index := make(Index) + + r := packfile.NewSeekableReader(rs) + + count, err := packfile.ReadHeader(r) + if err != nil { + return nil, err + } + + for i := 0; i < int(count); i++ { + offset, err := r.Offset() + if err != nil { + return nil, err + } + + obj, err := packfile.ReadObject(r) + if err != nil { + return nil, err + } + + err = r.Remember(offset, obj) + if err != nil { + return nil, err + } + + err = index.Set(obj.Hash(), offset) + if err != nil { + return nil, err + } + } + + return index, nil +} + // Get returns the offset that an object has the packfile. func (i Index) Get(h core.Hash) (int64, error) { - offset, ok := i[h] + o, ok := i[h] if !ok { return 0, core.ErrObjectNotFound } - return offset, nil + return o, nil +} + +// Set adds a new hash-offset pair to the index, or substitutes an existing one. +func (i Index) Set(h core.Hash, o int64) error { + if _, ok := i[h]; ok { + return fmt.Errorf("index.Set failed: duplicated key: %s", h) + } + + i[h] = o + + return nil } diff --git a/storage/fs/store.go b/storage/fs/store.go index 2e6a818fa..691b5fa03 100644 --- a/storage/fs/store.go +++ b/storage/fs/store.go @@ -69,20 +69,7 @@ func buildIndexFromPackfile(dir *gitdir.GitDir) (index.Index, error) { } }() - return index.NewFromPackfile(&fileByteReader{*f}) -} - -type fileByteReader struct { - os.File -} - -func (f *fileByteReader) ReadByte() (byte, error) { - buf := [1]byte{} - if _, err := f.Read(buf[:]); err != nil { - return 0, err - } - - return buf[0], nil + return index.NewFromPackfile(f) } func buildIndexFromIdxfile(path string) (index.Index, error) { @@ -133,7 +120,15 @@ func (s *ObjectStorage) Get(h core.Hash) (core.Object, error) { } }() - return packfile.ObjectAt(&fileByteReader{*f}, offset, s) + _, err = f.Seek(offset, os.SEEK_SET) + if err != nil { + return nil, err + } + + r := packfile.NewSeekableReader(f) + r.OffsetsByHash = map[core.Hash]int64(s.index) + + return packfile.ReadObject(r) } // Iter returns an iterator for all the objects in the packfile with the @@ -153,36 +148,3 @@ func (s *ObjectStorage) Iter(t core.ObjectType) (core.ObjectIter, error) { return core.NewObjectSliceIter(objects), nil } - -// ByHash returns an already seen object given its hash. -// -// Given the nature of this storage, it also returns objects that -// have not yet been seen. -func (s *ObjectStorage) ByHash(hash core.Hash) (core.Object, error) { - return s.Get(hash) -} - -// ByOffset returns an already seen object given its offset. -// -// Given the nature of this storage, it also returns objects that -// have not yet been seen. -func (s *ObjectStorage) ByOffset(offset int64) (core.Object, error) { - path, err := s.dir.Packfile() - if err != nil { - return nil, err - } - - f, err := os.Open(path) - if err != nil { - return nil, err - } - - defer func() { - errClose := f.Close() - if err == nil { - err = errClose - } - }() - - return packfile.ObjectAt(&fileByteReader{*f}, offset, s) -} diff --git a/storage/fs/store_test.go b/storage/fs/store_test.go index 329d44e8b..0d43eafc1 100644 --- a/storage/fs/store_test.go +++ b/storage/fs/store_test.go @@ -84,9 +84,9 @@ func (s *FsSuite) TestGetHashNotFound(c *C) { func (s *FsSuite) TestGetCompareWithMemoryStorage(c *C) { for i, fixId := range [...]string{ - "spinnaker", - "spinnaker-no-idx", - "binary-relations", + //"spinnaker", + //"spinnaker-no-idx", + //"binary-relations", "ref-deltas-no-idx", } { path := fixture(fixId, c) @@ -123,8 +123,9 @@ func memStorageFromGitDir(path string) (*memory.ObjectStorage, error) { } sto := memory.NewObjectStorage() - d := packfile.NewDecoder(f) - _, err = d.Decode(sto) + r := packfile.NewSeekableReader(f) + d := packfile.NewDecoder(r) + err = d.Decode(sto) if err != nil { return nil, err } @@ -259,8 +260,9 @@ func memStorageFromDirPath(path string) (*memory.ObjectStorage, error) { return nil, err } - d := packfile.NewDecoder(f) - _, err = d.Decode(sto) + r := packfile.NewSeekableReader(f) + d := packfile.NewDecoder(r) + err = d.Decode(sto) if err != nil { return nil, err } @@ -312,36 +314,3 @@ func (s *FsSuite) TestSet(c *C) { _, err = sto.Set(&memory.Object{}) c.Assert(err, ErrorMatches, "not implemented yet") } - -func (s *FsSuite) TestByHash(c *C) { - path := fixture("spinnaker", c) - - sto, err := fs.New(path) - c.Assert(err, IsNil) - - for _, typ := range [...]core.ObjectType{ - core.CommitObject, - core.TreeObject, - core.BlobObject, - core.TagObject, - } { - - iter, err := sto.Iter(typ) - c.Assert(err, IsNil) - - for { - o, err := iter.Next() - if err != nil { - iter.Close() - break - } - - oByHash, err := sto.ByHash(o.Hash()) - c.Assert(err, IsNil) - - equal, reason, err := equalsObjects(o, oByHash) - c.Assert(err, IsNil) - c.Assert(equal, Equals, true, Commentf("%s", reason)) - } - } -} From 04dcd83723d0fe7fcfa0b9df2c75c8c9d28c36e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Tue, 28 Jun 2016 17:28:28 +0200 Subject: [PATCH 104/143] remove prints from tests --- formats/packfile/core.go | 4 ---- formats/packfile/seekable_reader.go | 2 -- 2 files changed, 6 deletions(-) diff --git a/formats/packfile/core.go b/formats/packfile/core.go index 5541daa9c..8ad11b6b7 100644 --- a/formats/packfile/core.go +++ b/formats/packfile/core.go @@ -271,14 +271,10 @@ func ReadREFDeltaObjectContent(r Reader) ([]byte, core.ObjectType, error) { return nil, core.ObjectType(0), err } - fmt.Printf("ref-delta found, looking for %s\n", refHash) - refObj, err := r.RecallByHash(refHash) if err != nil { - fmt.Printf("ERROR hash not found: %s\n", refHash) return nil, core.ObjectType(0), err } - fmt.Printf("hash was found: %s\n", refHash) content, err := ReadSolveDelta(r, refObj.Content()) if err != nil { diff --git a/formats/packfile/seekable_reader.go b/formats/packfile/seekable_reader.go index da1f9a06a..2799e8345 100644 --- a/formats/packfile/seekable_reader.go +++ b/formats/packfile/seekable_reader.go @@ -1,7 +1,6 @@ package packfile import ( - "fmt" "io" "os" @@ -45,7 +44,6 @@ func (r *SeekableReader) Remember(o int64, obj core.Object) error { return ErrDuplicatedObj.AddDetails("with hash %s", h) } - fmt.Printf("adding hash = %s, len=%d\n", h, len(r.OffsetsByHash)) r.OffsetsByHash[h] = o return nil From 9219a281884c21e0c44ee87b835bec41a3381218 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Tue, 28 Jun 2016 17:40:12 +0200 Subject: [PATCH 105/143] remove prints from tests --- clients/common_test.go | 1 - storage/fs/internal/index/index_test.go | 2 -- 2 files changed, 3 deletions(-) diff --git a/clients/common_test.go b/clients/common_test.go index 10a7dc7eb..eb5b07c78 100644 --- a/clients/common_test.go +++ b/clients/common_test.go @@ -90,7 +90,6 @@ func (s *SuiteCommon) TestInstallProtocol(c *C) { for i, t := range tests { if t.panic { - fmt.Println(t.service == nil) c.Assert(func() { InstallProtocol(t.scheme, t.service) }, PanicMatches, `nil service`) continue } diff --git a/storage/fs/internal/index/index_test.go b/storage/fs/internal/index/index_test.go index dc1822a44..49b3a9d2d 100644 --- a/storage/fs/internal/index/index_test.go +++ b/storage/fs/internal/index/index_test.go @@ -1,7 +1,6 @@ package index import ( - "fmt" "os" "testing" @@ -36,7 +35,6 @@ func (s *SuiteIndex) TestNewFromIdx(c *C) { index, err := NewFromIdx(idx) if test.errRegexp != "" { - fmt.Println(err) c.Assert(err, ErrorMatches, test.errRegexp, com) } else { c.Assert(err, IsNil, com) From 0bb0c104901b5747d03dafb4d46b2939de762be0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Tue, 28 Jun 2016 18:35:36 +0200 Subject: [PATCH 106/143] refactor packfile.core into packfile.parser --- formats/packfile/core.go | 315 ------------------------- formats/packfile/decoder.go | 12 +- formats/packfile/parser.go | 344 ++++++++++++++++++++++++++++ formats/packfile/seekable_reader.go | 2 +- storage/fs/internal/index/index.go | 5 +- storage/fs/store.go | 3 +- 6 files changed, 356 insertions(+), 325 deletions(-) delete mode 100644 formats/packfile/core.go create mode 100644 formats/packfile/parser.go diff --git a/formats/packfile/core.go b/formats/packfile/core.go deleted file mode 100644 index 8ad11b6b7..000000000 --- a/formats/packfile/core.go +++ /dev/null @@ -1,315 +0,0 @@ -package packfile - -import ( - "bytes" - "compress/zlib" - "encoding/binary" - "fmt" - "io" - - "gopkg.in/src-d/go-git.v3/core" - "gopkg.in/src-d/go-git.v3/storage/memory" -) - -var ( - // ErrEmptyPackfile is returned when no data is found in the packfile - ErrEmptyPackfile = NewError("empty packfile") - // ErrBadSignature is returned when the signature in the packfile is incorrect. - ErrBadSignature = NewError("malformed pack file signature") - // ErrUnsupportedVersion is returned by Decode when packfile version is - // different than VersionSupported. - ErrUnsupportedVersion = NewError("unsupported packfile version") -) - -const ( - // VersionSupported is the packfile version supported by this decoder. - VersionSupported = 2 -) - -var ( - // ReadVersion reads and returns the version field of a packfile. - ReadVersion = ReadInt32 - // ReadCount reads and returns the count of objects field of a packfile. - ReadCount = ReadInt32 -) - -// ReadInt32 reads an int32 from the packfile as Big Endian. -func ReadInt32(r io.Reader) (uint32, error) { - var v uint32 - if err := binary.Read(r, binary.BigEndian, &v); err != nil { - return 0, err - } - - return v, nil -} - -// IsSupportedVersion returns whether version v is supported by the parser. -// The current supported version is VersionSupported, defined above. -func IsSupportedVersion(v uint32) bool { - return v == VersionSupported -} - -// ReadSignature reads an return the signature in the packfile. -func ReadSignature(r io.Reader) ([]byte, error) { - var sig = make([]byte, 4) - if _, err := io.ReadFull(r, sig); err != nil { - return []byte{}, err - } - - return sig, nil -} - -// IsValidSignature returns if sig is a valid packfile signature. -func IsValidSignature(sig []byte) bool { - return bytes.Equal(sig, []byte{'P', 'A', 'C', 'K'}) -} - -// ReadHeader reads the packfile header (signature, version and object count) -// and returns the object count. -func ReadHeader(r io.Reader) (uint32, error) { - sig, err := ReadSignature(r) - if err != nil { - if err == io.EOF { - return 0, ErrEmptyPackfile - } - return 0, err - } - - if !IsValidSignature(sig) { - return 0, ErrBadSignature - } - - ver, err := ReadVersion(r) - if err != nil { - return 0, err - } - - if !IsSupportedVersion(ver) { - return 0, ErrUnsupportedVersion.AddDetails("%d", ver) - } - - count, err := ReadCount(r) - if err != nil { - return 0, err - } - - return count, nil -} - -// ReadObjectTypeAndLength reads and return an the object type and the length field -// from an object entry in a packfile. -func ReadObjectTypeAndLength(r io.ByteReader) (core.ObjectType, int64, error) { - t, c, err := readType(r) - if err != nil { - return t, 0, err - } - - l, err := readLength(c, r) - - return t, l, err -} - -func readType(r io.ByteReader) (core.ObjectType, byte, error) { - var c byte - var err error - if c, err = r.ReadByte(); err != nil { - return core.ObjectType(0), 0, err - } - typ := parseType(c) - - return typ, c, nil -} - -var ( - maskContinue = uint8(128) // 1000 0000 - maskType = uint8(112) // 0111 0000 - maskFirstLength = uint8(15) // 0000 1111 - firstLengthBits = uint8(4) // the first byte has 4 bits to store the length - maskLength = uint8(127) // 0111 1111 - lengthBits = uint8(7) // subsequent bytes has 7 bits to store the length -) - -func parseType(b byte) core.ObjectType { - return core.ObjectType((b & maskType) >> firstLengthBits) -} - -// Reads the last 4 bits from the first byte in the object. -// If more bytes are required for the length, read more bytes -// and use the first 7 bits of each one until no more bytes -// are required. -func readLength(first byte, r io.ByteReader) (int64, error) { - length := int64(first & maskFirstLength) - - c := first - shift := firstLengthBits - var err error - for moreBytesInLength(c) { - if c, err = r.ReadByte(); err != nil { - return 0, err - } - - length += int64(c&maskLength) << shift - shift += lengthBits - } - - return length, nil -} - -func moreBytesInLength(c byte) bool { - return c&maskContinue > 0 -} - -// ReadNegativeOffset reads and returns an offset from a OFS DELTA -// object entry in a packfile. OFS DELTA offsets are specified in Git -// VLQ special format: -// -// Ordinary VLQ has some redundancies, example: the number 358 can be -// encoded as the 2-octet VLQ 0x8166 or the 3-octet VLQ 0x808166 or the -// 4-octet VLQ 0x80808166 and so forth. -// -// To avoid these redundancies, the VLQ format used in Git removes this -// prepending redundancy and extends the representable range of shorter -// VLQs by adding an offset to VLQs of 2 or more octets in such a way -// that the lowest possible value for such an (N+1)-octet VLQ becomes -// exactly one more than the maximum possible value for an N-octet VLQ. -// In particular, since a 1-octet VLQ can store a maximum value of 127, -// the minimum 2-octet VLQ (0x8000) is assigned the value 128 instead of -// 0. Conversely, the maximum value of such a 2-octet VLQ (0xff7f) is -// 16511 instead of just 16383. Similarly, the minimum 3-octet VLQ -// (0x808000) has a value of 16512 instead of zero, which means -// that the maximum 3-octet VLQ (0xffff7f) is 2113663 instead of -// just 2097151. And so forth. -// -// This is how the offset is saved in C: -// -// dheader[pos] = ofs & 127; while (ofs >>= 7) dheader[--pos] = 128 -// | (--ofs & 127); -// -func ReadNegativeOffset(r io.ByteReader) (int64, error) { - var c byte - var err error - - if c, err = r.ReadByte(); err != nil { - return 0, err - } - - var offset = int64(c & maskLength) - for moreBytesInLength(c) { - offset++ - if c, err = r.ReadByte(); err != nil { - return 0, err - } - offset = (offset << lengthBits) + int64(c&maskLength) - } - - return -offset, nil -} - -func ReadObject(r Reader) (core.Object, error) { - start, err := r.Offset() - if err != nil { - return nil, err - } - - var typ core.ObjectType - typ, _, err = ReadObjectTypeAndLength(r) - if err != nil { - return nil, err - } - - var cont []byte - switch typ { - case core.CommitObject, core.TreeObject, core.BlobObject, core.TagObject: - cont, err = ReadNonDeltaObjectContent(r) - case core.REFDeltaObject: - cont, typ, err = ReadREFDeltaObjectContent(r) - case core.OFSDeltaObject: - cont, typ, err = readOFSDeltaObjectContent(r, start) - default: - err = ErrInvalidObject.AddDetails("tag %q", typ) - } - if err != nil { - return nil, err - } - - return memory.NewObject(typ, int64(len(cont)), cont), nil -} - -var ReadNonDeltaObjectContent = ReadZip - -func ReadZip(r Reader) ([]byte, error) { - buf := bytes.NewBuffer(nil) - err := inflate(r, buf) - - return buf.Bytes(), err -} - -func inflate(r Reader, w io.Writer) (err error) { - zr, err := zlib.NewReader(r) - if err != nil { - if err != zlib.ErrHeader { - return fmt.Errorf("zlib reading error: %s", err) - } - } - - defer func() { - closeErr := zr.Close() - if err == nil { - err = closeErr - } - }() - - _, err = io.Copy(w, zr) - - return err -} - -func ReadREFDeltaObjectContent(r Reader) ([]byte, core.ObjectType, error) { - var refHash core.Hash - var err error - if _, err = io.ReadFull(r, refHash[:]); err != nil { - return nil, core.ObjectType(0), err - } - - refObj, err := r.RecallByHash(refHash) - if err != nil { - return nil, core.ObjectType(0), err - } - - content, err := ReadSolveDelta(r, refObj.Content()) - if err != nil { - return nil, refObj.Type(), err - } - - return content, refObj.Type(), nil -} - -func ReadSolveDelta(r Reader, base []byte) ([]byte, error) { - diff, err := ReadZip(r) - if err != nil { - return nil, err - } - - return PatchDelta(base, diff), nil -} - -func readOFSDeltaObjectContent(r Reader, start int64) ( - []byte, core.ObjectType, error) { - - jump, err := ReadNegativeOffset(r) - if err != nil { - return nil, core.ObjectType(0), err - } - - ref, err := r.RecallByOffset(start + jump) - if err != nil { - return nil, core.ObjectType(0), err - } - - content, err := ReadSolveDelta(r, ref.Content()) - if err != nil { - return nil, ref.Type(), err - } - - return content, ref.Type(), nil -} diff --git a/formats/packfile/decoder.go b/formats/packfile/decoder.go index da4bc124a..93dcd522e 100644 --- a/formats/packfile/decoder.go +++ b/formats/packfile/decoder.go @@ -50,7 +50,7 @@ type Decoder struct { // repositories you can run out of memory. MaxObjectsLimit uint32 - r Reader + p *Parser s core.ObjectStorage } @@ -59,7 +59,7 @@ func NewDecoder(r Reader) *Decoder { return &Decoder{ MaxObjectsLimit: DefaultMaxObjectsLimit, - r: r, + p: NewParser(r), } } @@ -67,7 +67,7 @@ func NewDecoder(r Reader) *Decoder { func (d *Decoder) Decode(s core.ObjectStorage) error { d.s = s - count, err := ReadHeader(d.r) + count, err := d.p.ReadHeader() if err != nil { return err } @@ -87,12 +87,12 @@ func (d *Decoder) readObjects(count uint32) error { // That's 1 sec for ~2450 objects, ~4.20 MB, or ~250 ms per MB, // of which 12-20 % is _not_ zlib inflation (ie. is our code). for i := 0; i < int(count); i++ { - start, err := d.r.Offset() + start, err := d.p.Offset() if err != nil { return err } - obj, err := ReadObject(d.r) + obj, err := d.p.ReadObject() if err != nil { if err == io.EOF { break @@ -101,7 +101,7 @@ func (d *Decoder) readObjects(count uint32) error { return err } - err = d.r.Remember(start, obj) + err = d.p.Remember(start, obj) if err != nil { return err } diff --git a/formats/packfile/parser.go b/formats/packfile/parser.go new file mode 100644 index 000000000..7868f1c8f --- /dev/null +++ b/formats/packfile/parser.go @@ -0,0 +1,344 @@ +package packfile + +import ( + "bytes" + "compress/zlib" + "encoding/binary" + "fmt" + "io" + + "gopkg.in/src-d/go-git.v3/core" + "gopkg.in/src-d/go-git.v3/storage/memory" +) + +var ( + // ErrEmptyPackfile is returned by ReadHeader when no data is found in the packfile + ErrEmptyPackfile = NewError("empty packfile") + // ErrBadSignature is returned by ReadHeader when the signature in the packfile is incorrect. + ErrBadSignature = NewError("malformed pack file signature") + // ErrUnsupportedVersion is returned by ReadHeader when the packfile version is + // different than VersionSupported. + ErrUnsupportedVersion = NewError("unsupported packfile version") +) + +const ( + // VersionSupported is the packfile version supported by this parser. + VersionSupported = 2 +) + +// A Parser is a collection of functions to read and process data form a packfile. +// Values from this type are not zero-value safe. See the NewParser function bellow. +type Parser struct { + Reader +} + +// NewParser returns a new Parser that reads from the packfile represented by r. +func NewParser(r Reader) *Parser { + return &Parser{Reader: r} +} + +// ReadInt32 reads 4 bytes and returns them as a Big Endian int32. +func (p Parser) readInt32() (uint32, error) { + var v uint32 + if err := binary.Read(p, binary.BigEndian, &v); err != nil { + return 0, err + } + + return v, nil +} + +// ReadVersion reads and returns the version field of a packfile. +func (p *Parser) ReadVersion() (uint32, error) { + return p.readInt32() +} + +// ReadCount reads and returns the count of objects field of a packfile. +func (p *Parser) ReadCount() (uint32, error) { + return p.readInt32() +} + +// IsSupportedVersion returns whether version v is supported by the parser. +// The current supported version is VersionSupported, defined above. +func (p *Parser) IsSupportedVersion(v uint32) bool { + return v == VersionSupported +} + +// ReadSignature reads an returns the signature field in the packfile. +func (p *Parser) ReadSignature() ([]byte, error) { + var sig = make([]byte, 4) + if _, err := io.ReadFull(p, sig); err != nil { + return []byte{}, err + } + + return sig, nil +} + +// IsValidSignature returns if sig is a valid packfile signature. +func (p Parser) IsValidSignature(sig []byte) bool { + return bytes.Equal(sig, []byte{'P', 'A', 'C', 'K'}) +} + +// ReadHeader reads the whole packfile header (signature, version and +// object count). It returns the object count and performs checks on the +// validity of the signature and the version fields. +func (p Parser) ReadHeader() (uint32, error) { + sig, err := p.ReadSignature() + if err != nil { + if err == io.EOF { + return 0, ErrEmptyPackfile + } + return 0, err + } + + if !p.IsValidSignature(sig) { + return 0, ErrBadSignature + } + + ver, err := p.ReadVersion() + if err != nil { + return 0, err + } + + if !p.IsSupportedVersion(ver) { + return 0, ErrUnsupportedVersion.AddDetails("%d", ver) + } + + count, err := p.ReadCount() + if err != nil { + return 0, err + } + + return count, nil +} + +// ReadObjectTypeAndLength reads and returns the object type and the +// length field from an object entry in a packfile. +func (p Parser) ReadObjectTypeAndLength() (core.ObjectType, int64, error) { + t, c, err := p.readType() + if err != nil { + return t, 0, err + } + + l, err := p.readLength(c) + + return t, l, err +} + +func (p Parser) readType() (core.ObjectType, byte, error) { + var c byte + var err error + if c, err = p.ReadByte(); err != nil { + return core.ObjectType(0), 0, err + } + typ := parseType(c) + + return typ, c, nil +} + +var ( + maskContinue = uint8(128) // 1000 0000 + maskType = uint8(112) // 0111 0000 + maskFirstLength = uint8(15) // 0000 1111 + firstLengthBits = uint8(4) // the first byte has 4 bits to store the length + maskLength = uint8(127) // 0111 1111 + lengthBits = uint8(7) // subsequent bytes has 7 bits to store the length +) + +func parseType(b byte) core.ObjectType { + return core.ObjectType((b & maskType) >> firstLengthBits) +} + +// the length is codified in the last 4 bits of the first byte and in +// the last 7 bits of subsequent bytes. Last byte has a 0 MSB. +func (p Parser) readLength(first byte) (int64, error) { + length := int64(first & maskFirstLength) + + c := first + shift := firstLengthBits + var err error + for moreBytesInLength(c) { + if c, err = p.ReadByte(); err != nil { + return 0, err + } + + length += int64(c&maskLength) << shift + shift += lengthBits + } + + return length, nil +} + +func moreBytesInLength(c byte) bool { + return c&maskContinue > 0 +} + +// ReadNegativeOffset reads and returns an offset from a OFS DELTA +// object entry in a packfile. OFS DELTA offsets are specified in Git +// VLQ special format: +// +// Ordinary VLQ has some redundancies, example: the number 358 can be +// encoded as the 2-octet VLQ 0x8166 or the 3-octet VLQ 0x808166 or the +// 4-octet VLQ 0x80808166 and so forth. +// +// To avoid these redundancies, the VLQ format used in Git removes this +// prepending redundancy and extends the representable range of shorter +// VLQs by adding an offset to VLQs of 2 or more octets in such a way +// that the lowest possible value for such an (N+1)-octet VLQ becomes +// exactly one more than the maximum possible value for an N-octet VLQ. +// In particular, since a 1-octet VLQ can store a maximum value of 127, +// the minimum 2-octet VLQ (0x8000) is assigned the value 128 instead of +// 0. Conversely, the maximum value of such a 2-octet VLQ (0xff7f) is +// 16511 instead of just 16383. Similarly, the minimum 3-octet VLQ +// (0x808000) has a value of 16512 instead of zero, which means +// that the maximum 3-octet VLQ (0xffff7f) is 2113663 instead of +// just 2097151. And so forth. +// +// This is how the offset is saved in C: +// +// dheader[pos] = ofs & 127; +// while (ofs >>= 7) +// dheader[--pos] = 128 | (--ofs & 127); +// +func (p Parser) ReadNegativeOffset() (int64, error) { + var c byte + var err error + + if c, err = p.ReadByte(); err != nil { + return 0, err + } + + var offset = int64(c & maskLength) + for moreBytesInLength(c) { + offset++ + if c, err = p.ReadByte(); err != nil { + return 0, err + } + offset = (offset << lengthBits) + int64(c&maskLength) + } + + return -offset, nil +} + +// ReadObject reads and returns a git object from an object entry in the packfile. +// Non-deltified and deltified objects are supported. +func (p Parser) ReadObject() (core.Object, error) { + start, err := p.Offset() + if err != nil { + return nil, err + } + + var typ core.ObjectType + typ, _, err = p.ReadObjectTypeAndLength() + if err != nil { + return nil, err + } + + var cont []byte + switch typ { + case core.CommitObject, core.TreeObject, core.BlobObject, core.TagObject: + cont, err = p.ReadNonDeltaObjectContent() + case core.REFDeltaObject: + cont, typ, err = p.ReadREFDeltaObjectContent() + case core.OFSDeltaObject: + cont, typ, err = p.ReadOFSDeltaObjectContent(start) + default: + err = ErrInvalidObject.AddDetails("tag %q", typ) + } + if err != nil { + return nil, err + } + + return memory.NewObject(typ, int64(len(cont)), cont), nil +} + +// ReadNonDeltaObjectContent reads and returns a non-deltified object +// from it zlib stream in an object entry in the packfile. +func (p Parser) ReadNonDeltaObjectContent() ([]byte, error) { + return p.readZip() +} + +func (p Parser) readZip() ([]byte, error) { + buf := bytes.NewBuffer(nil) + err := p.inflate(buf) + + return buf.Bytes(), err +} + +func (p Parser) inflate(w io.Writer) (err error) { + zr, err := zlib.NewReader(p) + if err != nil { + if err != zlib.ErrHeader { + return fmt.Errorf("zlib reading error: %s", err) + } + } + + defer func() { + closeErr := zr.Close() + if err == nil { + err = closeErr + } + }() + + _, err = io.Copy(w, zr) + + return err +} + +// ReadREFDeltaObjectContent reads and returns an object specified by a +// REF-Delta entry in the packfile, form the hash onwards. +func (p Parser) ReadREFDeltaObjectContent() ([]byte, core.ObjectType, error) { + var refHash core.Hash + var err error + if _, err = io.ReadFull(p, refHash[:]); err != nil { + return nil, core.ObjectType(0), err + } + + refObj, err := p.RecallByHash(refHash) + if err != nil { + return nil, core.ObjectType(0), err + } + + content, err := p.ReadSolveDelta(refObj.Content()) + if err != nil { + return nil, refObj.Type(), err + } + + return content, refObj.Type(), nil +} + +// ReadSolveDelta reads and returns the base patched with the contents +// of a zlib compressed diff data in the delta portion of an object +// entry in the packfile. +func (p Parser) ReadSolveDelta(base []byte) ([]byte, error) { + diff, err := p.readZip() + if err != nil { + return nil, err + } + + return PatchDelta(base, diff), nil +} + +// ReadOFSDeltaObjectContent reads an returns an object specified by an +// OFS-delta entry in the packfile from it negative offset onwards. The +// start parameter is the offset of this particular object entry (the +// current offset minus the already processed type and length). +func (p Parser) ReadOFSDeltaObjectContent(start int64) ( + []byte, core.ObjectType, error) { + + jump, err := p.ReadNegativeOffset() + if err != nil { + return nil, core.ObjectType(0), err + } + + ref, err := p.RecallByOffset(start + jump) + if err != nil { + return nil, core.ObjectType(0), err + } + + content, err := p.ReadSolveDelta(ref.Content()) + if err != nil { + return nil, ref.Type(), err + } + + return content, ref.Type(), nil +} diff --git a/formats/packfile/seekable_reader.go b/formats/packfile/seekable_reader.go index 2799e8345..4d0fc5305 100644 --- a/formats/packfile/seekable_reader.go +++ b/formats/packfile/seekable_reader.go @@ -77,5 +77,5 @@ func (r *SeekableReader) RecallByOffset(o int64) (obj core.Object, err error) { return nil, err } - return ReadObject(r) + return NewParser(r).ReadObject() } diff --git a/storage/fs/internal/index/index.go b/storage/fs/internal/index/index.go index 3b5c17793..e4ddb48b8 100644 --- a/storage/fs/internal/index/index.go +++ b/storage/fs/internal/index/index.go @@ -38,8 +38,9 @@ func NewFromPackfile(rs io.ReadSeeker) (Index, error) { index := make(Index) r := packfile.NewSeekableReader(rs) + p := packfile.NewParser(r) - count, err := packfile.ReadHeader(r) + count, err := p.ReadHeader() if err != nil { return nil, err } @@ -50,7 +51,7 @@ func NewFromPackfile(rs io.ReadSeeker) (Index, error) { return nil, err } - obj, err := packfile.ReadObject(r) + obj, err := p.ReadObject() if err != nil { return nil, err } diff --git a/storage/fs/store.go b/storage/fs/store.go index 691b5fa03..3afe2610e 100644 --- a/storage/fs/store.go +++ b/storage/fs/store.go @@ -127,8 +127,9 @@ func (s *ObjectStorage) Get(h core.Hash) (core.Object, error) { r := packfile.NewSeekableReader(f) r.OffsetsByHash = map[core.Hash]int64(s.index) + p := packfile.NewParser(r) - return packfile.ReadObject(r) + return p.ReadObject() } // Iter returns an iterator for all the objects in the packfile with the From 80c10feb1a3bcc3d820fc799e608e03523e33639 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Wed, 29 Jun 2016 10:54:05 +0200 Subject: [PATCH 107/143] rename packfile reader to something that shows it is a recaller --- formats/packfile/{reader.go => read_recaller.go} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename formats/packfile/{reader.go => read_recaller.go} (100%) diff --git a/formats/packfile/reader.go b/formats/packfile/read_recaller.go similarity index 100% rename from formats/packfile/reader.go rename to formats/packfile/read_recaller.go From ad99b233a14b44bd188190fbb1f552386f7d1c49 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Wed, 29 Jun 2016 10:54:42 +0200 Subject: [PATCH 108/143] rename cannot recall error --- formats/packfile/read_recaller.go | 4 ++-- formats/packfile/seekable_reader.go | 2 +- formats/packfile/stream_reader.go | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/formats/packfile/read_recaller.go b/formats/packfile/read_recaller.go index 4650572c1..8e57b4067 100644 --- a/formats/packfile/read_recaller.go +++ b/formats/packfile/read_recaller.go @@ -6,9 +6,9 @@ var ( // ErrDulicatedObject is returned by Remember if an object appears several // times in a packfile. ErrDuplicatedObj = NewError("duplicated object") - // ErrRecall is returned by RecallByOffset or RecallByHash if the object + // ErrCannotRecall is returned by RecallByOffset or RecallByHash if the object // to recall cannot be returned. - ErrRecall = NewError("cannot recall object") + ErrCannotRecall = NewError("cannot recall object") ) // The Reader interface has all the functions needed by a packfile Parser to operate. diff --git a/formats/packfile/seekable_reader.go b/formats/packfile/seekable_reader.go index 4d0fc5305..2672b6f2e 100644 --- a/formats/packfile/seekable_reader.go +++ b/formats/packfile/seekable_reader.go @@ -52,7 +52,7 @@ func (r *SeekableReader) Remember(o int64, obj core.Object) error { func (r *SeekableReader) RecallByHash(h core.Hash) (core.Object, error) { o, ok := r.OffsetsByHash[h] if !ok { - return nil, ErrRecall.AddDetails("hash not found: %s", h) + return nil, ErrCannotRecall.AddDetails("hash not found: %s", h) } return r.RecallByOffset(o) diff --git a/formats/packfile/stream_reader.go b/formats/packfile/stream_reader.go index 5e3d0c7f9..d26f4ee75 100644 --- a/formats/packfile/stream_reader.go +++ b/formats/packfile/stream_reader.go @@ -51,7 +51,7 @@ func (r *StreamReader) Remember(o int64, obj core.Object) error { func (r *StreamReader) RecallByHash(h core.Hash) (core.Object, error) { obj, ok := r.byHash[h] if !ok { - return nil, ErrRecall.AddDetails("hash not found: %s", h) + return nil, ErrCannotRecall.AddDetails("hash not found: %s", h) } return obj, nil @@ -60,7 +60,7 @@ func (r *StreamReader) RecallByHash(h core.Hash) (core.Object, error) { func (r *StreamReader) RecallByOffset(o int64) (core.Object, error) { obj, ok := r.byOffset[o] if !ok { - return nil, ErrRecall.AddDetails("no object found at offset %d", o) + return nil, ErrCannotRecall.AddDetails("no object found at offset %d", o) } return obj, nil From 46e4518332e13f8b9d9ebcef2852d6fb2921f54a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Wed, 29 Jun 2016 11:11:01 +0200 Subject: [PATCH 109/143] rename packfile.Reader to packfile.ReadRecaller and document --- formats/packfile/decoder.go | 2 +- formats/packfile/parser.go | 6 +++--- formats/packfile/read_recaller.go | 22 ++++++++++++++++------ 3 files changed, 20 insertions(+), 10 deletions(-) diff --git a/formats/packfile/decoder.go b/formats/packfile/decoder.go index 93dcd522e..e8c5c6aca 100644 --- a/formats/packfile/decoder.go +++ b/formats/packfile/decoder.go @@ -55,7 +55,7 @@ type Decoder struct { } // NewDecoder returns a new Decoder that reads from r. -func NewDecoder(r Reader) *Decoder { +func NewDecoder(r ReadRecaller) *Decoder { return &Decoder{ MaxObjectsLimit: DefaultMaxObjectsLimit, diff --git a/formats/packfile/parser.go b/formats/packfile/parser.go index 7868f1c8f..99b779005 100644 --- a/formats/packfile/parser.go +++ b/formats/packfile/parser.go @@ -29,12 +29,12 @@ const ( // A Parser is a collection of functions to read and process data form a packfile. // Values from this type are not zero-value safe. See the NewParser function bellow. type Parser struct { - Reader + ReadRecaller } // NewParser returns a new Parser that reads from the packfile represented by r. -func NewParser(r Reader) *Parser { - return &Parser{Reader: r} +func NewParser(r ReadRecaller) *Parser { + return &Parser{ReadRecaller: r} } // ReadInt32 reads 4 bytes and returns them as a Big Endian int32. diff --git a/formats/packfile/read_recaller.go b/formats/packfile/read_recaller.go index 8e57b4067..a31bbf9c1 100644 --- a/formats/packfile/read_recaller.go +++ b/formats/packfile/read_recaller.go @@ -11,16 +11,26 @@ var ( ErrCannotRecall = NewError("cannot recall object") ) -// The Reader interface has all the functions needed by a packfile Parser to operate. -// resons for ReadByte: -// https://github.com/golang/go/commit/7ba54d45732219af86bde9a5b73c145db82b70c6 -// https://groups.google.com/forum/#!topic/golang-nuts/fWTRdHpt0QI -// https://gowalker.org/compress/zlib#NewReader -type Reader interface { +// The Reader interface has all the functions needed by a packfile +// Parser to operate. We provide two very different implementations: +// SeekableReader and StreamReader. +type ReadRecaller interface { Read(p []byte) (int, error) + // ReadByte is needed because of these: + // - https://github.com/golang/go/commit/7ba54d45732219af86bde9a5b73c145db82b70c6 + // - https://groups.google.com/forum/#!topic/golang-nuts/fWTRdHpt0QI + // - https://gowalker.org/compress/zlib#NewReader ReadByte() (byte, error) + // Offset returns the number of bytes parsed so far from the + // packfile. Offset() (int64, error) + // Remember ask the ReadRecaller to remember the offset and hash for + // an object, so you can later call RecallByOffset and RecallByHash. Remember(int64, core.Object) error + // RecallByOffset returns the previously processed object found at a + // given offset. RecallByOffset(int64) (core.Object, error) + // RecallByHash returns the previously processed object with the + // given hash. RecallByHash(core.Hash) (core.Object, error) } From eefd43acde3972589a61f3dc3c03cd615c957597 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Wed, 29 Jun 2016 11:20:47 +0200 Subject: [PATCH 110/143] speed up test by using StreamReader instead of SeekableReader when possible --- common_test.go | 2 +- storage/fs/store_test.go | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/common_test.go b/common_test.go index 9a1d45ca6..e9a2820b3 100644 --- a/common_test.go +++ b/common_test.go @@ -73,7 +73,7 @@ func unpackFixtures(c *C, fixtures ...[]packedFixture) map[string]*Repository { f, err := os.Open(fixture.packfile) c.Assert(err, IsNil, comment) - r := packfile.NewSeekableReader(f) + r := packfile.NewStreamReader(f) d := packfile.NewDecoder(r) err = d.Decode(repos[fixture.url].Storage) c.Assert(err, IsNil, comment) diff --git a/storage/fs/store_test.go b/storage/fs/store_test.go index 0d43eafc1..30c6cf4de 100644 --- a/storage/fs/store_test.go +++ b/storage/fs/store_test.go @@ -123,7 +123,7 @@ func memStorageFromGitDir(path string) (*memory.ObjectStorage, error) { } sto := memory.NewObjectStorage() - r := packfile.NewSeekableReader(f) + r := packfile.NewStreamReader(f) d := packfile.NewDecoder(r) err = d.Decode(sto) if err != nil { @@ -260,7 +260,7 @@ func memStorageFromDirPath(path string) (*memory.ObjectStorage, error) { return nil, err } - r := packfile.NewSeekableReader(f) + r := packfile.NewStreamReader(f) d := packfile.NewDecoder(r) err = d.Decode(sto) if err != nil { From ce6f483de91eaee29e6c81ad2d9b6b8d802631e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Wed, 29 Jun 2016 11:46:37 +0200 Subject: [PATCH 111/143] clean packfile StreamReader --- .../internal/readcounter/readcounter.go | 50 ------------------ formats/packfile/read_recaller.go | 1 + formats/packfile/stream_reader.go | 51 ++++++++++++++----- 3 files changed, 39 insertions(+), 63 deletions(-) delete mode 100644 formats/packfile/internal/readcounter/readcounter.go diff --git a/formats/packfile/internal/readcounter/readcounter.go b/formats/packfile/internal/readcounter/readcounter.go deleted file mode 100644 index 0b0db6244..000000000 --- a/formats/packfile/internal/readcounter/readcounter.go +++ /dev/null @@ -1,50 +0,0 @@ -package readcounter - -import ( - "fmt" - "io" -) - -// ReadCounter is a reader that keeps track of the number of bytes readed. -type ReadCounter struct { - io.Reader - count int64 -} - -// New returns a new ReadCounter for the given stream r. -func New(r io.Reader) *ReadCounter { - return &ReadCounter{Reader: r, count: 0} -} - -func (t *ReadCounter) Read(p []byte) (n int, err error) { - n, err = t.Reader.Read(p) - if err != nil { - return 0, err - } - - t.count += int64(n) - - return n, err -} - -// ReadByte reads a byte from the readcounter. -func (t *ReadCounter) ReadByte() (c byte, err error) { - var p [1]byte - n, err := t.Reader.Read(p[:]) - if err != nil { - return 0, err - } - - if n > 1 { - return 0, fmt.Errorf("read %d bytes, should have read just 1", n) - } - - t.count++ - - return p[0], nil -} - -// Count returns the number of bytes read so far. -func (t *ReadCounter) Count() int64 { - return t.count -} diff --git a/formats/packfile/read_recaller.go b/formats/packfile/read_recaller.go index a31bbf9c1..dff22ba80 100644 --- a/formats/packfile/read_recaller.go +++ b/formats/packfile/read_recaller.go @@ -15,6 +15,7 @@ var ( // Parser to operate. We provide two very different implementations: // SeekableReader and StreamReader. type ReadRecaller interface { + // Read reads up to len(p) bytes into p. Read(p []byte) (int, error) // ReadByte is needed because of these: // - https://github.com/golang/go/commit/7ba54d45732219af86bde9a5b73c145db82b70c6 diff --git a/formats/packfile/stream_reader.go b/formats/packfile/stream_reader.go index d26f4ee75..5de1150d3 100644 --- a/formats/packfile/stream_reader.go +++ b/formats/packfile/stream_reader.go @@ -4,50 +4,73 @@ import ( "io" "gopkg.in/src-d/go-git.v3/core" - "gopkg.in/src-d/go-git.v3/formats/packfile/internal/readcounter" ) -// StreamReader implements Reader from a packfile in a io.Reader. +// StreamReader implements ReadRecaller from a packfile in a io.Reader. +// This implementation keeps all remembered objects referenced in maps +// for quick access. type StreamReader struct { - byOffset map[int64]core.Object - byHash map[core.Hash]core.Object - readCounter *readcounter.ReadCounter + io.Reader + count int64 + byOffset map[int64]core.Object + byHash map[core.Hash]core.Object } +// NewStreamReader returns a new StreamReader that reads form r. func NewStreamReader(r io.Reader) *StreamReader { return &StreamReader{ - byHash: make(map[core.Hash]core.Object, 0), - byOffset: make(map[int64]core.Object, 0), - readCounter: readcounter.New(r), + Reader: r, + count: 0, + byHash: make(map[core.Hash]core.Object, 0), + byOffset: make(map[int64]core.Object, 0), } } -func (r *StreamReader) Read(p []byte) (int, error) { - return r.readCounter.Read(p) +// Read reads up to len(p) bytes into p. +func (r *StreamReader) Read(p []byte) (n int, err error) { + n, err = r.Reader.Read(p) + r.count += int64(n) + + return } +// ReadByte reads a byte. func (r *StreamReader) ReadByte() (byte, error) { - return r.readCounter.ReadByte() + var p [1]byte + _, err := r.Reader.Read(p[:]) + if err != nil { + return 0, err + } + r.count++ + + return p[0], nil } +// Offset returns the number of bytes read. func (r *StreamReader) Offset() (int64, error) { - return r.readCounter.Count(), nil + return r.count, nil } +// Remember stores references to the passed object to be used later by +// RecalByHash and RecallByOffset. It receives the object and the offset +// of its object entry in the packfile. func (r *StreamReader) Remember(o int64, obj core.Object) error { h := obj.Hash() if _, ok := r.byHash[h]; ok { return ErrDuplicatedObj.AddDetails("with hash: %s", h) } + r.byHash[h] = obj + if _, ok := r.byOffset[o]; ok { return ErrDuplicatedObj.AddDetails("at offset: %d", o) } - r.byHash[h] = obj r.byOffset[o] = obj return nil } +// RecallByHash returns an object that has been previously Remember-ed by +// its hash. func (r *StreamReader) RecallByHash(h core.Hash) (core.Object, error) { obj, ok := r.byHash[h] if !ok { @@ -57,6 +80,8 @@ func (r *StreamReader) RecallByHash(h core.Hash) (core.Object, error) { return obj, nil } +// RecallByHash returns an object that has been previously Remember-ed by +// the offset of its object entry in the packfile. func (r *StreamReader) RecallByOffset(o int64) (core.Object, error) { obj, ok := r.byOffset[o] if !ok { From 2b51933d718d94d9de5b615850f2a4393a46b8f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Wed, 29 Jun 2016 14:43:12 +0200 Subject: [PATCH 112/143] stream_reader tests --- formats/packfile/stream_reader.go | 11 +- formats/packfile/stream_reader_test.go | 160 +++++++++++++++++++++++++ 2 files changed, 164 insertions(+), 7 deletions(-) create mode 100644 formats/packfile/stream_reader_test.go diff --git a/formats/packfile/stream_reader.go b/formats/packfile/stream_reader.go index 5de1150d3..483bc3e22 100644 --- a/formats/packfile/stream_reader.go +++ b/formats/packfile/stream_reader.go @@ -38,12 +38,9 @@ func (r *StreamReader) Read(p []byte) (n int, err error) { func (r *StreamReader) ReadByte() (byte, error) { var p [1]byte _, err := r.Reader.Read(p[:]) - if err != nil { - return 0, err - } r.count++ - return p[0], nil + return p[0], err } // Offset returns the number of bytes read. @@ -57,12 +54,12 @@ func (r *StreamReader) Offset() (int64, error) { func (r *StreamReader) Remember(o int64, obj core.Object) error { h := obj.Hash() if _, ok := r.byHash[h]; ok { - return ErrDuplicatedObj.AddDetails("with hash: %s", h) + return ErrDuplicatedObj.AddDetails("with hash %s", h) } r.byHash[h] = obj if _, ok := r.byOffset[o]; ok { - return ErrDuplicatedObj.AddDetails("at offset: %d", o) + return ErrDuplicatedObj.AddDetails("with offset %d", o) } r.byOffset[o] = obj @@ -74,7 +71,7 @@ func (r *StreamReader) Remember(o int64, obj core.Object) error { func (r *StreamReader) RecallByHash(h core.Hash) (core.Object, error) { obj, ok := r.byHash[h] if !ok { - return nil, ErrCannotRecall.AddDetails("hash not found: %s", h) + return nil, ErrCannotRecall.AddDetails("by hash %s", h) } return obj, nil diff --git a/formats/packfile/stream_reader_test.go b/formats/packfile/stream_reader_test.go new file mode 100644 index 000000000..fa13dd7ec --- /dev/null +++ b/formats/packfile/stream_reader_test.go @@ -0,0 +1,160 @@ +package packfile + +import ( + "bytes" + "fmt" + + "gopkg.in/src-d/go-git.v3/core" + "gopkg.in/src-d/go-git.v3/storage/memory" + + . "gopkg.in/check.v1" +) + +type StreamReaderSuite struct{} + +var _ = Suite(&StreamReaderSuite{}) + +func (s *StreamReaderSuite) TestRead(c *C) { + data := []byte{0, 1, 2, 3, 4, 5, 7, 8, 9, 10} + sr := initStreamReader(data) + all := make([]byte, 0, len(data)) + + for len(all) < len(data) { + tmp := make([]byte, 3) + nr, err := sr.Read(tmp) + c.Assert(err, IsNil) + all = append(all, tmp[:nr]...) + } + c.Assert(data, DeepEquals, all) +} + +func initStreamReader(data []byte) *StreamReader { + buf := bytes.NewBuffer(data) + return NewStreamReader(buf) +} + +func (s *StreamReaderSuite) TestReadbyte(c *C) { + data := []byte{0, 1, 2, 3, 4, 5, 7, 8, 9, 10} + buf := bytes.NewBuffer(data) + sr := NewStreamReader(buf) + all := make([]byte, 0, len(data)) + + for len(all) < len(data) { + b, err := sr.ReadByte() + c.Assert(err, IsNil) + all = append(all, b) + } + c.Assert(data, DeepEquals, all) +} + +func (s *StreamReaderSuite) TestOffsetWithRead(c *C) { + data := []byte{0, 1, 2, 3, 4, 5, 7, 8, 9, 10} + buf := bytes.NewBuffer(data) + sr := NewStreamReader(buf) + all := make([]byte, 0, len(data)) + + for len(all) < len(data) { + tmp := make([]byte, 3) + nr, err := sr.Read(tmp) + c.Assert(err, IsNil) + all = append(all, tmp[:nr]...) + + off, err := sr.Offset() + c.Assert(err, IsNil) + c.Assert(off, Equals, int64(len(all))) + } +} + +func (s *StreamReaderSuite) TestOffsetWithReadByte(c *C) { + data := []byte{0, 1, 2, 3, 4, 5, 7, 8, 9, 10} + buf := bytes.NewBuffer(data) + sr := NewStreamReader(buf) + all := make([]byte, 0, len(data)) + + for len(all) < len(data) { + b, err := sr.ReadByte() + c.Assert(err, IsNil) + all = append(all, b) + + off, err := sr.Offset() + c.Assert(err, IsNil) + c.Assert(off, Equals, int64(len(all))) + } +} + +func (s *StreamReaderSuite) TestRememberRecall(c *C) { + sr := NewStreamReader(bytes.NewBuffer([]byte{})) + + for i, test := range [...]struct { + off int64 + obj core.Object + err string // error regexp + }{ + {off: 0, obj: newObj(0, []byte{'a'})}, + {off: 10, obj: newObj(0, []byte{'b'})}, + {off: 20, obj: newObj(0, []byte{'c'})}, + {off: 30, obj: newObj(0, []byte{'a'}), + err: "duplicated object: with hash .*"}, + {off: 0, obj: newObj(0, []byte{'d'}), + err: "duplicated object: with offset 0"}, + } { + com := Commentf("subtest %d) offset = %d", i, test.off) + + err := sr.Remember(test.off, test.obj) + if test.err != "" { + c.Assert(err, ErrorMatches, test.err) + continue + } + c.Assert(err, IsNil, com) + + result, err := sr.RecallByHash(test.obj.Hash()) + c.Assert(err, IsNil) + c.Assert(result, Equals, test.obj, com) + + result, err = sr.RecallByOffset(test.off) + c.Assert(err, IsNil) + c.Assert(result, Equals, test.obj, com) + } +} + +func newObj(typ int, cont []byte) core.Object { + return memory.NewObject(core.ObjectType(typ), int64(len(cont)), cont) +} + +func (s *StreamReaderSuite) TestRecallErrors(c *C) { + sr := NewStreamReader(bytes.NewBuffer([]byte{})) + obj := newObj(0, []byte{}) + + _, err := sr.RecallByHash(obj.Hash()) + c.Assert(err, ErrorMatches, ErrCannotRecall.Error()+".*") + + _, err = sr.RecallByOffset(0) + c.Assert(err, ErrorMatches, ErrCannotRecall.Error()+".*") + + rememberSomeObjects(sr) + + _, err = sr.RecallByHash(obj.Hash()) + c.Assert(err, ErrorMatches, ErrCannotRecall.Error()+".*") + + _, err = sr.RecallByOffset(15) + c.Assert(err, ErrorMatches, ErrCannotRecall.Error()+".*") + +} + +func rememberSomeObjects(sr *StreamReader) error { + for i, init := range [...]struct { + off int64 + obj core.Object + }{ + {off: 0, obj: newObj(0, []byte{'a'})}, + {off: 10, obj: newObj(0, []byte{'b'})}, + {off: 20, obj: newObj(0, []byte{'c'})}, + } { + err := sr.Remember(init.off, init.obj) + if err != nil { + return fmt.Errorf("cannot ask StreamReader to Remember item %d", i) + } + } + + return nil +} From 216e5c95bcc24e3a27103fa0d9ac14f5a3314440 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Wed, 29 Jun 2016 14:52:30 +0200 Subject: [PATCH 113/143] refactor packfile.StreamReader into packfile.StreamReadRecaller --- common_test.go | 2 +- formats/packfile/read_recaller.go | 2 +- ...ream_reader.go => stream_read_recaller.go} | 27 +++++++------- ...r_test.go => stream_read_recaller_test.go} | 35 +++++++++---------- remote_test.go | 2 +- repository.go | 2 +- storage/fs/store_test.go | 4 +-- 7 files changed, 36 insertions(+), 38 deletions(-) rename formats/packfile/{stream_reader.go => stream_read_recaller.go} (65%) rename formats/packfile/{stream_reader_test.go => stream_read_recaller_test.go} (79%) diff --git a/common_test.go b/common_test.go index e9a2820b3..95466eea4 100644 --- a/common_test.go +++ b/common_test.go @@ -73,7 +73,7 @@ func unpackFixtures(c *C, fixtures ...[]packedFixture) map[string]*Repository { f, err := os.Open(fixture.packfile) c.Assert(err, IsNil, comment) - r := packfile.NewStreamReader(f) + r := packfile.NewStreamReadRecaller(f) d := packfile.NewDecoder(r) err = d.Decode(repos[fixture.url].Storage) c.Assert(err, IsNil, comment) diff --git a/formats/packfile/read_recaller.go b/formats/packfile/read_recaller.go index dff22ba80..7c35c28bf 100644 --- a/formats/packfile/read_recaller.go +++ b/formats/packfile/read_recaller.go @@ -13,7 +13,7 @@ var ( // The Reader interface has all the functions needed by a packfile // Parser to operate. We provide two very different implementations: -// SeekableReader and StreamReader. +// SeekableReadRecaller and StreamReadRecaller. type ReadRecaller interface { // Read reads up to len(p) bytes into p. Read(p []byte) (int, error) diff --git a/formats/packfile/stream_reader.go b/formats/packfile/stream_read_recaller.go similarity index 65% rename from formats/packfile/stream_reader.go rename to formats/packfile/stream_read_recaller.go index 483bc3e22..318178ec3 100644 --- a/formats/packfile/stream_reader.go +++ b/formats/packfile/stream_read_recaller.go @@ -6,19 +6,20 @@ import ( "gopkg.in/src-d/go-git.v3/core" ) -// StreamReader implements ReadRecaller from a packfile in a io.Reader. -// This implementation keeps all remembered objects referenced in maps -// for quick access. -type StreamReader struct { +// StreamReadRecaller implements ReadRecaller from a packfile in a +// io.Reader. This implementation keeps all remembered objects +// referenced in maps for quick access. +type StreamReadRecaller struct { io.Reader count int64 byOffset map[int64]core.Object byHash map[core.Hash]core.Object } -// NewStreamReader returns a new StreamReader that reads form r. -func NewStreamReader(r io.Reader) *StreamReader { - return &StreamReader{ +// NewStreamReadRecaller returns a new StreamReadRecaller that reads +// form r. +func NewStreamReadRecaller(r io.Reader) *StreamReadRecaller { + return &StreamReadRecaller{ Reader: r, count: 0, byHash: make(map[core.Hash]core.Object, 0), @@ -27,7 +28,7 @@ func NewStreamReader(r io.Reader) *StreamReader { } // Read reads up to len(p) bytes into p. -func (r *StreamReader) Read(p []byte) (n int, err error) { +func (r *StreamReadRecaller) Read(p []byte) (n int, err error) { n, err = r.Reader.Read(p) r.count += int64(n) @@ -35,7 +36,7 @@ func (r *StreamReader) Read(p []byte) (n int, err error) { } // ReadByte reads a byte. -func (r *StreamReader) ReadByte() (byte, error) { +func (r *StreamReadRecaller) ReadByte() (byte, error) { var p [1]byte _, err := r.Reader.Read(p[:]) r.count++ @@ -44,14 +45,14 @@ func (r *StreamReader) ReadByte() (byte, error) { } // Offset returns the number of bytes read. -func (r *StreamReader) Offset() (int64, error) { +func (r *StreamReadRecaller) Offset() (int64, error) { return r.count, nil } // Remember stores references to the passed object to be used later by // RecalByHash and RecallByOffset. It receives the object and the offset // of its object entry in the packfile. -func (r *StreamReader) Remember(o int64, obj core.Object) error { +func (r *StreamReadRecaller) Remember(o int64, obj core.Object) error { h := obj.Hash() if _, ok := r.byHash[h]; ok { return ErrDuplicatedObj.AddDetails("with hash %s", h) @@ -68,7 +69,7 @@ func (r *StreamReader) Remember(o int64, obj core.Object) error { // RecallByHash returns an object that has been previously Remember-ed by // its hash. -func (r *StreamReader) RecallByHash(h core.Hash) (core.Object, error) { +func (r *StreamReadRecaller) RecallByHash(h core.Hash) (core.Object, error) { obj, ok := r.byHash[h] if !ok { return nil, ErrCannotRecall.AddDetails("by hash %s", h) @@ -79,7 +80,7 @@ func (r *StreamReader) RecallByHash(h core.Hash) (core.Object, error) { // RecallByHash returns an object that has been previously Remember-ed by // the offset of its object entry in the packfile. -func (r *StreamReader) RecallByOffset(o int64) (core.Object, error) { +func (r *StreamReadRecaller) RecallByOffset(o int64) (core.Object, error) { obj, ok := r.byOffset[o] if !ok { return nil, ErrCannotRecall.AddDetails("no object found at offset %d", o) diff --git a/formats/packfile/stream_reader_test.go b/formats/packfile/stream_read_recaller_test.go similarity index 79% rename from formats/packfile/stream_reader_test.go rename to formats/packfile/stream_read_recaller_test.go index fa13dd7ec..4d08126ff 100644 --- a/formats/packfile/stream_reader_test.go +++ b/formats/packfile/stream_read_recaller_test.go @@ -10,11 +10,11 @@ import ( . "gopkg.in/check.v1" ) -type StreamReaderSuite struct{} +type StreamReadRecallerSuite struct{} -var _ = Suite(&StreamReaderSuite{}) +var _ = Suite(&StreamReadRecallerSuite{}) -func (s *StreamReaderSuite) TestRead(c *C) { +func (s *StreamReadRecallerSuite) TestRead(c *C) { data := []byte{0, 1, 2, 3, 4, 5, 7, 8, 9, 10} sr := initStreamReader(data) all := make([]byte, 0, len(data)) @@ -28,15 +28,14 @@ func (s *StreamReaderSuite) TestRead(c *C) { c.Assert(data, DeepEquals, all) } -func initStreamReader(data []byte) *StreamReader { +func initStreamReader(data []byte) *StreamReadRecaller { buf := bytes.NewBuffer(data) - return NewStreamReader(buf) + return NewStreamReadRecaller(buf) } -func (s *StreamReaderSuite) TestReadbyte(c *C) { +func (s *StreamReadRecallerSuite) TestReadbyte(c *C) { data := []byte{0, 1, 2, 3, 4, 5, 7, 8, 9, 10} - buf := bytes.NewBuffer(data) - sr := NewStreamReader(buf) + sr := initStreamReader(data) all := make([]byte, 0, len(data)) for len(all) < len(data) { @@ -47,10 +46,9 @@ func (s *StreamReaderSuite) TestReadbyte(c *C) { c.Assert(data, DeepEquals, all) } -func (s *StreamReaderSuite) TestOffsetWithRead(c *C) { +func (s *StreamReadRecallerSuite) TestOffsetWithRead(c *C) { data := []byte{0, 1, 2, 3, 4, 5, 7, 8, 9, 10} - buf := bytes.NewBuffer(data) - sr := NewStreamReader(buf) + sr := initStreamReader(data) all := make([]byte, 0, len(data)) for len(all) < len(data) { @@ -65,10 +63,9 @@ func (s *StreamReaderSuite) TestOffsetWithRead(c *C) { } } -func (s *StreamReaderSuite) TestOffsetWithReadByte(c *C) { +func (s *StreamReadRecallerSuite) TestOffsetWithReadByte(c *C) { data := []byte{0, 1, 2, 3, 4, 5, 7, 8, 9, 10} - buf := bytes.NewBuffer(data) - sr := NewStreamReader(buf) + sr := initStreamReader(data) all := make([]byte, 0, len(data)) for len(all) < len(data) { @@ -82,8 +79,8 @@ func (s *StreamReaderSuite) TestOffsetWithReadByte(c *C) { } } -func (s *StreamReaderSuite) TestRememberRecall(c *C) { - sr := NewStreamReader(bytes.NewBuffer([]byte{})) +func (s *StreamReadRecallerSuite) TestRememberRecall(c *C) { + sr := NewStreamReadRecaller(bytes.NewBuffer([]byte{})) for i, test := range [...]struct { off int64 @@ -121,8 +118,8 @@ func newObj(typ int, cont []byte) core.Object { return memory.NewObject(core.ObjectType(typ), int64(len(cont)), cont) } -func (s *StreamReaderSuite) TestRecallErrors(c *C) { - sr := NewStreamReader(bytes.NewBuffer([]byte{})) +func (s *StreamReadRecallerSuite) TestRecallErrors(c *C) { + sr := NewStreamReadRecaller(bytes.NewBuffer([]byte{})) obj := newObj(0, []byte{}) _, err := sr.RecallByHash(obj.Hash()) @@ -141,7 +138,7 @@ func (s *StreamReaderSuite) TestRecallErrors(c *C) { } -func rememberSomeObjects(sr *StreamReader) error { +func rememberSomeObjects(sr *StreamReadRecaller) error { for i, init := range [...]struct { off int64 obj core.Object diff --git a/remote_test.go b/remote_test.go index aaedcc7bd..ffcd6cb75 100644 --- a/remote_test.go +++ b/remote_test.go @@ -56,7 +56,7 @@ func (s *SuiteRemote) TestFetchDefaultBranch(c *C) { reader, err := r.FetchDefaultBranch() c.Assert(err, IsNil) - packfileReader := packfile.NewStreamReader(reader) + packfileReader := packfile.NewStreamReadRecaller(reader) d := packfile.NewDecoder(packfileReader) sto := memory.NewObjectStorage() diff --git a/repository.go b/repository.go index 7c803e0fe..3ecf8eef8 100644 --- a/repository.go +++ b/repository.go @@ -100,7 +100,7 @@ func (r *Repository) Pull(remoteName, branch string) (err error) { return err } defer checkClose(reader, &err) - stream := packfile.NewStreamReader(reader) + stream := packfile.NewStreamReadRecaller(reader) d := packfile.NewDecoder(stream) err = d.Decode(r.Storage) diff --git a/storage/fs/store_test.go b/storage/fs/store_test.go index 30c6cf4de..5c88d1637 100644 --- a/storage/fs/store_test.go +++ b/storage/fs/store_test.go @@ -123,7 +123,7 @@ func memStorageFromGitDir(path string) (*memory.ObjectStorage, error) { } sto := memory.NewObjectStorage() - r := packfile.NewStreamReader(f) + r := packfile.NewStreamReadRecaller(f) d := packfile.NewDecoder(r) err = d.Decode(sto) if err != nil { @@ -260,7 +260,7 @@ func memStorageFromDirPath(path string) (*memory.ObjectStorage, error) { return nil, err } - r := packfile.NewStreamReader(f) + r := packfile.NewStreamReadRecaller(f) d := packfile.NewDecoder(r) err = d.Decode(sto) if err != nil { From 3acabeb8cff94700b8bc06414529ae77d48a16e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Wed, 29 Jun 2016 15:01:59 +0200 Subject: [PATCH 114/143] refactor packfile.SeekableReader into packfile.SeekableReadRecaller and document it --- blame_test.go | 2 +- formats/packfile/decoder_test.go | 6 +- formats/packfile/seekable_read_recaller.go | 96 ++++++++++++++++++++++ formats/packfile/seekable_reader.go | 81 ------------------ references_test.go | 2 +- storage/fs/internal/index/index.go | 2 +- storage/fs/store.go | 2 +- 7 files changed, 103 insertions(+), 88 deletions(-) create mode 100644 formats/packfile/seekable_read_recaller.go delete mode 100644 formats/packfile/seekable_reader.go diff --git a/blame_test.go b/blame_test.go index 890975eb1..469270655 100644 --- a/blame_test.go +++ b/blame_test.go @@ -23,7 +23,7 @@ func (s *BlameCommon) SetUpSuite(c *C) { f, err := os.Open(fixRepo.packfile) c.Assert(err, IsNil) - reader := packfile.NewSeekableReader(f) + reader := packfile.NewSeekableReadRecaller(f) d := packfile.NewDecoder(reader) err = d.Decode(r.Storage) diff --git a/formats/packfile/decoder_test.go b/formats/packfile/decoder_test.go index 113b31bc7..609e05195 100644 --- a/formats/packfile/decoder_test.go +++ b/formats/packfile/decoder_test.go @@ -27,7 +27,7 @@ var packFileWithEmptyObjects = "UEFDSwAAAAIAAAALnw54nKXMQWoDMQxA0b1PoX2hSLIm44FS func (s *ReaderSuite) TestReadPackfile(c *C) { data, _ := base64.StdEncoding.DecodeString(packFileWithEmptyObjects) f := bytes.NewReader(data) - r := NewSeekableReader(f) + r := NewSeekableReadRecaller(f) d := NewDecoder(r) sto := memory.NewObjectStorage() @@ -60,7 +60,7 @@ func (s *ReaderSuite) TestReadPackfileREFDelta(c *C) { func (s *ReaderSuite) testReadPackfileGitFixture(c *C, file string, format Format) { f, err := os.Open(file) c.Assert(err, IsNil) - r := NewSeekableReader(f) + r := NewSeekableReadRecaller(f) d := NewDecoder(r) sto := memory.NewObjectStorage() @@ -167,7 +167,7 @@ func (s *ReaderSuite) _TestMemoryREF(c *C) { func readFromFile(c *C, file string, format Format) *memory.ObjectStorage { f, err := os.Open(file) c.Assert(err, IsNil) - r := NewSeekableReader(f) + r := NewSeekableReadRecaller(f) d := NewDecoder(r) sto := memory.NewObjectStorage() diff --git a/formats/packfile/seekable_read_recaller.go b/formats/packfile/seekable_read_recaller.go new file mode 100644 index 000000000..fdd072c7a --- /dev/null +++ b/formats/packfile/seekable_read_recaller.go @@ -0,0 +1,96 @@ +package packfile + +import ( + "io" + "os" + + "gopkg.in/src-d/go-git.v3/core" +) + +// SeekableReadRecaller implements ReadRecaller from a packfile in a +// io.ReadSeeker. Remembering does not actually stores a reference to +// the objects; the object offset is remebered instead and the packfile +// is read again everytime a recall operation is requested. This saves +// memory buy can be very slow if the associated io.ReadSeeker is slow +// (like a hard disk). +type SeekableReadRecaller struct { + io.ReadSeeker + OffsetsByHash map[core.Hash]int64 +} + +// NewSeekableReadRecaller returns a new SeekableReadRecaller that reads +// form r. +func NewSeekableReadRecaller(r io.ReadSeeker) *SeekableReadRecaller { + return &SeekableReadRecaller{ + r, + make(map[core.Hash]int64), + } +} + +// Read reads up to len(p) bytes into p. +func (r *SeekableReadRecaller) Read(p []byte) (int, error) { + return r.ReadSeeker.Read(p) +} + +// ReadByte reads a byte. +func (r *SeekableReadRecaller) ReadByte() (byte, error) { + var p [1]byte + _, err := r.ReadSeeker.Read(p[:]) + if err != nil { + return 0, err + } + + return p[0], nil +} + +// Offset returns the offset for the next Read or ReadByte. +func (r *SeekableReadRecaller) Offset() (int64, error) { + return r.Seek(0, os.SEEK_CUR) +} + +// Remember stores the offset of the object and its hash, but not the object itself. +func (r *SeekableReadRecaller) Remember(o int64, obj core.Object) error { + h := obj.Hash() + if _, ok := r.OffsetsByHash[h]; ok { + return ErrDuplicatedObj.AddDetails("with hash %s", h) + } + + r.OffsetsByHash[h] = o + + return nil +} + +// RecallByHash returns the object for a given hash by looking for it again in +// the io.ReadeSeerker. +func (r *SeekableReadRecaller) RecallByHash(h core.Hash) (core.Object, error) { + o, ok := r.OffsetsByHash[h] + if !ok { + return nil, ErrCannotRecall.AddDetails("hash not found: %s", h) + } + + return r.RecallByOffset(o) +} + +// RecallByOffset returns the object for a given offset by looking for it again in +// the io.ReadeSeerker. +func (r *SeekableReadRecaller) RecallByOffset(o int64) (obj core.Object, err error) { + beforeJump, err := r.Offset() + if err != nil { + return nil, err + } + + defer func() { + _, seekErr := r.Seek(beforeJump, os.SEEK_SET) + if err == nil { + err = seekErr + } + }() + + // jump to offset o + _, err = r.Seek(o, os.SEEK_SET) + if err != nil { + return nil, err + } + + return NewParser(r).ReadObject() +} diff --git a/formats/packfile/seekable_reader.go b/formats/packfile/seekable_reader.go deleted file mode 100644 index 2672b6f2e..000000000 --- a/formats/packfile/seekable_reader.go +++ /dev/null @@ -1,81 +0,0 @@ -package packfile - -import ( - "io" - "os" - - "gopkg.in/src-d/go-git.v3/core" -) - -// SeekableReader implements Reader from a packfile in a io.ReadSeeker. -type SeekableReader struct { - io.ReadSeeker - OffsetsByHash map[core.Hash]int64 -} - -func NewSeekableReader(r io.ReadSeeker) *SeekableReader { - return &SeekableReader{ - r, - make(map[core.Hash]int64), - } -} - -func (r *SeekableReader) Read(p []byte) (int, error) { - return r.ReadSeeker.Read(p) -} - -func (r *SeekableReader) ReadByte() (byte, error) { - var p [1]byte - _, err := r.ReadSeeker.Read(p[:]) - if err != nil { - return 0, err - } - - return p[0], nil -} - -func (r *SeekableReader) Offset() (int64, error) { - return r.Seek(0, os.SEEK_CUR) -} - -func (r *SeekableReader) Remember(o int64, obj core.Object) error { - h := obj.Hash() - if _, ok := r.OffsetsByHash[h]; ok { - return ErrDuplicatedObj.AddDetails("with hash %s", h) - } - - r.OffsetsByHash[h] = o - - return nil -} - -func (r *SeekableReader) RecallByHash(h core.Hash) (core.Object, error) { - o, ok := r.OffsetsByHash[h] - if !ok { - return nil, ErrCannotRecall.AddDetails("hash not found: %s", h) - } - - return r.RecallByOffset(o) -} - -func (r *SeekableReader) RecallByOffset(o int64) (obj core.Object, err error) { - beforeJump, err := r.Offset() - if err != nil { - return nil, err - } - - defer func() { - _, seekErr := r.Seek(beforeJump, os.SEEK_SET) - if err == nil { - err = seekErr - } - }() - - // jump to offset o - _, err = r.Seek(o, os.SEEK_SET) - if err != nil { - return nil, err - } - - return NewParser(r).ReadObject() -} diff --git a/references_test.go b/references_test.go index 3fa22f49e..25b7491b2 100644 --- a/references_test.go +++ b/references_test.go @@ -26,7 +26,7 @@ func (s *ReferencesSuite) SetUpSuite(c *C) { f, err := os.Open(fix.packfile) defer f.Close() c.Assert(err, IsNil) - r := packfile.NewSeekableReader(f) + r := packfile.NewSeekableReadRecaller(f) d := packfile.NewDecoder(r) err = d.Decode(s.repos[fix.url].Storage) c.Assert(err, IsNil) diff --git a/storage/fs/internal/index/index.go b/storage/fs/internal/index/index.go index e4ddb48b8..fa7a97878 100644 --- a/storage/fs/internal/index/index.go +++ b/storage/fs/internal/index/index.go @@ -37,7 +37,7 @@ func NewFromIdx(r io.Reader) (Index, error) { func NewFromPackfile(rs io.ReadSeeker) (Index, error) { index := make(Index) - r := packfile.NewSeekableReader(rs) + r := packfile.NewSeekableReadRecaller(rs) p := packfile.NewParser(r) count, err := p.ReadHeader() diff --git a/storage/fs/store.go b/storage/fs/store.go index 3afe2610e..35532e560 100644 --- a/storage/fs/store.go +++ b/storage/fs/store.go @@ -125,7 +125,7 @@ func (s *ObjectStorage) Get(h core.Hash) (core.Object, error) { return nil, err } - r := packfile.NewSeekableReader(f) + r := packfile.NewSeekableReadRecaller(f) r.OffsetsByHash = map[core.Hash]int64(s.index) p := packfile.NewParser(r) From bce1795033f3be4cebf6bb223400a9abe98be757 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Wed, 29 Jun 2016 17:42:36 +0200 Subject: [PATCH 115/143] generalize packfile.StreamReadRecaller test to all packfile.ReadRecaller implementations --- formats/packfile/read_recaller_impl_test.go | 259 ++++++++++++++++++ formats/packfile/seekable_read_recaller.go | 9 +- formats/packfile/stream_read_recaller_test.go | 157 ----------- storage/fs/store_test.go | 13 +- 4 files changed, 273 insertions(+), 165 deletions(-) create mode 100644 formats/packfile/read_recaller_impl_test.go delete mode 100644 formats/packfile/stream_read_recaller_test.go diff --git a/formats/packfile/read_recaller_impl_test.go b/formats/packfile/read_recaller_impl_test.go new file mode 100644 index 000000000..6f0aa8538 --- /dev/null +++ b/formats/packfile/read_recaller_impl_test.go @@ -0,0 +1,259 @@ +package packfile + +import ( + "bytes" + "fmt" + "io/ioutil" + "os" + + "gopkg.in/src-d/go-git.v3/core" + "gopkg.in/src-d/go-git.v3/storage/memory" + + . "gopkg.in/check.v1" +) + +type ReadRecallerImplSuite struct{} + +var _ = Suite(&ReadRecallerImplSuite{}) + +type implFn func([]byte) ReadRecaller + +func newStream(data []byte) ReadRecaller { + buf := bytes.NewBuffer(data) + return NewStreamReadRecaller(buf) +} + +func newSeekable(data []byte) ReadRecaller { + buf := bytes.NewReader(data) + return NewSeekableReadRecaller(buf) +} + +func (s *ReadRecallerImplSuite) TestRead(c *C) { + for _, impl := range []struct { + id string + newFn implFn + }{ + {id: "stream", newFn: newStream}, + {id: "seekable", newFn: newSeekable}, + } { + com := Commentf("implementation %s", impl.id) + data := []byte{0, 1, 2, 3, 4, 5, 7, 8, 9, 10} + sr := impl.newFn(data) + all := make([]byte, 0, len(data)) + + for len(all) < len(data) { + tmp := make([]byte, 3) + nr, err := sr.Read(tmp) + c.Assert(err, IsNil, com) + all = append(all, tmp[:nr]...) + } + c.Assert(data, DeepEquals, all, com) + } +} + +func (s *ReadRecallerImplSuite) TestReadbyte(c *C) { + for _, impl := range []struct { + id string + newFn implFn + }{ + {id: "stream", newFn: newStream}, + {id: "seekable", newFn: newSeekable}, + } { + com := Commentf("implementation %s", impl.id) + data := []byte{0, 1, 2, 3, 4, 5, 7, 8, 9, 10} + sr := impl.newFn(data) + all := make([]byte, 0, len(data)) + + for len(all) < len(data) { + b, err := sr.ReadByte() + c.Assert(err, IsNil, com) + all = append(all, b) + } + c.Assert(data, DeepEquals, all, com) + } +} + +func (s *ReadRecallerImplSuite) TestOffsetWithRead(c *C) { + for _, impl := range []struct { + id string + newFn implFn + }{ + {id: "stream", newFn: newStream}, + {id: "seekable", newFn: newSeekable}, + } { + com := Commentf("implementation %s", impl.id) + data := []byte{0, 1, 2, 3, 4, 5, 7, 8, 9, 10} + sr := impl.newFn(data) + all := make([]byte, 0, len(data)) + + for len(all) < len(data) { + tmp := make([]byte, 3) + nr, err := sr.Read(tmp) + c.Assert(err, IsNil, com) + all = append(all, tmp[:nr]...) + + off, err := sr.Offset() + c.Assert(err, IsNil, com) + c.Assert(off, Equals, int64(len(all)), com) + } + } +} + +func (s *ReadRecallerImplSuite) TestOffsetWithReadByte(c *C) { + for _, impl := range []struct { + id string + newFn implFn + }{ + {id: "stream", newFn: newStream}, + {id: "seekable", newFn: newSeekable}, + } { + com := Commentf("implementation %s", impl.id) + data := []byte{0, 1, 2, 3, 4, 5, 7, 8, 9, 10} + sr := impl.newFn(data) + all := make([]byte, 0, len(data)) + + for len(all) < len(data) { + b, err := sr.ReadByte() + c.Assert(err, IsNil, com) + all = append(all, b) + + off, err := sr.Offset() + c.Assert(err, IsNil, com) + c.Assert(off, Equals, int64(len(all)), com) + } + } +} + +func (s *ReadRecallerImplSuite) TestRememberRecall(c *C) { + packfile := "fixtures/spinnaker-spinnaker.pack" + f, err := os.Open(packfile) + c.Assert(err, IsNil) + defer f.Close() + data, err := ioutil.ReadAll(f) + c.Assert(err, IsNil) + + for _, impl := range []struct { + id string + newFn implFn + }{ + {id: "stream", newFn: newStream}, + {id: "seekable", newFn: newSeekable}, + } { + sr := impl.newFn(data) + for i, test := range [...]struct { + off int64 + obj core.Object + err string // error regexp + ignore string // ignore this test for this implementation + }{ + { + off: 12, + obj: newObj(core.CommitObject, []byte("tree 44a1cdf21c791867c51caad8f1b77e6baee6f462\nparent 87fe6e7c6b1b89519fe3a03a8961c5aa14d4cc68\nparent 9244ee648182b91a63d8cc4cbe4b9ac2a27c0492\nauthor Matt Duftler 1448290941 -0500\ncommitter Matt Duftler 1448290941 -0500\n\nMerge pull request #615 from ewiseblatt/create_dev\n\nPreserve original credentials of spinnaker-local.yml when transforming it.")), + }, { + off: 3037, + obj: newObj(core.TagObject, []byte("object e0005f50e22140def60260960b21667f1fdfff80\ntype commit\ntag v0.10.0\ntagger cfieber 1447687536 -0800\n\nRelease of 0.10.0\n\n- e0005f50e22140def60260960b21667f1fdfff80: Merge pull request #553 from ewiseblatt/rendezvous\n- e1a2b26b784179e6903a7ae967c037c721899eba: Wait for cassandra before starting spinnaker\n- c756e09461d071e98b8660818cf42d90c90f2854: Merge pull request #552 from duftler/google-c2d-tweaks\n- 0777fadf4ca6f458d7071de414f9bd5417911037: Fix incorrect config prop names: s/SPINNAKER_GOOGLE_PROJECT_DEFAULT_REGION/SPINNAKER_GOOGLE_DEFAULT_REGION s/SPINNAKER_GOOGLE_PROJECT_DEFAULT_ZONE/SPINNAKER_GOOGLE_DEFAULT_ZONE Hardcode profile name in generated ~/.aws/credentials to [default]. Restart all of spinnaker after updating cassandra and reconfiguring spinnaker, instead of just restarting clouddriver.\n- d8d031c1ac45801074418c43424a6f2c0dff642c: Merge pull request #551 from kenzanmedia/fixGroup\n- 626d23075f9e92aad19015f2964c95d45f41fa3a: Put in correct block for public image. Delineate cloud provider.\n")), + }, { + off: 157625, + obj: newObj(core.BlobObject, []byte(".gradle\nbuild/\n*.iml\n.idea\n*.pyc\n*~\n#*\nconfig/spinnaker-local.yml\n.DS_Store\npacker/ami_table.md\npacker/ami_table.json\npacker/example_output.txt")), + }, { + off: 1234, + obj: newObj(core.BlobObject, []byte(".gradle\nbuild/\n*.iml\n.idea\n*.pyc\n*~\n#*\nconfig/spinnaker-local.yml\n.DS_Store\npacker/ami_table.md\npacker/ami_table.json\npacker/example_output.txt")), + err: "duplicated object: with hash .*", + }, { + off: 3037, + obj: newObj(core.BlobObject, []byte("")), + err: "duplicated object: with offset 3037", + ignore: "seekable", + // seekable can not check if the offset has already been added + // for performance reasons. + }, + } { + if test.ignore == impl.id { + continue + } + com := Commentf("subtest %d) implementation %s", i, impl.id) + + err := sr.Remember(test.off, test.obj) + if test.err != "" { + c.Assert(err, ErrorMatches, test.err, com) + continue + } + c.Assert(err, IsNil, com) + + result, err := sr.RecallByHash(test.obj.Hash()) + c.Assert(err, IsNil, com) + c.Assert(result, DeepEquals, test.obj, com) + + result, err = sr.RecallByOffset(test.off) + c.Assert(err, IsNil, com) + c.Assert(result, DeepEquals, test.obj, com) + } + } +} + +func newObj(typ core.ObjectType, cont []byte) core.Object { + return memory.NewObject(typ, int64(len(cont)), cont) +} + +func (s *ReadRecallerImplSuite) TestRecallByHashErrors(c *C) { + for _, impl := range []struct { + id string + newFn implFn + }{ + {id: "stream", newFn: newStream}, + {id: "seekable", newFn: newSeekable}, + } { + com := Commentf("implementation %s", impl.id) + sr := impl.newFn([]byte{}) + obj := newObj(core.CommitObject, []byte{}) + + _, err := sr.RecallByHash(obj.Hash()) + c.Assert(err, ErrorMatches, ErrCannotRecall.Error()+".*", com) + + err = rememberSomeObjects(sr) + c.Assert(err, IsNil) + + _, err = sr.RecallByHash(obj.Hash()) + c.Assert(err, ErrorMatches, ErrCannotRecall.Error()+".*", com) + } +} + +func (s *ReadRecallerImplSuite) TestRecallByOffsetErrors(c *C) { + for _, impl := range []struct { + id string + newFn implFn + }{ + {id: "stream", newFn: newStream}, + // seekalbeReadRecaller allways recall every object in the packfile + } { + com := Commentf("implementation %s", impl.id) + sr := impl.newFn([]byte{}) + + _, err := sr.RecallByOffset(15) + c.Assert(err, ErrorMatches, ErrCannotRecall.Error()+".*", com) + + err = rememberSomeObjects(sr) + c.Assert(err, IsNil) + + _, err = sr.RecallByOffset(15) + c.Assert(err, ErrorMatches, ErrCannotRecall.Error()+".*", com) + } +} + +func rememberSomeObjects(sr ReadRecaller) error { + for i, init := range [...]struct { + off int64 + obj core.Object + }{ + {off: 0, obj: newObj(core.CommitObject, []byte{'a'})}, + {off: 10, obj: newObj(core.CommitObject, []byte{'b'})}, + {off: 20, obj: newObj(core.CommitObject, []byte{'c'})}, + } { + err := sr.Remember(init.off, init.obj) + if err != nil { + return fmt.Errorf("cannot ask StreamReader to Remember item %d", i) + } + } + + return nil +} diff --git a/formats/packfile/seekable_read_recaller.go b/formats/packfile/seekable_read_recaller.go index fdd072c7a..46ed520ed 100644 --- a/formats/packfile/seekable_read_recaller.go +++ b/formats/packfile/seekable_read_recaller.go @@ -48,7 +48,10 @@ func (r *SeekableReadRecaller) Offset() (int64, error) { return r.Seek(0, os.SEEK_CUR) } -// Remember stores the offset of the object and its hash, but not the object itself. +// Remember stores the offset of the object and its hash, but not the +// object itself. This implementation does not check for already stored +// offsets, as it is too expensive to build this information from an +// index every time a get operation is performed on the SeekableReadRecaller. func (r *SeekableReadRecaller) Remember(o int64, obj core.Object) error { h := obj.Hash() if _, ok := r.OffsetsByHash[h]; ok { @@ -74,19 +77,21 @@ func (r *SeekableReadRecaller) RecallByHash(h core.Hash) (core.Object, error) { // RecallByOffset returns the object for a given offset by looking for it again in // the io.ReadeSeerker. func (r *SeekableReadRecaller) RecallByOffset(o int64) (obj core.Object, err error) { + // remember current offset beforeJump, err := r.Offset() if err != nil { return nil, err } defer func() { + // jump back _, seekErr := r.Seek(beforeJump, os.SEEK_SET) if err == nil { err = seekErr } }() - // jump to offset o + // jump to requested offset _, err = r.Seek(o, os.SEEK_SET) if err != nil { return nil, err diff --git a/formats/packfile/stream_read_recaller_test.go b/formats/packfile/stream_read_recaller_test.go deleted file mode 100644 index 4d08126ff..000000000 --- a/formats/packfile/stream_read_recaller_test.go +++ /dev/null @@ -1,157 +0,0 @@ -package packfile - -import ( - "bytes" - "fmt" - - "gopkg.in/src-d/go-git.v3/core" - "gopkg.in/src-d/go-git.v3/storage/memory" - - . "gopkg.in/check.v1" -) - -type StreamReadRecallerSuite struct{} - -var _ = Suite(&StreamReadRecallerSuite{}) - -func (s *StreamReadRecallerSuite) TestRead(c *C) { - data := []byte{0, 1, 2, 3, 4, 5, 7, 8, 9, 10} - sr := initStreamReader(data) - all := make([]byte, 0, len(data)) - - for len(all) < len(data) { - tmp := make([]byte, 3) - nr, err := sr.Read(tmp) - c.Assert(err, IsNil) - all = append(all, tmp[:nr]...) - } - c.Assert(data, DeepEquals, all) -} - -func initStreamReader(data []byte) *StreamReadRecaller { - buf := bytes.NewBuffer(data) - return NewStreamReadRecaller(buf) -} - -func (s *StreamReadRecallerSuite) TestReadbyte(c *C) { - data := []byte{0, 1, 2, 3, 4, 5, 7, 8, 9, 10} - sr := initStreamReader(data) - all := make([]byte, 0, len(data)) - - for len(all) < len(data) { - b, err := sr.ReadByte() - c.Assert(err, IsNil) - all = append(all, b) - } - c.Assert(data, DeepEquals, all) -} - -func (s *StreamReadRecallerSuite) TestOffsetWithRead(c *C) { - data := []byte{0, 1, 2, 3, 4, 5, 7, 8, 9, 10} - sr := initStreamReader(data) - all := make([]byte, 0, len(data)) - - for len(all) < len(data) { - tmp := make([]byte, 3) - nr, err := sr.Read(tmp) - c.Assert(err, IsNil) - all = append(all, tmp[:nr]...) - - off, err := sr.Offset() - c.Assert(err, IsNil) - c.Assert(off, Equals, int64(len(all))) - } -} - -func (s *StreamReadRecallerSuite) TestOffsetWithReadByte(c *C) { - data := []byte{0, 1, 2, 3, 4, 5, 7, 8, 9, 10} - sr := initStreamReader(data) - all := make([]byte, 0, len(data)) - - for len(all) < len(data) { - b, err := sr.ReadByte() - c.Assert(err, IsNil) - all = append(all, b) - - off, err := sr.Offset() - c.Assert(err, IsNil) - c.Assert(off, Equals, int64(len(all))) - } -} - -func (s *StreamReadRecallerSuite) TestRememberRecall(c *C) { - sr := NewStreamReadRecaller(bytes.NewBuffer([]byte{})) - - for i, test := range [...]struct { - off int64 - obj core.Object - err string // error regexp - }{ - {off: 0, obj: newObj(0, []byte{'a'})}, - {off: 10, obj: newObj(0, []byte{'b'})}, - {off: 20, obj: newObj(0, []byte{'c'})}, - {off: 30, obj: newObj(0, []byte{'a'}), - err: "duplicated object: with hash .*"}, - {off: 0, obj: newObj(0, []byte{'d'}), - err: "duplicated object: with offset 0"}, - } { - com := Commentf("subtest %d) offset = %d", i, test.off) - - err := sr.Remember(test.off, test.obj) - if test.err != "" { - c.Assert(err, ErrorMatches, test.err) - continue - } - c.Assert(err, IsNil, com) - - result, err := sr.RecallByHash(test.obj.Hash()) - c.Assert(err, IsNil) - c.Assert(result, Equals, test.obj, com) - - result, err = sr.RecallByOffset(test.off) - c.Assert(err, IsNil) - c.Assert(result, Equals, test.obj, com) - } -} - -func newObj(typ int, cont []byte) core.Object { - return memory.NewObject(core.ObjectType(typ), int64(len(cont)), cont) -} - -func (s *StreamReadRecallerSuite) TestRecallErrors(c *C) { - sr := NewStreamReadRecaller(bytes.NewBuffer([]byte{})) - obj := newObj(0, []byte{}) - - _, err := sr.RecallByHash(obj.Hash()) - c.Assert(err, ErrorMatches, ErrCannotRecall.Error()+".*") - - _, err = sr.RecallByOffset(0) - c.Assert(err, ErrorMatches, ErrCannotRecall.Error()+".*") - - rememberSomeObjects(sr) - - _, err = sr.RecallByHash(obj.Hash()) - c.Assert(err, ErrorMatches, ErrCannotRecall.Error()+".*") - - _, err = sr.RecallByOffset(15) - c.Assert(err, ErrorMatches, ErrCannotRecall.Error()+".*") - -} - -func rememberSomeObjects(sr *StreamReadRecaller) error { - for i, init := range [...]struct { - off int64 - obj core.Object - }{ - {off: 0, obj: newObj(0, []byte{'a'})}, - {off: 10, obj: newObj(0, []byte{'b'})}, - {off: 20, obj: newObj(0, []byte{'c'})}, - } { - err := sr.Remember(init.off, init.obj) - if err != nil { - return fmt.Errorf("cannot ask StreamReader to Remember item %d", i) - } - } - - return nil -} diff --git a/storage/fs/store_test.go b/storage/fs/store_test.go index 5c88d1637..21fa9fe02 100644 --- a/storage/fs/store_test.go +++ b/storage/fs/store_test.go @@ -84,9 +84,9 @@ func (s *FsSuite) TestGetHashNotFound(c *C) { func (s *FsSuite) TestGetCompareWithMemoryStorage(c *C) { for i, fixId := range [...]string{ - //"spinnaker", - //"spinnaker-no-idx", - //"binary-relations", + "spinnaker", + "spinnaker-no-idx", + "binary-relations", "ref-deltas-no-idx", } { path := fixture(fixId, c) @@ -147,7 +147,7 @@ func equalsStorages(a, b core.ObjectStorage) (bool, string, error) { } { iter, err := a.Iter(typ) if err != nil { - return false, "", err + return false, "", fmt.Errorf("cannot get iterator: %s", err) } for { @@ -159,12 +159,13 @@ func equalsStorages(a, b core.ObjectStorage) (bool, string, error) { bo, err := b.Get(ao.Hash()) if err != nil { - return false, "", err + return false, "", fmt.Errorf("getting object with hash %s: %s", + ao.Hash(), err) } equal, reason, err := equalsObjects(ao, bo) if !equal || err != nil { - return equal, reason, err + return equal, reason, fmt.Errorf("comparing objects: %s", err) } } } From 467a8af5a1195e397b0e34a13723d975eb76cc0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Wed, 29 Jun 2016 18:01:06 +0200 Subject: [PATCH 116/143] speed up storage/fs tests --- .../alcortesm-binary-relations-no-idx.tgz | Bin 0 -> 19707 bytes storage/fs/store_test.go | 21 +++++++----------- 2 files changed, 8 insertions(+), 13 deletions(-) create mode 100644 storage/fs/internal/gitdir/fixtures/alcortesm-binary-relations-no-idx.tgz diff --git a/storage/fs/internal/gitdir/fixtures/alcortesm-binary-relations-no-idx.tgz b/storage/fs/internal/gitdir/fixtures/alcortesm-binary-relations-no-idx.tgz new file mode 100644 index 0000000000000000000000000000000000000000..e62bef36d31fa64eacb2dc073bf55ada92265443 GIT binary patch literal 19707 zcmV(vKh_4XX0x1#iy{hW&>6zWxwfFWg*_LLvr@QLatM`AeswUsGfF6MX?D68|F5o8sXSXLR*F;8l}f5uDoxLnQf&G<<3(534@{4-lxbJF7q}a?8}xZ2G$4{JIf`2~(pWDux zzi?*y>0kXV^*@#R!Mjp(+80x)XW;%v|3Q3GQ$Mr#+=WNiKmX7tjmoK)-}6VWIUhUl zY)V5(vYL+TaRqxgy!~HIz+3yqrQcn6-z)W-pE)+W`jve*{mu)EKc}VkA-uL*@7mno z9Nu5{!@KG4jaR?$i+BEQWBU&p=J%iZK;`T13#;kWomI;*y`JH5+YBt%@$-Swoeki=oS1Lz z%^$n-E4MwnZax3{rC`Ct27PoKg!{Dw+(*XE zPyP2xcYWs5M?QVin)BI%rJJ65_GIck3T^~+19-0_;4S~&*-w1!+ppd7`=7dcOZ(=N z*Z$`Z$KU&U>UIf_Up3nu0dNC&Ur)euA8s9ZxBbPRto-vS|CaOnpYrZF;`~*JpT`^a z=J>sufVc9;pJ~tB^x>D@&`y5I{>S~l=?dn)p&H5Z@MGo^*agp-@X0RpFDgs`}2?g$KT!Z+3)`KuTwH|F4(zA8r3D#ZuD#S7wWQ_J237ty<@? zw{F`ae~iE$!+5Zd~IG z1c2GTfyu1T48sjt+`}6w4@Sdt+w%irqK&ghEC+f7Ei+(9!+_#PmKo15)8nk>w%gnZ z{5-UL!1b8PI-dI&uLZ2_`hneJmcy2E(4Dh}YuoO+Q+Y5+>__-vx<$Po}kn^_IkbGvNa#0M_x`kbC;=b-as{(@^R3?~)II|c3?Zy@3f5+p7+3DClP_kMp@0(b4*@-bm@qeZ?li>esae6QQ z+m&nl02T)eeoGq%1G(rhs_WXEp-eEp=2;yws8_gWHF|6vt-a+lv+8!~c~w|?3(RsI z091P{5+R1JgP8!+Xq%SJ+T8ceCePDQXIpBF78!kh)sh~>aUJ7v?z!kyf-a2J0Fw`c z`dxGprURW}4A1R&mKksb6+Hk#00-bBVt(Lu$h!#ig?b_ZH!;#wM`qP zpD5j&KgJ0MTXb&j4hcq z)(XJ{=pa-84&UfXeFN4qeO7C6EH#s2ihNFLd5%>9VwE>sh#gI*2igeAj$NvpI}#WT zbD|+sRU(IWLzFHdXiS<8#}#naE!&RaDh-gd063wVz@5PKhol|T1M2`&@aL#ox&*N? zJBb#HPIgjLbz3qFzT*@0du;HUC*6G}0U6q> zdN^*&g<#k8nq7*w!@2UyUDFm*JpqBc*QVu4#k$Zi`Vte2*#!oINQjZ&1q*1wJ+Q$R z(Y_1durmBrz;rm6TN`;5&qnxXrI|`Gjs=(lK23Rc&eX2@gbc}th?SC;tJlQ=|RIR z*mZ%xyq+%UTGzATrmSn)<5R`?;ubGWJMqAo`3%cwKuQ}YX4V=ngFM2MIq)vFk9V?r1T@}X z0RRXm`8un5rc-O>NYjC*3?yHX5*xwWCQ>6p1)j=b0K&OW-4wzOisuI?FG+w73^D{@ zgj_z~54~Y&G`}S@4k$wmxFtcr3vn}l2@_Qi0mHV?^EwO_5xCf4nH6ZC!TIA*`XxmW zXrrfA8@-)JvI~yMml6$4vmM>K%IJFgi;dt;)gU7pY+f1j|AGoe z+i&i01Tez?mu3d?KgbC7{Qs_8TaEw8amU<7+}2`=r{DQArFCR{T_^HSqT=Jk+$V!C5?a_Q6x9S5F+j z|KwTrB=ey?*x-y`Sh+ZnpIo?@%}=Haebbm@7fXdsCJW%mlpB|Qrmv&{w9e2YvnQWq z!di=G3k&pEQ*nZl)*5DM5TDe$5U|vc(Sy|Tfy9)x>F6DGKwUVG1VR}(ur|hg*9%}C zUB|l2jGCGeXPLsv1va)kS;D`CdL~PFKA{Q6vT(4>j&F{K@+H@9xZg>tr5&fF1?g?)zEbv+MfDmrHKTT6bxPgynDN3FhK>So%Qb@Tv4n|n=Rs51_~ z8e|k^M8zf#f*69}0C>&B#S&AIgfe%r4g(od*QT&IL|hI7ad8#Ga7+^c;lTBJU|Z$0 zc^p+k@M2(*S%JS5wl_VF*0-#QSe&Laug4abG5ZqfhImI|zu#+DT`;J)Pl@5u@g*?0 z(ux+@VL%wtB9|g|%K>(J-A)i8UFU&WLtJUm8MBQVUVT65p5p)WOao+U{3Uq_i9Agj&ip0V;Ryur)QBFOK zyc7-L`%#U&JQsnI00}&??ViZUj%q|O5E~+vaXFf2!bj;RL1ns#ioi%Vi#aDO9r$t# z+7A{JE`jAy4G6MoIjiDpGD$N)Y=fXT4-p{6D=VT|h|;A{E{w(nU7aI)){3sQo ze3w=oWl)N;QRR``VW8wXc5f9std+D@s?aqIH6Zr56zg8zpnG%;=^kla z3=a|g#2_n5OY+C`E*vdFQVe^EN)`j0QxYT-?P07_7NpxT0@t8o0;z{$`q*1yn5t07 zY#h^b@kAnq6CEj>F#<*cI#%fV9{I=)_iT#(V4QYOsteXx7Egch!xxInhvjn!o{_?n zss+_OWvxohJ`yGxQdxz$i;gbAOne}QdKLh-%?_&X*jQm@;zH3lWEzd-d$O#6?Z+m- zbImWXQWn2mV?IQm!9?MrQ^-m5O3U;Liz|pDw|SdQgdh_zAz06*1>ms@0&==c^BW4g zyqwJnI3N=f2gnThEFHuD2^!E?04iORO{p!?N_`)L3=JIInX||5KYg00C=eLyI(0B) z(SvK+Kx>_;0ZPk~gwzZ^naKX>ag_8yd!q~=YX6ZV7muG>TD|||aZQUmWs!uM4c_dU zUfmz+k6Y#yF3Q%CnUH2`iR$rEt$_8k=ONoElGh4h%tj z0Z^By=fXQu3$#}nSOh6$Kq$=GnAtSJmrrmD6^PX>kJoS`28e{^sBc&i-C*3%?$&?? zSQLiPEIvYr3=VD4I)Nxv%BnqDN{0)nuXZg^>&WL>qR8NShz0iNre|AdbwQTQHSXuI z?9JB)Fsgw*1)}hPbfFl90FZaII;zT`kfXdFlVe&OfRNF%hzJg^VG`~2$i&DQv~gs- z;b71K89;H3L(T{@@l@c$#OVY&nxEQLYzuC=gMNwo)>5{{^(C@07& zH?|OIg~W;mQgB3VCMSi;3@bM|kUy_pbL%ohP{T@^VHH9XD>nkFu&IJyK#ePwX$zOS zh8`4n;xw#g*Q0s{ywt*_Oz{SA#kp8M#KYQo5n=-*CDu8yEr+bQ+MKiIxa%O^6QwN6 z=kr*KNk|%6Od=yHQOs5fgn@-00R?Iz$&&hqDFmsXA9OobJrti97M_XXPn~NvhxXl$ z%2Xt&fSw{Dp~a)PQVS0cip>(*MS);H8n^@lVgs_JvH`h_L!He=10)?eC%SgHi&Dhc zF<^#^+9x;?T96na2>_y^2nrSjG??NIZKAvxRf(X<=qc0<0(=%T6&wpEArzQVJ?v2= z5ePd(7BH^e%OzqT>ODlUAwi1I5hSY@`awAZ!3|OgMRYn}Clx3RbYTV^S?M8T28xB+ zMBO7>2vM08GdGQ{N5e~%%Sp=0SWym+#v?Y+1UUPa+3};K(Z}i?Do+-82bqyfsIX>8 zawtqqL`v-u9%OuGqrWf%p%hX>=Ww|L`nZN+jQmKUryd0v>8bw%_t**_n9vhHRkk>^ zQ6cecNSoMG{L}zi_+iHeTNYxU=(;%2Fy5|8C@%H2l6MGb;wG{rn&bwv!lB;kbx07w!s|6ddqk2?@> zduEes#|8#Iiw?To>4H4~(~UwrG$C0L)TAoF@D}o-79x)Ts-s;9a2YWQnqw1$xCNU> z(~Bch9z;gw(0SooLC^e=6nK^z z%HICJUAeZp{wIawEv^6#Tl4E%@e9}86vUjY(h7*!2jW@61~;)tFmj8)xatJ{)(7)d zi?0}FFoyCvxJSnFhpgX4y~PTi++ZXL&@e4~quoV0xfMq39-wVeUJ&jt+Rk3XgyM8l#4Lp){NIy1$hr)SQsY z8tpRm1GSZ^Ziy^brH&r33;c#WrGTrd`LL*5&ZR3-$~Gz^t zK76Ci>O1C&`TuCU^A7I;8nyp_wm3Dg|9@&`&;RenwG;b)7?xNZ@Y7;v{{O|@|9!i8 z5XAM_&(p6$+c-54bNw5i8i+UAsZ#?n{qNG&&K=+VKT`i^i98!p%Z zx^ejWHuX-3uAY~hSgy1Xj#L=mC3u99!Iv7CKnHFInFU!XUC2(kxH=DaCxovg&VR?P$NKofaPb?vA2^F!2 z9hbmp#=~#|h?bNsc_?CIlteNiXMw^igcc-NY<$85MUy%rw$Xr&c>IbuqX23m?kl?L zc*bn-peLNQCicKT9=Q>nEgxpFO%?iaq6hBRil3-ab?tEf6{3;XaUoxIWD~LT)?yt% zEY#D9ksgx+(qIU`zcWi0@!SWV{t)wl8!?%MtZEsp#75JQl+c;siU*>1^j!cMm}VFK z`P?R>4i2jLK$awFIAm5M*S`z{MP&mUlhp>KeN^vw+pLxp&`o+LoA!+j%Dc6Jp`q*; zT82>_!-iQTTrE7s;kfaljV90k<0F8mw$hd^XJUa)ti7I98Fj29CD!^mN1cFDnx#)d zKB?XHeUhs9Q+{1A>kN@#3@1|wM|c7OKExC{zH3MhvYX(Nb=o=#d`YOo3amQ?g$ z#&)v2Jr*kLhe%p-5(8dlJMy+u_^Kas>Zf<$L7EVSRl_?BQ>KA_J2BS;)VDS1NrCU8 zI@yet8los)Ze}#&&yQxcKI0^gT%yCB1N(=&XB=`!SeNgH=P_}&Z>V&*K!Pp$&AGrX zL@wd!9+2zS@AM;$d)GFu#Q7gtF5A`fpOw<|;Q61u-~Za3YbSsIWz;G#< zU3ol|>)W@4tPK&J!lV&mm@&p~BuiPcj3p$Q88eZ6hHN>NLLp>}8j>wXM4}`_sO(Ep zmaN&@kF}NG^E^YR&N=Vze9q^6Prvu`zTJOe#`E0wwcPi0-PiZJE)ZqOc(ytt{I-f` z124>>j3Hkz((6S8U6|jVqeN6y#5$9dl@v)tWinBXfKo=0u}VaWsqo5Ci32zY#(KeNANF!} z{JFC*y7xI%)WqYwq4Y67bX zYmCp~G;acl3?c~u(*Tr624>266({KG?hH`uYujU$AiuYkK{+sGl;j%^}n zbbxnG1S(XY05n5ZrUI}B&=$~MkONEyz}*BN0E#YEl?F$n00;F;c-WUJBgcTXflq__Fn3!nk zf{R8v!=(UU?C1RsC@H`n^C!WPBpHy5s1@Y`yjr-Xrh~qj0hd0N>P1zD>-d7vaNpl@ zroR;$2!kTO0_X?ftqiOIAaDS`J!ro#A_!Frff&1jTm_LQ3?%D{tkM`rG_bM^M0595 z*e=2Ouq$m{sv`?LFwCH(6_74faVKbL_j5Az}x`%S9hXTWRQR~xfO5#g#DmU0LccY^M!OYNZvtA%!&rD zavKSCkO6rPP4Wxxzc3ex{9#W1uN+_7e_k|SQ;RG;mX-{cWr3H!%dwt}pux<4;H$nF_oH3D%PRy#y*l4mAoIkV_Q{cMyWVJ$7o={ zM2nG43z$b<⪼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 Date: Wed, 29 Jun 2016 18:55:21 +0200 Subject: [PATCH 117/143] speed up tests in . by loading packfiles in memory --- common_test.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/common_test.go b/common_test.go index 95466eea4..5ed747fa9 100644 --- a/common_test.go +++ b/common_test.go @@ -1,7 +1,9 @@ package git import ( + "bytes" "io" + "io/ioutil" "os" "testing" @@ -73,7 +75,13 @@ func unpackFixtures(c *C, fixtures ...[]packedFixture) map[string]*Repository { f, err := os.Open(fixture.packfile) c.Assert(err, IsNil, comment) - r := packfile.NewStreamReadRecaller(f) + + // increase memory consumption to speed up tests + data, err := ioutil.ReadAll(f) + c.Assert(err, IsNil) + memStream := bytes.NewReader(data) + r := packfile.NewStreamReadRecaller(memStream) + d := packfile.NewDecoder(r) err = d.Decode(repos[fixture.url].Storage) c.Assert(err, IsNil, comment) From ccd1b8a063a2cc0b79b253854432d250f715eec3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Thu, 30 Jun 2016 09:45:52 +0200 Subject: [PATCH 118/143] speed up repository tests by using and smaller fixture --- repository_test.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/repository_test.go b/repository_test.go index 4a26c765f..bea2aa8df 100644 --- a/repository_test.go +++ b/repository_test.go @@ -17,8 +17,8 @@ var dirFixtures = [...]struct { tgz string }{ { - name: "spinnaker", - tgz: "storage/fs/internal/gitdir/fixtures/spinnaker-gc.tgz", + name: "binrels", + tgz: "storage/fs/internal/gitdir/fixtures/alcortesm-binary-relations.tgz", }, } From 2c5cb903f7dfc3bb2565031e46d18a6d3a46a4da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Thu, 30 Jun 2016 09:57:25 +0200 Subject: [PATCH 119/143] restore doc.go files --- formats/idxfile/{doc.txt => doc.go} | 3 +++ formats/packfile/{doc.txt => doc.go} | 3 +++ 2 files changed, 6 insertions(+) rename formats/idxfile/{doc.txt => doc.go} (99%) rename formats/packfile/{doc.txt => doc.go} (99%) diff --git a/formats/idxfile/doc.txt b/formats/idxfile/doc.go similarity index 99% rename from formats/idxfile/doc.txt rename to formats/idxfile/doc.go index 2dcfa4bf5..74149abba 100644 --- a/formats/idxfile/doc.txt +++ b/formats/idxfile/doc.go @@ -1,3 +1,4 @@ +/* == Original (version 1) pack-*.idx files have the following format: - The header consists of 256 4-byte network byte order @@ -125,3 +126,5 @@ Pack file entry: <+ From: https://www.kernel.org/pub/software/scm/git/docs/v1.7.5/technical/pack-protocol.txt +*/ +package idxfile diff --git a/formats/packfile/doc.txt b/formats/packfile/doc.go similarity index 99% rename from formats/packfile/doc.txt rename to formats/packfile/doc.go index 7dda5b2ea..d0c71fba0 100644 --- a/formats/packfile/doc.txt +++ b/formats/packfile/doc.go @@ -1,3 +1,4 @@ +/* GIT pack format =============== @@ -161,3 +162,5 @@ Pack file entry: <+ From: https://www.kernel.org/pub/software/scm/git/docs/v1.7.5/technical/pack-protocol.txt +*/ +package packfile From d692becf5a925b6383c1c6de3760b4ad6408594f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Thu, 30 Jun 2016 10:19:39 +0200 Subject: [PATCH 120/143] rename packfile.ReadRecaller implementations to shorter names --- blame_test.go | 2 +- common_test.go | 2 +- formats/packfile/decoder_test.go | 6 ++-- formats/packfile/read_recaller_impl_test.go | 4 +-- ...{seekable_read_recaller.go => seekable.go} | 29 +++++++++---------- .../{stream_read_recaller.go => stream.go} | 27 +++++++++-------- references_test.go | 2 +- remote_test.go | 2 +- repository.go | 2 +- storage/fs/internal/index/index.go | 2 +- storage/fs/store.go | 2 +- storage/fs/store_test.go | 4 +-- 12 files changed, 41 insertions(+), 43 deletions(-) rename formats/packfile/{seekable_read_recaller.go => seekable.go} (65%) rename formats/packfile/{stream_read_recaller.go => stream.go} (65%) diff --git a/blame_test.go b/blame_test.go index 469270655..38d30188d 100644 --- a/blame_test.go +++ b/blame_test.go @@ -23,7 +23,7 @@ func (s *BlameCommon) SetUpSuite(c *C) { f, err := os.Open(fixRepo.packfile) c.Assert(err, IsNil) - reader := packfile.NewSeekableReadRecaller(f) + reader := packfile.NewSeekable(f) d := packfile.NewDecoder(reader) err = d.Decode(r.Storage) diff --git a/common_test.go b/common_test.go index 5ed747fa9..edc41a934 100644 --- a/common_test.go +++ b/common_test.go @@ -80,7 +80,7 @@ func unpackFixtures(c *C, fixtures ...[]packedFixture) map[string]*Repository { data, err := ioutil.ReadAll(f) c.Assert(err, IsNil) memStream := bytes.NewReader(data) - r := packfile.NewStreamReadRecaller(memStream) + r := packfile.NewStream(memStream) d := packfile.NewDecoder(r) err = d.Decode(repos[fixture.url].Storage) diff --git a/formats/packfile/decoder_test.go b/formats/packfile/decoder_test.go index 609e05195..83f0dd1ac 100644 --- a/formats/packfile/decoder_test.go +++ b/formats/packfile/decoder_test.go @@ -27,7 +27,7 @@ var packFileWithEmptyObjects = "UEFDSwAAAAIAAAALnw54nKXMQWoDMQxA0b1PoX2hSLIm44FS func (s *ReaderSuite) TestReadPackfile(c *C) { data, _ := base64.StdEncoding.DecodeString(packFileWithEmptyObjects) f := bytes.NewReader(data) - r := NewSeekableReadRecaller(f) + r := NewSeekable(f) d := NewDecoder(r) sto := memory.NewObjectStorage() @@ -60,7 +60,7 @@ func (s *ReaderSuite) TestReadPackfileREFDelta(c *C) { func (s *ReaderSuite) testReadPackfileGitFixture(c *C, file string, format Format) { f, err := os.Open(file) c.Assert(err, IsNil) - r := NewSeekableReadRecaller(f) + r := NewSeekable(f) d := NewDecoder(r) sto := memory.NewObjectStorage() @@ -167,7 +167,7 @@ func (s *ReaderSuite) _TestMemoryREF(c *C) { func readFromFile(c *C, file string, format Format) *memory.ObjectStorage { f, err := os.Open(file) c.Assert(err, IsNil) - r := NewSeekableReadRecaller(f) + r := NewSeekable(f) d := NewDecoder(r) sto := memory.NewObjectStorage() diff --git a/formats/packfile/read_recaller_impl_test.go b/formats/packfile/read_recaller_impl_test.go index 6f0aa8538..470a1a83a 100644 --- a/formats/packfile/read_recaller_impl_test.go +++ b/formats/packfile/read_recaller_impl_test.go @@ -20,12 +20,12 @@ type implFn func([]byte) ReadRecaller func newStream(data []byte) ReadRecaller { buf := bytes.NewBuffer(data) - return NewStreamReadRecaller(buf) + return NewStream(buf) } func newSeekable(data []byte) ReadRecaller { buf := bytes.NewReader(data) - return NewSeekableReadRecaller(buf) + return NewSeekable(buf) } func (s *ReadRecallerImplSuite) TestRead(c *C) { diff --git a/formats/packfile/seekable_read_recaller.go b/formats/packfile/seekable.go similarity index 65% rename from formats/packfile/seekable_read_recaller.go rename to formats/packfile/seekable.go index 46ed520ed..59eccda2e 100644 --- a/formats/packfile/seekable_read_recaller.go +++ b/formats/packfile/seekable.go @@ -7,33 +7,32 @@ import ( "gopkg.in/src-d/go-git.v3/core" ) -// SeekableReadRecaller implements ReadRecaller from a packfile in a -// io.ReadSeeker. Remembering does not actually stores a reference to -// the objects; the object offset is remebered instead and the packfile -// is read again everytime a recall operation is requested. This saves +// Seekable implements ReadRecaller for the io.ReadSeeker of a packfile. +// Remembering does not actually stores any reference to the remembered +// objects; the object offset is remebered instead and the packfile is +// read again everytime a recall operation is requested. This saves // memory buy can be very slow if the associated io.ReadSeeker is slow // (like a hard disk). -type SeekableReadRecaller struct { +type Seekable struct { io.ReadSeeker OffsetsByHash map[core.Hash]int64 } -// NewSeekableReadRecaller returns a new SeekableReadRecaller that reads -// form r. -func NewSeekableReadRecaller(r io.ReadSeeker) *SeekableReadRecaller { - return &SeekableReadRecaller{ +// NewSeekable returns a new Seekable that reads form r. +func NewSeekable(r io.ReadSeeker) *Seekable { + return &Seekable{ r, make(map[core.Hash]int64), } } // Read reads up to len(p) bytes into p. -func (r *SeekableReadRecaller) Read(p []byte) (int, error) { +func (r *Seekable) Read(p []byte) (int, error) { return r.ReadSeeker.Read(p) } // ReadByte reads a byte. -func (r *SeekableReadRecaller) ReadByte() (byte, error) { +func (r *Seekable) ReadByte() (byte, error) { var p [1]byte _, err := r.ReadSeeker.Read(p[:]) if err != nil { @@ -44,7 +43,7 @@ func (r *SeekableReadRecaller) ReadByte() (byte, error) { } // Offset returns the offset for the next Read or ReadByte. -func (r *SeekableReadRecaller) Offset() (int64, error) { +func (r *Seekable) Offset() (int64, error) { return r.Seek(0, os.SEEK_CUR) } @@ -52,7 +51,7 @@ func (r *SeekableReadRecaller) Offset() (int64, error) { // object itself. This implementation does not check for already stored // offsets, as it is too expensive to build this information from an // index every time a get operation is performed on the SeekableReadRecaller. -func (r *SeekableReadRecaller) Remember(o int64, obj core.Object) error { +func (r *Seekable) Remember(o int64, obj core.Object) error { h := obj.Hash() if _, ok := r.OffsetsByHash[h]; ok { return ErrDuplicatedObj.AddDetails("with hash %s", h) @@ -65,7 +64,7 @@ func (r *SeekableReadRecaller) Remember(o int64, obj core.Object) error { // RecallByHash returns the object for a given hash by looking for it again in // the io.ReadeSeerker. -func (r *SeekableReadRecaller) RecallByHash(h core.Hash) (core.Object, error) { +func (r *Seekable) RecallByHash(h core.Hash) (core.Object, error) { o, ok := r.OffsetsByHash[h] if !ok { return nil, ErrCannotRecall.AddDetails("hash not found: %s", h) @@ -76,7 +75,7 @@ func (r *SeekableReadRecaller) RecallByHash(h core.Hash) (core.Object, error) { // RecallByOffset returns the object for a given offset by looking for it again in // the io.ReadeSeerker. -func (r *SeekableReadRecaller) RecallByOffset(o int64) (obj core.Object, err error) { +func (r *Seekable) RecallByOffset(o int64) (obj core.Object, err error) { // remember current offset beforeJump, err := r.Offset() if err != nil { diff --git a/formats/packfile/stream_read_recaller.go b/formats/packfile/stream.go similarity index 65% rename from formats/packfile/stream_read_recaller.go rename to formats/packfile/stream.go index 318178ec3..a9e2a9562 100644 --- a/formats/packfile/stream_read_recaller.go +++ b/formats/packfile/stream.go @@ -6,20 +6,19 @@ import ( "gopkg.in/src-d/go-git.v3/core" ) -// StreamReadRecaller implements ReadRecaller from a packfile in a -// io.Reader. This implementation keeps all remembered objects -// referenced in maps for quick access. -type StreamReadRecaller struct { +// Stream implements ReadRecaller for the io.Reader of a packfile. This +// implementation keeps all remembered objects referenced in maps for +// quick access. +type Stream struct { io.Reader count int64 byOffset map[int64]core.Object byHash map[core.Hash]core.Object } -// NewStreamReadRecaller returns a new StreamReadRecaller that reads -// form r. -func NewStreamReadRecaller(r io.Reader) *StreamReadRecaller { - return &StreamReadRecaller{ +// NewStream returns a new Stream that reads form r. +func NewStream(r io.Reader) *Stream { + return &Stream{ Reader: r, count: 0, byHash: make(map[core.Hash]core.Object, 0), @@ -28,7 +27,7 @@ func NewStreamReadRecaller(r io.Reader) *StreamReadRecaller { } // Read reads up to len(p) bytes into p. -func (r *StreamReadRecaller) Read(p []byte) (n int, err error) { +func (r *Stream) Read(p []byte) (n int, err error) { n, err = r.Reader.Read(p) r.count += int64(n) @@ -36,7 +35,7 @@ func (r *StreamReadRecaller) Read(p []byte) (n int, err error) { } // ReadByte reads a byte. -func (r *StreamReadRecaller) ReadByte() (byte, error) { +func (r *Stream) ReadByte() (byte, error) { var p [1]byte _, err := r.Reader.Read(p[:]) r.count++ @@ -45,14 +44,14 @@ func (r *StreamReadRecaller) ReadByte() (byte, error) { } // Offset returns the number of bytes read. -func (r *StreamReadRecaller) Offset() (int64, error) { +func (r *Stream) Offset() (int64, error) { return r.count, nil } // Remember stores references to the passed object to be used later by // RecalByHash and RecallByOffset. It receives the object and the offset // of its object entry in the packfile. -func (r *StreamReadRecaller) Remember(o int64, obj core.Object) error { +func (r *Stream) Remember(o int64, obj core.Object) error { h := obj.Hash() if _, ok := r.byHash[h]; ok { return ErrDuplicatedObj.AddDetails("with hash %s", h) @@ -69,7 +68,7 @@ func (r *StreamReadRecaller) Remember(o int64, obj core.Object) error { // RecallByHash returns an object that has been previously Remember-ed by // its hash. -func (r *StreamReadRecaller) RecallByHash(h core.Hash) (core.Object, error) { +func (r *Stream) RecallByHash(h core.Hash) (core.Object, error) { obj, ok := r.byHash[h] if !ok { return nil, ErrCannotRecall.AddDetails("by hash %s", h) @@ -80,7 +79,7 @@ func (r *StreamReadRecaller) RecallByHash(h core.Hash) (core.Object, error) { // RecallByHash returns an object that has been previously Remember-ed by // the offset of its object entry in the packfile. -func (r *StreamReadRecaller) RecallByOffset(o int64) (core.Object, error) { +func (r *Stream) RecallByOffset(o int64) (core.Object, error) { obj, ok := r.byOffset[o] if !ok { return nil, ErrCannotRecall.AddDetails("no object found at offset %d", o) diff --git a/references_test.go b/references_test.go index 25b7491b2..7e003bda6 100644 --- a/references_test.go +++ b/references_test.go @@ -26,7 +26,7 @@ func (s *ReferencesSuite) SetUpSuite(c *C) { f, err := os.Open(fix.packfile) defer f.Close() c.Assert(err, IsNil) - r := packfile.NewSeekableReadRecaller(f) + r := packfile.NewSeekable(f) d := packfile.NewDecoder(r) err = d.Decode(s.repos[fix.url].Storage) c.Assert(err, IsNil) diff --git a/remote_test.go b/remote_test.go index ffcd6cb75..381609eaf 100644 --- a/remote_test.go +++ b/remote_test.go @@ -56,7 +56,7 @@ func (s *SuiteRemote) TestFetchDefaultBranch(c *C) { reader, err := r.FetchDefaultBranch() c.Assert(err, IsNil) - packfileReader := packfile.NewStreamReadRecaller(reader) + packfileReader := packfile.NewStream(reader) d := packfile.NewDecoder(packfileReader) sto := memory.NewObjectStorage() diff --git a/repository.go b/repository.go index 3ecf8eef8..93eb25bc7 100644 --- a/repository.go +++ b/repository.go @@ -100,7 +100,7 @@ func (r *Repository) Pull(remoteName, branch string) (err error) { return err } defer checkClose(reader, &err) - stream := packfile.NewStreamReadRecaller(reader) + stream := packfile.NewStream(reader) d := packfile.NewDecoder(stream) err = d.Decode(r.Storage) diff --git a/storage/fs/internal/index/index.go b/storage/fs/internal/index/index.go index fa7a97878..8e041bd7b 100644 --- a/storage/fs/internal/index/index.go +++ b/storage/fs/internal/index/index.go @@ -37,7 +37,7 @@ func NewFromIdx(r io.Reader) (Index, error) { func NewFromPackfile(rs io.ReadSeeker) (Index, error) { index := make(Index) - r := packfile.NewSeekableReadRecaller(rs) + r := packfile.NewSeekable(rs) p := packfile.NewParser(r) count, err := p.ReadHeader() diff --git a/storage/fs/store.go b/storage/fs/store.go index 35532e560..f1b7f824d 100644 --- a/storage/fs/store.go +++ b/storage/fs/store.go @@ -125,7 +125,7 @@ func (s *ObjectStorage) Get(h core.Hash) (core.Object, error) { return nil, err } - r := packfile.NewSeekableReadRecaller(f) + r := packfile.NewSeekable(f) r.OffsetsByHash = map[core.Hash]int64(s.index) p := packfile.NewParser(r) diff --git a/storage/fs/store_test.go b/storage/fs/store_test.go index 177ae550f..271d4d7cc 100644 --- a/storage/fs/store_test.go +++ b/storage/fs/store_test.go @@ -119,7 +119,7 @@ func memStorageFromGitDir(path string) (*memory.ObjectStorage, error) { } sto := memory.NewObjectStorage() - r := packfile.NewStreamReadRecaller(f) + r := packfile.NewStream(f) d := packfile.NewDecoder(r) err = d.Decode(sto) if err != nil { @@ -256,7 +256,7 @@ func memStorageFromDirPath(path string) (*memory.ObjectStorage, error) { return nil, err } - r := packfile.NewStreamReadRecaller(f) + r := packfile.NewStream(f) d := packfile.NewDecoder(r) err = d.Decode(sto) if err != nil { From a77609213549e602b9fc142952903174040e7729 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Thu, 30 Jun 2016 10:25:47 +0200 Subject: [PATCH 121/143] update comments to type changes --- formats/packfile/read_recaller_impl_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/formats/packfile/read_recaller_impl_test.go b/formats/packfile/read_recaller_impl_test.go index 470a1a83a..ce0078397 100644 --- a/formats/packfile/read_recaller_impl_test.go +++ b/formats/packfile/read_recaller_impl_test.go @@ -224,7 +224,7 @@ func (s *ReadRecallerImplSuite) TestRecallByOffsetErrors(c *C) { newFn implFn }{ {id: "stream", newFn: newStream}, - // seekalbeReadRecaller allways recall every object in the packfile + // seekalbe allways recall every object in the packfile } { com := Commentf("implementation %s", impl.id) sr := impl.newFn([]byte{}) From 43a3fce531ede4c12e563b1c7258d2b5bdfcfa50 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Thu, 30 Jun 2016 12:43:06 +0200 Subject: [PATCH 122/143] packfile.Parser test (WIP) --- formats/packfile/parser.go | 32 ++--- formats/packfile/parser_test.go | 207 ++++++++++++++++++++++++++++++++ 2 files changed, 223 insertions(+), 16 deletions(-) create mode 100644 formats/packfile/parser_test.go diff --git a/formats/packfile/parser.go b/formats/packfile/parser.go index 99b779005..9b8982f2a 100644 --- a/formats/packfile/parser.go +++ b/formats/packfile/parser.go @@ -47,22 +47,6 @@ func (p Parser) readInt32() (uint32, error) { return v, nil } -// ReadVersion reads and returns the version field of a packfile. -func (p *Parser) ReadVersion() (uint32, error) { - return p.readInt32() -} - -// ReadCount reads and returns the count of objects field of a packfile. -func (p *Parser) ReadCount() (uint32, error) { - return p.readInt32() -} - -// IsSupportedVersion returns whether version v is supported by the parser. -// The current supported version is VersionSupported, defined above. -func (p *Parser) IsSupportedVersion(v uint32) bool { - return v == VersionSupported -} - // ReadSignature reads an returns the signature field in the packfile. func (p *Parser) ReadSignature() ([]byte, error) { var sig = make([]byte, 4) @@ -78,6 +62,22 @@ func (p Parser) IsValidSignature(sig []byte) bool { return bytes.Equal(sig, []byte{'P', 'A', 'C', 'K'}) } +// ReadVersion reads and returns the version field of a packfile. +func (p *Parser) ReadVersion() (uint32, error) { + return p.readInt32() +} + +// IsSupportedVersion returns whether version v is supported by the parser. +// The current supported version is VersionSupported, defined above. +func (p *Parser) IsSupportedVersion(v uint32) bool { + return v == VersionSupported +} + +// ReadCount reads and returns the count of objects field of a packfile. +func (p *Parser) ReadCount() (uint32, error) { + return p.readInt32() +} + // ReadHeader reads the whole packfile header (signature, version and // object count). It returns the object count and performs checks on the // validity of the signature and the version fields. diff --git a/formats/packfile/parser_test.go b/formats/packfile/parser_test.go new file mode 100644 index 000000000..7ab8d4e0f --- /dev/null +++ b/formats/packfile/parser_test.go @@ -0,0 +1,207 @@ +package packfile + +import ( + "bytes" + "io" + "io/ioutil" + "os" + + . "gopkg.in/check.v1" + "gopkg.in/src-d/go-git.v3/core" +) + +const ( + sigOffset = 0 + verOffset = 4 + countOffset = 8 +) + +type ParserSuite struct { + fixtures map[string]*fix +} + +type fix struct { + path string + parser *Parser + seekable io.Seeker +} + +func newFix(path string) (*fix, error) { + fix := new(fix) + fix.path = path + + f, err := os.Open(path) + if err != nil { + return nil, err + } + + data, err := ioutil.ReadAll(f) + if err != nil { + return nil, err + } + + if err = f.Close(); err != nil { + return nil, err + } + + seekable := NewSeekable(bytes.NewReader(data)) + fix.seekable = seekable + fix.parser = NewParser(seekable) + + return fix, nil +} + +func (f *fix) seek(o int64) error { + _, err := f.seekable.Seek(o, os.SEEK_SET) + return err +} + +var _ = Suite(&ParserSuite{}) + +func (s *ParserSuite) SetUpSuite(c *C) { + s.fixtures = make(map[string]*fix) + for _, fixData := range []struct { + id string + path string + }{ + {"ofs-deltas", "fixtures/alcortesm-binary-relations.pack"}, + {"ref-deltas", "fixtures/git-fixture.ref-delta"}, + } { + fix, err := newFix(fixData.path) + c.Assert(err, IsNil, + Commentf("setting up fixture id %s: %s", fixData.id, err)) + + _, ok := s.fixtures[fixData.id] + c.Assert(ok, Equals, false, + Commentf("duplicated fixture id: %s", fixData.id)) + + s.fixtures[fixData.id] = fix + } +} + +func (s *ParserSuite) TestSignature(c *C) { + for id, fix := range s.fixtures { + com := Commentf("fixture id = %s", id) + err := fix.seek(sigOffset) + c.Assert(err, IsNil, com) + p := fix.parser + + sig, err := p.ReadSignature() + c.Assert(err, IsNil, com) + c.Assert(p.IsValidSignature(sig), Equals, true, com) + } +} + +func (s *ParserSuite) TestVersion(c *C) { + for i, test := range [...]struct { + fixId string + expected uint32 + }{ + { + fixId: "ofs-deltas", + expected: uint32(2), + }, { + fixId: "ref-deltas", + expected: uint32(2), + }, + } { + com := Commentf("test %d) fixture id = %s", i, test.fixId) + fix, ok := s.fixtures[test.fixId] + c.Assert(ok, Equals, true, com) + + err := fix.seek(verOffset) + c.Assert(err, IsNil, com) + p := fix.parser + + v, err := p.ReadVersion() + c.Assert(err, IsNil, com) + c.Assert(v, Equals, test.expected, com) + c.Assert(p.IsSupportedVersion(v), Equals, true, com) + } +} + +func (s *ParserSuite) TestCount(c *C) { + for i, test := range [...]struct { + fixId string + expected uint32 + }{ + { + fixId: "ofs-deltas", + expected: uint32(0x50), + }, { + fixId: "ref-deltas", + expected: uint32(0x1c), + }, + } { + com := Commentf("test %d) fixture id = %s", i, test.fixId) + fix, ok := s.fixtures[test.fixId] + c.Assert(ok, Equals, true, com) + + err := fix.seek(countOffset) + c.Assert(err, IsNil, com) + p := fix.parser + + count, err := p.ReadCount() + c.Assert(err, IsNil, com) + c.Assert(count, Equals, test.expected, com) + } +} + +func (s *ParserSuite) TestReadObjectTypeAndLength(c *C) { + for i, test := range [...]struct { + fixId string + offset int64 + expType core.ObjectType + expLength int64 + }{ + { + fixId: "ofs-deltas", + offset: 12, + expType: core.CommitObject, + expLength: 342, + }, { + fixId: "ofs-deltas", + offset: 1212, + expType: core.OFSDeltaObject, + expLength: 104, + }, { + fixId: "ofs-deltas", + offset: 3193, + expType: core.TreeObject, + expLength: 226, + }, { + fixId: "ofs-deltas", + offset: 3639, + expType: core.BlobObject, + expLength: 90, + }, { + fixId: "ofs-deltas", + offset: 4504, + expType: core.BlobObject, + expLength: 7107, + }, { + fixId: "ref-deltas", + offset: 84849, + expType: core.REFDeltaObject, + expLength: 6, + }, { + fixId: "ref-deltas", + offset: 85070, + expType: core.REFDeltaObject, + expLength: 8, + }, + } { + com := Commentf("test %d) fixture id = %s", i, test.fixId) + fix, ok := s.fixtures[test.fixId] + c.Assert(ok, Equals, true, com) + + err := fix.seek(test.offset) + c.Assert(err, IsNil, com) + p := fix.parser + + typ, length, err := p.ReadObjectTypeAndLength() + c.Assert(err, IsNil, com) + c.Assert(typ, Equals, test.expType, com) + c.Assert(length, Equals, test.expLength, com) + } +} From 64b4b60616c4e7eb896607266282f0c71e1c0927 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Thu, 30 Jun 2016 15:41:12 +0200 Subject: [PATCH 123/143] packfile.Parser tests and add ForgetAll() to packfile.ReadRecaller --- formats/packfile/parser.go | 109 ++++++++-------- formats/packfile/parser_test.go | 205 ++++++++++++++++++++++++++++++ formats/packfile/read_recaller.go | 2 + formats/packfile/seekable.go | 5 + formats/packfile/stream.go | 6 + 5 files changed, 277 insertions(+), 50 deletions(-) diff --git a/formats/packfile/parser.go b/formats/packfile/parser.go index 9b8982f2a..d3463bd76 100644 --- a/formats/packfile/parser.go +++ b/formats/packfile/parser.go @@ -172,53 +172,6 @@ func moreBytesInLength(c byte) bool { return c&maskContinue > 0 } -// ReadNegativeOffset reads and returns an offset from a OFS DELTA -// object entry in a packfile. OFS DELTA offsets are specified in Git -// VLQ special format: -// -// Ordinary VLQ has some redundancies, example: the number 358 can be -// encoded as the 2-octet VLQ 0x8166 or the 3-octet VLQ 0x808166 or the -// 4-octet VLQ 0x80808166 and so forth. -// -// To avoid these redundancies, the VLQ format used in Git removes this -// prepending redundancy and extends the representable range of shorter -// VLQs by adding an offset to VLQs of 2 or more octets in such a way -// that the lowest possible value for such an (N+1)-octet VLQ becomes -// exactly one more than the maximum possible value for an N-octet VLQ. -// In particular, since a 1-octet VLQ can store a maximum value of 127, -// the minimum 2-octet VLQ (0x8000) is assigned the value 128 instead of -// 0. Conversely, the maximum value of such a 2-octet VLQ (0xff7f) is -// 16511 instead of just 16383. Similarly, the minimum 3-octet VLQ -// (0x808000) has a value of 16512 instead of zero, which means -// that the maximum 3-octet VLQ (0xffff7f) is 2113663 instead of -// just 2097151. And so forth. -// -// This is how the offset is saved in C: -// -// dheader[pos] = ofs & 127; -// while (ofs >>= 7) -// dheader[--pos] = 128 | (--ofs & 127); -// -func (p Parser) ReadNegativeOffset() (int64, error) { - var c byte - var err error - - if c, err = p.ReadByte(); err != nil { - return 0, err - } - - var offset = int64(c & maskLength) - for moreBytesInLength(c) { - offset++ - if c, err = p.ReadByte(); err != nil { - return 0, err - } - offset = (offset << lengthBits) + int64(c&maskLength) - } - - return -offset, nil -} - // ReadObject reads and returns a git object from an object entry in the packfile. // Non-deltified and deltified objects are supported. func (p Parser) ReadObject() (core.Object, error) { @@ -287,9 +240,8 @@ func (p Parser) inflate(w io.Writer) (err error) { // ReadREFDeltaObjectContent reads and returns an object specified by a // REF-Delta entry in the packfile, form the hash onwards. func (p Parser) ReadREFDeltaObjectContent() ([]byte, core.ObjectType, error) { - var refHash core.Hash - var err error - if _, err = io.ReadFull(p, refHash[:]); err != nil { + refHash, err := p.ReadHash() + if err != nil { return nil, core.ObjectType(0), err } @@ -306,6 +258,16 @@ func (p Parser) ReadREFDeltaObjectContent() ([]byte, core.ObjectType, error) { return content, refObj.Type(), nil } +// ReadHash reads a hash. +func (p Parser) ReadHash() (core.Hash, error) { + var h core.Hash + if _, err := io.ReadFull(p, h[:]); err != nil { + return core.ZeroHash, err + } + + return h, nil +} + // ReadSolveDelta reads and returns the base patched with the contents // of a zlib compressed diff data in the delta portion of an object // entry in the packfile. @@ -342,3 +304,50 @@ func (p Parser) ReadOFSDeltaObjectContent(start int64) ( return content, ref.Type(), nil } + +// ReadNegativeOffset reads and returns an offset from a OFS DELTA +// object entry in a packfile. OFS DELTA offsets are specified in Git +// VLQ special format: +// +// Ordinary VLQ has some redundancies, example: the number 358 can be +// encoded as the 2-octet VLQ 0x8166 or the 3-octet VLQ 0x808166 or the +// 4-octet VLQ 0x80808166 and so forth. +// +// To avoid these redundancies, the VLQ format used in Git removes this +// prepending redundancy and extends the representable range of shorter +// VLQs by adding an offset to VLQs of 2 or more octets in such a way +// that the lowest possible value for such an (N+1)-octet VLQ becomes +// exactly one more than the maximum possible value for an N-octet VLQ. +// In particular, since a 1-octet VLQ can store a maximum value of 127, +// the minimum 2-octet VLQ (0x8000) is assigned the value 128 instead of +// 0. Conversely, the maximum value of such a 2-octet VLQ (0xff7f) is +// 16511 instead of just 16383. Similarly, the minimum 3-octet VLQ +// (0x808000) has a value of 16512 instead of zero, which means +// that the maximum 3-octet VLQ (0xffff7f) is 2113663 instead of +// just 2097151. And so forth. +// +// This is how the offset is saved in C: +// +// dheader[pos] = ofs & 127; +// while (ofs >>= 7) +// dheader[--pos] = 128 | (--ofs & 127); +// +func (p Parser) ReadNegativeOffset() (int64, error) { + var c byte + var err error + + if c, err = p.ReadByte(); err != nil { + return 0, err + } + + var offset = int64(c & maskLength) + for moreBytesInLength(c) { + offset++ + if c, err = p.ReadByte(); err != nil { + return 0, err + } + offset = (offset << lengthBits) + int64(c&maskLength) + } + + return -offset, nil +} diff --git a/formats/packfile/parser_test.go b/formats/packfile/parser_test.go index 7ab8d4e0f..acd02dc95 100644 --- a/formats/packfile/parser_test.go +++ b/formats/packfile/parser_test.go @@ -8,6 +8,7 @@ import ( . "gopkg.in/check.v1" "gopkg.in/src-d/go-git.v3/core" + "gopkg.in/src-d/go-git.v3/storage/memory" ) const ( @@ -205,3 +206,207 @@ func (s *ParserSuite) TestReadObjectTypeAndLength(c *C) { c.Assert(length, Equals, test.expLength, com) } } + +func (s *ParserSuite) TestReadNonDeltaObjectContent(c *C) { + for i, test := range [...]struct { + fixId string + offset int64 + expected []byte + }{ + { + fixId: "ofs-deltas", + offset: 12, + expected: []byte("tree 87c87d16e815a43e4e574dd8edd72c5450ac3a8e\nparent a87d72684d1cf68099ce6e9f68689e25e645a14c\nauthor Gorka Guardiola 1450265632 +0100\ncommitter Gorka Guardiola 1450265632 +0100\n\nChanged example to use dot.\nI did not remove the original files outside of the\ntex, I leave that to alcortes.\n"), + }, { + fixId: "ofs-deltas", + offset: 1610, + expected: []byte("tree 4b4f0d9a07109ef0b8a3051138cc20cdb47fa513\nparent b373f85fa2594d7dcd9989f4a5858a81647fb8ea\nauthor Alberto Cortés 1448017995 +0100\ncommitter Alberto Cortés 1448018112 +0100\n\nMove generated images to it own dir (img/)\n\nFixes #1.\n"), + }, { + fixId: "ofs-deltas", + offset: 10566, + expected: []byte("40000 map-slice\x00\x00\xce\xfb\x8ew\xf7\xa8\xc6\x1b\x99\xdd$\x91\xffH\xa3\xb0\xb1fy40000 simple-arrays\x00\x9a7\x81\xb7\xfd\x9d(Q\xe2\xa4H\x8c\x03^Ù¬\x90Z\xecy"), + }, + } { + com := Commentf("test %d) fixture id = %s", i, test.fixId) + fix, ok := s.fixtures[test.fixId] + c.Assert(ok, Equals, true, com) + + err := fix.seek(test.offset) + c.Assert(err, IsNil, com) + p := fix.parser + + _, _, err = p.ReadObjectTypeAndLength() + c.Assert(err, IsNil, com) + + cont, err := p.ReadNonDeltaObjectContent() + c.Assert(err, IsNil, com) + c.Assert(cont, DeepEquals, test.expected, com) + } +} + +func (s *ParserSuite) TestReadOFSDeltaObjectContent(c *C) { + for i, test := range [...]struct { + fixId string + offset int64 + expOffset int64 + expType core.ObjectType + expContent []byte + }{ + { + fixId: "ofs-deltas", + offset: 1212, + expOffset: -212, + expType: core.CommitObject, + expContent: []byte("tree c4573589ce78ac63769c20742b9a970f6e274a38\nparent 4571a24948494ebe1cb3dc18ca5a9286e79705ae\nauthor Alberto Cortés 1448139640 +0100\ncommitter Alberto Cortés 1448139640 +0100\n\nUpdate reference to binrels module\n"), + }, { + fixId: "ofs-deltas", + offset: 3514, + expOffset: -102, + expType: core.TreeObject, + expContent: []byte("100644 .gitignore\x00\u007fA\x90[Mw\xabJ\x9a-3O\xcd\x0f\xb5\xdbn\x8e!\x83100644 .gitmodules\x00\xd4`\xa8>\x15\xcfd\x05\x81B7_\xc4\v\x04\xa7\xa9A\x85\n100644 Makefile\x00-Ò­\x8c\x14\xdef\x12\xed\x15\x816y\xa6UK\xad\x993\v100644 binary-relations.tex\x00\x802\x05@\x11'^ \xf5<\xf7\xfd\x81%3\xd1o\xa9_$40000 graphs\x00\xdehu\x16\xc6\x0e\\H\x8e\xe9\xa1JIXE\xbaÚ½g\xc540000 imgs-gen\x00\xeb\"\xddhzg\xa3\x1f\xc8j\xc5\xfcè±¢\xe9\x96\xce\xce^40000 src\x00\x895\x11t\xff\x86\xa7\xea\xa6\xc0v%\x11E\x10f,Ý’\x1a"), + }, { + fixId: "ofs-deltas", + offset: 9806, + expOffset: -6613, + expType: core.TreeObject, + expContent: []byte("100644 .gitignore\x00\u007fA\x90[Mw\xabJ\x9a-3O\xcd\x0f\xb5\xdbn\x8e!\x83100644 .gitmodules\x00\xd4`\xa8>\x15\xcfd\x05\x81B7_\xc4\v\x04\xa7\xa9A\x85\n100644 Makefile\x00-Ò­\x8c\x14\xdef\x12\xed\x15\x816y\xa6UK\xad\x993\v100644 binary-relations.tex\x00I\x13~\xb8Ú©EU\x9f\x99#\xc4E.\x9d>\uef1e\xad40000 graphs\x00\xb9\x00\xf34\xde\xff\xce@+\xbd\xf8 9\xb8=\xc1\xb9\x00\x84]40000 imgs-gen\x00\xeb\"\xddhzg\xa3\x1f\xc8j\xc5\xfcè±¢\xe9\x96\xce\xce^40000 src\x00\x895\x11t\xff\x86\xa7\xea\xa6\xc0v%\x11E\x10f,Ý’\x1a"), + }, + } { + com := Commentf("test %d) fixture id = %s", i, test.fixId) + fix, ok := s.fixtures[test.fixId] + c.Assert(ok, Equals, true, com) + + err := fix.seek(test.offset) + c.Assert(err, IsNil, com) + p := fix.parser + + _, _, err = p.ReadObjectTypeAndLength() + c.Assert(err, IsNil, com) + + beforeJumpSize, err := p.Offset() + c.Assert(err, IsNil, com) + + jump, err := p.ReadNegativeOffset() + c.Assert(err, IsNil, com) + c.Assert(jump, Equals, test.expOffset, com) + + err = fix.seek(beforeJumpSize) + c.Assert(err, IsNil, com) + + cont, typ, err := p.ReadOFSDeltaObjectContent(test.offset) + c.Assert(err, IsNil, com) + c.Assert(typ, Equals, test.expType, com) + c.Assert(cont, DeepEquals, test.expContent, com) + } +} + +func (s *ParserSuite) TestReadREFDeltaObjectContent(c *C) { + for i, test := range [...]struct { + fixId string + offset int64 + deps map[int64]core.Object + expHash core.Hash + expType core.ObjectType + expContent []byte + }{ + { + fixId: "ref-deltas", + offset: 84849, + deps: map[int64]core.Object{ + 83607: newObject(core.TreeObject, []byte("100644 .gitignore\x002\x85\x8a\xad<8>\xd1\xff\n\x0f\x9b\xdf#\x1dT\xa0\f\x9e\x88100644 CHANGELOG\x00\xd3\xffS\xe0VJ\x9f\x87\xd8\xe8Kn(\xe5\x06\x0eQp\b\xaa100644 LICENSE\x00\xc1\x92\xbdj$\xea\x1a\xb0\x1dxhnA|\x8b\xdc|=\x19\u007f100644 binary.jpg\x00\xd5\xc0\xf4\xab\x81\x18\x97\xca\xdf\x03\xae\xc3X\xae`\xd2\x1f\x91\xc5\r40000 go\x00\xa3\x97q\xa7e\x1f\x97\xfa\xf5\xc7.\b\"M\x85\u007f\xc3Q3\xdb40000 json\x00Z\x87~j\x90j'C\xadnEÙœ\x17\x93d*\xaf\x8e\xda40000 php\x00Xj\xf5gл^w\x1eI\xbd\xd9CO^\x0f\xb7m%\xfa40000 vendor\x00\xcfJ\xa3\xb3\x89t\xfb}\x81\xf3g\xc0\x83\x0f}x\xd6Z\xb8k")), + }, + expHash: core.NewHash("a8d315b2b1c615d43042c3a62402b8a54288cf5c"), + expType: core.TreeObject, + expContent: []byte("100644 .gitignore\x002\x85\x8a\xad<8>\xd1\xff\n\x0f\x9b\xdf#\x1dT\xa0\f\x9e\x88100644 CHANGELOG\x00\xd3\xffS\xe0VJ\x9f\x87\xd8\xe8Kn(\xe5\x06\x0eQp\b\xaa100644 LICENSE\x00\xc1\x92\xbdj$\xea\x1a\xb0\x1dxhnA|\x8b\xdc|=\x19\u007f100644 binary.jpg\x00\xd5\xc0\xf4\xab\x81\x18\x97\xca\xdf\x03\xae\xc3X\xae`\xd2\x1f\x91\xc5\r40000 go\x00\xa3\x97q\xa7e\x1f\x97\xfa\xf5\xc7.\b\"M\x85\u007f\xc3Q3\xdb40000 json\x00Z\x87~j\x90j'C\xadnEÙœ\x17\x93d*\xaf\x8e\xda40000 php\x00Xj\xf5gл^w\x1eI\xbd\xd9CO^\x0f\xb7m%\xfa"), + }, { + fixId: "ref-deltas", + offset: 85070, + deps: map[int64]core.Object{ + 84922: newObject(core.TreeObject, []byte("100644 .gitignore\x002\x85\x8a\xad<8>\xd1\xff\n\x0f\x9b\xdf#\x1dT\xa0\f\x9e\x88100644 CHANGELOG\x00\xd3\xffS\xe0VJ\x9f\x87\xd8\xe8Kn(\xe5\x06\x0eQp\b\xaa100644 LICENSE\x00\xc1\x92\xbdj$\xea\x1a\xb0\x1dxhnA|\x8b\xdc|=\x19\u007f100644 binary.jpg\x00\xd5\xc0\xf4\xab\x81\x18\x97\xca\xdf\x03\xae\xc3X\xae`\xd2\x1f\x91\xc5\r")), + 84849: newObject(core.TreeObject, []byte("100644 .gitignore\x002\x85\x8a\xad<8>\xd1\xff\n\x0f\x9b\xdf#\x1dT\xa0\f\x9e\x88100644 CHANGELOG\x00\xd3\xffS\xe0VJ\x9f\x87\xd8\xe8Kn(\xe5\x06\x0eQp\b\xaa100644 LICENSE\x00\xc1\x92\xbdj$\xea\x1a\xb0\x1dxhnA|\x8b\xdc|=\x19\u007f100644 binary.jpg\x00\xd5\xc0\xf4\xab\x81\x18\x97\xca\xdf\x03\xae\xc3X\xae`\xd2\x1f\x91\xc5\r40000 go\x00\xa3\x97q\xa7e\x1f\x97\xfa\xf5\xc7.\b\"M\x85\u007f\xc3Q3\xdb40000 json\x00Z\x87~j\x90j'C\xadnEÙœ\x17\x93d*\xaf\x8e\xda40000 php\x00Xj\xf5gл^w\x1eI\xbd\xd9CO^\x0f\xb7m%\xfa")), + 83607: newObject(core.TreeObject, []byte("100644 .gitignore\x002\x85\x8a\xad<8>\xd1\xff\n\x0f\x9b\xdf#\x1dT\xa0\f\x9e\x88100644 CHANGELOG\x00\xd3\xffS\xe0VJ\x9f\x87\xd8\xe8Kn(\xe5\x06\x0eQp\b\xaa100644 LICENSE\x00\xc1\x92\xbdj$\xea\x1a\xb0\x1dxhnA|\x8b\xdc|=\x19\u007f100644 binary.jpg\x00\xd5\xc0\xf4\xab\x81\x18\x97\xca\xdf\x03\xae\xc3X\xae`\xd2\x1f\x91\xc5\r40000 go\x00\xa3\x97q\xa7e\x1f\x97\xfa\xf5\xc7.\b\"M\x85\u007f\xc3Q3\xdb40000 json\x00Z\x87~j\x90j'C\xadnEÙœ\x17\x93d*\xaf\x8e\xda40000 php\x00Xj\xf5gл^w\x1eI\xbd\xd9CO^\x0f\xb7m%\xfa40000 vendor\x00\xcfJ\xa3\xb3\x89t\xfb}\x81\xf3g\xc0\x83\x0f}x\xd6Z\xb8k")), + }, + expHash: core.NewHash("eba74343e2f15d62adedfd8c883ee0262b5c8021"), + expType: core.TreeObject, + expContent: []byte("100644 .gitignore\x002\x85\x8a\xad<8>\xd1\xff\n\x0f\x9b\xdf#\x1dT\xa0\f\x9e\x88100644 LICENSE\x00\xc1\x92\xbdj$\xea\x1a\xb0\x1dxhnA|\x8b\xdc|=\x19\u007f100644 binary.jpg\x00\xd5\xc0\xf4\xab\x81\x18\x97\xca\xdf\x03\xae\xc3X\xae`\xd2\x1f\x91\xc5\r"), + }, + } { + com := Commentf("test %d) fixture id = %s", i, test.fixId) + fix, ok := s.fixtures[test.fixId] + c.Assert(ok, Equals, true, com) + + err := fix.seek(test.offset) + c.Assert(err, IsNil, com) + p := fix.parser + for k, v := range test.deps { + err := p.Remember(k, v) + c.Assert(err, IsNil, com) + } + + _, _, err = p.ReadObjectTypeAndLength() + c.Assert(err, IsNil, com) + + beforeHash, err := p.Offset() + c.Assert(err, IsNil, com) + + hash, err := p.ReadHash() + c.Assert(err, IsNil, com) + c.Assert(hash, Equals, test.expHash, com) + + err = fix.seek(beforeHash) + c.Assert(err, IsNil, com) + + cont, typ, err := p.ReadREFDeltaObjectContent() + c.Assert(err, IsNil, com) + c.Assert(typ, Equals, test.expType, com) + c.Assert(cont, DeepEquals, test.expContent, com) + + p.ForgetAll() + } +} + +func newObject(t core.ObjectType, c []byte) *memory.Object { + return memory.NewObject(t, int64(len(c)), c) +} + +func (s *ParserSuite) TestReadHeaderBadSignatureError(c *C) { + data := []byte{ + 0x50, 0x42, 0x43, 0x4b, 0x00, 0x00, 0x00, 0x02, + 0x00, 0x00, 0x00, 0x50, + } + p := NewParser(NewSeekable(bytes.NewReader(data))) + + _, err := p.ReadHeader() + c.Assert(err, ErrorMatches, ErrBadSignature.Error()) +} + +func (s *ParserSuite) TestReadHeaderEmptyPackfileError(c *C) { + data := []byte{} + p := NewParser(NewSeekable(bytes.NewReader(data))) + + _, err := p.ReadHeader() + c.Assert(err, ErrorMatches, ErrEmptyPackfile.Error()) +} + +func (s *ParserSuite) TestReadHeaderUnsupportedVersionError(c *C) { + data := []byte{ + 0x50, 0x41, 0x43, 0x4b, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x50, + } + p := NewParser(NewSeekable(bytes.NewReader(data))) + + _, err := p.ReadHeader() + c.Assert(err, ErrorMatches, ErrUnsupportedVersion.Error()+".*") +} + +func (s *ParserSuite) TestReadHeader(c *C) { + data := []byte{ + 0x50, 0x41, 0x43, 0x4b, 0x00, 0x00, 0x00, 0x02, + 0x00, 0x00, 0x00, 0x50, + } + p := NewParser(NewSeekable(bytes.NewReader(data))) + + count, err := p.ReadHeader() + c.Assert(err, IsNil) + c.Assert(count, Equals, uint32(0x50)) +} diff --git a/formats/packfile/read_recaller.go b/formats/packfile/read_recaller.go index 7c35c28bf..506a2ba6c 100644 --- a/formats/packfile/read_recaller.go +++ b/formats/packfile/read_recaller.go @@ -28,6 +28,8 @@ type ReadRecaller interface { // Remember ask the ReadRecaller to remember the offset and hash for // an object, so you can later call RecallByOffset and RecallByHash. Remember(int64, core.Object) error + // ForgetAll forgets all previously remembered objects. + ForgetAll() // RecallByOffset returns the previously processed object found at a // given offset. RecallByOffset(int64) (core.Object, error) diff --git a/formats/packfile/seekable.go b/formats/packfile/seekable.go index 59eccda2e..4b16b6a37 100644 --- a/formats/packfile/seekable.go +++ b/formats/packfile/seekable.go @@ -62,6 +62,11 @@ func (r *Seekable) Remember(o int64, obj core.Object) error { return nil } +// ForgetAll forgets all previously remembered objects. +func (r *Seekable) ForgetAll() { + r.OffsetsByHash = make(map[core.Hash]int64) +} + // RecallByHash returns the object for a given hash by looking for it again in // the io.ReadeSeerker. func (r *Seekable) RecallByHash(h core.Hash) (core.Object, error) { diff --git a/formats/packfile/stream.go b/formats/packfile/stream.go index a9e2a9562..c8cc447ac 100644 --- a/formats/packfile/stream.go +++ b/formats/packfile/stream.go @@ -66,6 +66,12 @@ func (r *Stream) Remember(o int64, obj core.Object) error { return nil } +// ForgetAll forgets all previously remembered objects. +func (r *Stream) ForgetAll() { + r.byHash = make(map[core.Hash]core.Object) + r.byOffset = make(map[int64]core.Object) +} + // RecallByHash returns an object that has been previously Remember-ed by // its hash. func (r *Stream) RecallByHash(h core.Hash) (core.Object, error) { From 5fafd41ba6a3b8603e641095df40c7e5899de415 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Thu, 30 Jun 2016 15:56:06 +0200 Subject: [PATCH 124/143] add test for packfile.ReadRecaller.ForgetAll() --- formats/packfile/read_recaller_impl_test.go | 39 +++++++++++++++++++-- 1 file changed, 36 insertions(+), 3 deletions(-) diff --git a/formats/packfile/read_recaller_impl_test.go b/formats/packfile/read_recaller_impl_test.go index ce0078397..8008a86a2 100644 --- a/formats/packfile/read_recaller_impl_test.go +++ b/formats/packfile/read_recaller_impl_test.go @@ -245,9 +245,9 @@ func rememberSomeObjects(sr ReadRecaller) error { off int64 obj core.Object }{ - {off: 0, obj: newObj(core.CommitObject, []byte{'a'})}, - {off: 10, obj: newObj(core.CommitObject, []byte{'b'})}, - {off: 20, obj: newObj(core.CommitObject, []byte{'c'})}, + {off: 0, obj: newObj(core.CommitObject, []byte{'a'})}, // 93114cce67ec23976d15199514399203f69cc676 + {off: 10, obj: newObj(core.CommitObject, []byte{'b'})}, // 2bb767097e479f668f0ebdabe88df11337bd8f19 + {off: 20, obj: newObj(core.CommitObject, []byte{'c'})}, // 2f8096005677370e6446541a50e074299d43d468 } { err := sr.Remember(init.off, init.obj) if err != nil { @@ -257,3 +257,36 @@ func rememberSomeObjects(sr ReadRecaller) error { return nil } + +func (s *ReadRecallerImplSuite) TestForgetAll(c *C) { + for _, impl := range []struct { + id string + newFn implFn + }{ + {id: "stream", newFn: newStream}, + {id: "seekable", newFn: newSeekable}, + } { + com := Commentf("implementation %s", impl.id) + sr := impl.newFn([]byte{}) + + err := rememberSomeObjects(sr) + c.Assert(err, IsNil) + + sr.ForgetAll() + + if impl.id != "seekable" { // for efficiency, seekable always finds objects by offset + _, err = sr.RecallByOffset(0) + c.Assert(err, ErrorMatches, ErrCannotRecall.Error()+".*", com) + _, err = sr.RecallByOffset(10) + c.Assert(err, ErrorMatches, ErrCannotRecall.Error()+".*", com) + _, err = sr.RecallByOffset(20) + c.Assert(err, ErrorMatches, ErrCannotRecall.Error()+".*", com) + } + _, err = sr.RecallByHash(core.NewHash("93114cce67ec23976d15199514399203f69cc676")) + c.Assert(err, ErrorMatches, ErrCannotRecall.Error()+".*", com) + _, err = sr.RecallByHash(core.NewHash("2bb767097e479f668f0ebdabe88df11337bd8f19")) + c.Assert(err, ErrorMatches, ErrCannotRecall.Error()+".*", com) + _, err = sr.RecallByHash(core.NewHash("2f8096005677370e6446541a50e074299d43d468")) + c.Assert(err, ErrorMatches, ErrCannotRecall.Error()+".*", com) + } +} From 4a73a24033fcfac519cd0d079d642f63708db87e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Thu, 30 Jun 2016 15:58:38 +0200 Subject: [PATCH 125/143] clarify seekable being able to recallByOffset forgetted objects --- formats/packfile/seekable.go | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/formats/packfile/seekable.go b/formats/packfile/seekable.go index 4b16b6a37..16fbfdbb6 100644 --- a/formats/packfile/seekable.go +++ b/formats/packfile/seekable.go @@ -62,7 +62,9 @@ func (r *Seekable) Remember(o int64, obj core.Object) error { return nil } -// ForgetAll forgets all previously remembered objects. +// ForgetAll forgets all previously remembered objects. For efficiency +// reasons RecallByOffset always find objects, even if they have been +// forgetted or were never remembered. func (r *Seekable) ForgetAll() { r.OffsetsByHash = make(map[core.Hash]int64) } @@ -79,7 +81,8 @@ func (r *Seekable) RecallByHash(h core.Hash) (core.Object, error) { } // RecallByOffset returns the object for a given offset by looking for it again in -// the io.ReadeSeerker. +// the io.ReadeSeerker. For efficiency reasons, this method always find objects by +// offset, even if they have not been remembered or if they have been forgetted. func (r *Seekable) RecallByOffset(o int64) (obj core.Object, err error) { // remember current offset beforeJump, err := r.Offset() From 2ea588bcd04f6ae861b5f6fc261ba39f59392f3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Thu, 30 Jun 2016 16:00:59 +0200 Subject: [PATCH 126/143] use better names for internal maps --- formats/packfile/seekable.go | 10 +++++----- formats/packfile/stream.go | 30 +++++++++++++++--------------- storage/fs/store.go | 2 +- 3 files changed, 21 insertions(+), 21 deletions(-) diff --git a/formats/packfile/seekable.go b/formats/packfile/seekable.go index 16fbfdbb6..c5fa21571 100644 --- a/formats/packfile/seekable.go +++ b/formats/packfile/seekable.go @@ -15,7 +15,7 @@ import ( // (like a hard disk). type Seekable struct { io.ReadSeeker - OffsetsByHash map[core.Hash]int64 + HashToOffset map[core.Hash]int64 } // NewSeekable returns a new Seekable that reads form r. @@ -53,11 +53,11 @@ func (r *Seekable) Offset() (int64, error) { // index every time a get operation is performed on the SeekableReadRecaller. func (r *Seekable) Remember(o int64, obj core.Object) error { h := obj.Hash() - if _, ok := r.OffsetsByHash[h]; ok { + if _, ok := r.HashToOffset[h]; ok { return ErrDuplicatedObj.AddDetails("with hash %s", h) } - r.OffsetsByHash[h] = o + r.HashToOffset[h] = o return nil } @@ -66,13 +66,13 @@ func (r *Seekable) Remember(o int64, obj core.Object) error { // reasons RecallByOffset always find objects, even if they have been // forgetted or were never remembered. func (r *Seekable) ForgetAll() { - r.OffsetsByHash = make(map[core.Hash]int64) + r.HashToOffset = make(map[core.Hash]int64) } // RecallByHash returns the object for a given hash by looking for it again in // the io.ReadeSeerker. func (r *Seekable) RecallByHash(h core.Hash) (core.Object, error) { - o, ok := r.OffsetsByHash[h] + o, ok := r.HashToOffset[h] if !ok { return nil, ErrCannotRecall.AddDetails("hash not found: %s", h) } diff --git a/formats/packfile/stream.go b/formats/packfile/stream.go index c8cc447ac..a591b6538 100644 --- a/formats/packfile/stream.go +++ b/formats/packfile/stream.go @@ -11,18 +11,18 @@ import ( // quick access. type Stream struct { io.Reader - count int64 - byOffset map[int64]core.Object - byHash map[core.Hash]core.Object + count int64 + offsetToObject map[int64]core.Object + hashToObject map[core.Hash]core.Object } // NewStream returns a new Stream that reads form r. func NewStream(r io.Reader) *Stream { return &Stream{ - Reader: r, - count: 0, - byHash: make(map[core.Hash]core.Object, 0), - byOffset: make(map[int64]core.Object, 0), + Reader: r, + count: 0, + hashToObject: make(map[core.Hash]core.Object, 0), + offsetToObject: make(map[int64]core.Object, 0), } } @@ -53,29 +53,29 @@ func (r *Stream) Offset() (int64, error) { // of its object entry in the packfile. func (r *Stream) Remember(o int64, obj core.Object) error { h := obj.Hash() - if _, ok := r.byHash[h]; ok { + if _, ok := r.hashToObject[h]; ok { return ErrDuplicatedObj.AddDetails("with hash %s", h) } - r.byHash[h] = obj + r.hashToObject[h] = obj - if _, ok := r.byOffset[o]; ok { + if _, ok := r.offsetToObject[o]; ok { return ErrDuplicatedObj.AddDetails("with offset %d", o) } - r.byOffset[o] = obj + r.offsetToObject[o] = obj return nil } // ForgetAll forgets all previously remembered objects. func (r *Stream) ForgetAll() { - r.byHash = make(map[core.Hash]core.Object) - r.byOffset = make(map[int64]core.Object) + r.hashToObject = make(map[core.Hash]core.Object) + r.offsetToObject = make(map[int64]core.Object) } // RecallByHash returns an object that has been previously Remember-ed by // its hash. func (r *Stream) RecallByHash(h core.Hash) (core.Object, error) { - obj, ok := r.byHash[h] + obj, ok := r.hashToObject[h] if !ok { return nil, ErrCannotRecall.AddDetails("by hash %s", h) } @@ -86,7 +86,7 @@ func (r *Stream) RecallByHash(h core.Hash) (core.Object, error) { // RecallByHash returns an object that has been previously Remember-ed by // the offset of its object entry in the packfile. func (r *Stream) RecallByOffset(o int64) (core.Object, error) { - obj, ok := r.byOffset[o] + obj, ok := r.offsetToObject[o] if !ok { return nil, ErrCannotRecall.AddDetails("no object found at offset %d", o) } diff --git a/storage/fs/store.go b/storage/fs/store.go index f1b7f824d..a435574b8 100644 --- a/storage/fs/store.go +++ b/storage/fs/store.go @@ -126,7 +126,7 @@ func (s *ObjectStorage) Get(h core.Hash) (core.Object, error) { } r := packfile.NewSeekable(f) - r.OffsetsByHash = map[core.Hash]int64(s.index) + r.HashToOffset = map[core.Hash]int64(s.index) p := packfile.NewParser(r) return p.ReadObject() From 9dc0634c5450e06b29cffb96bce9a55561d38dfe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Thu, 30 Jun 2016 17:08:17 +0200 Subject: [PATCH 127/143] metalinter packfile package --- formats/packfile/doc.go | 2 + formats/packfile/error.go | 3 + formats/packfile/parser_test.go | 76 ++++++++++----------- formats/packfile/read_recaller.go | 6 +- formats/packfile/read_recaller_impl_test.go | 6 +- formats/packfile/seekable.go | 2 +- formats/packfile/stream.go | 6 +- 7 files changed, 55 insertions(+), 46 deletions(-) diff --git a/formats/packfile/doc.go b/formats/packfile/doc.go index d0c71fba0..c79c18032 100644 --- a/formats/packfile/doc.go +++ b/formats/packfile/doc.go @@ -1,4 +1,6 @@ +// Package packfile documentation: /* + GIT pack format =============== diff --git a/formats/packfile/error.go b/formats/packfile/error.go index 671eadbb7..c0b916331 100644 --- a/formats/packfile/error.go +++ b/formats/packfile/error.go @@ -7,10 +7,12 @@ type Error struct { reason, details string } +// NewError returns a new error. func NewError(reason string) *Error { return &Error{reason: reason} } +// Error returns a text representation of the error. func (e *Error) Error() string { if e.details == "" { return e.reason @@ -19,6 +21,7 @@ func (e *Error) Error() string { return fmt.Sprintf("%s: %s", e.reason, e.details) } +// AddDetails adds details to an error, with additional text. func (e *Error) AddDetails(format string, args ...interface{}) *Error { return &Error{ reason: e.reason, diff --git a/formats/packfile/parser_test.go b/formats/packfile/parser_test.go index acd02dc95..12d5f0dca 100644 --- a/formats/packfile/parser_test.go +++ b/formats/packfile/parser_test.go @@ -95,19 +95,19 @@ func (s *ParserSuite) TestSignature(c *C) { func (s *ParserSuite) TestVersion(c *C) { for i, test := range [...]struct { - fixId string + fixID string expected uint32 }{ { - fixId: "ofs-deltas", + fixID: "ofs-deltas", expected: uint32(2), }, { - fixId: "ref-deltas", + fixID: "ref-deltas", expected: uint32(2), }, } { - com := Commentf("test %d) fixture id = %s", i, test.fixId) - fix, ok := s.fixtures[test.fixId] + com := Commentf("test %d) fixture id = %s", i, test.fixID) + fix, ok := s.fixtures[test.fixID] c.Assert(ok, Equals, true, com) err := fix.seek(verOffset) @@ -123,19 +123,19 @@ func (s *ParserSuite) TestVersion(c *C) { func (s *ParserSuite) TestCount(c *C) { for i, test := range [...]struct { - fixId string + fixID string expected uint32 }{ { - fixId: "ofs-deltas", + fixID: "ofs-deltas", expected: uint32(0x50), }, { - fixId: "ref-deltas", + fixID: "ref-deltas", expected: uint32(0x1c), }, } { - com := Commentf("test %d) fixture id = %s", i, test.fixId) - fix, ok := s.fixtures[test.fixId] + com := Commentf("test %d) fixture id = %s", i, test.fixID) + fix, ok := s.fixtures[test.fixID] c.Assert(ok, Equals, true, com) err := fix.seek(countOffset) @@ -150,50 +150,50 @@ func (s *ParserSuite) TestCount(c *C) { func (s *ParserSuite) TestReadObjectTypeAndLength(c *C) { for i, test := range [...]struct { - fixId string + fixID string offset int64 expType core.ObjectType expLength int64 }{ { - fixId: "ofs-deltas", + fixID: "ofs-deltas", offset: 12, expType: core.CommitObject, expLength: 342, }, { - fixId: "ofs-deltas", + fixID: "ofs-deltas", offset: 1212, expType: core.OFSDeltaObject, expLength: 104, }, { - fixId: "ofs-deltas", + fixID: "ofs-deltas", offset: 3193, expType: core.TreeObject, expLength: 226, }, { - fixId: "ofs-deltas", + fixID: "ofs-deltas", offset: 3639, expType: core.BlobObject, expLength: 90, }, { - fixId: "ofs-deltas", + fixID: "ofs-deltas", offset: 4504, expType: core.BlobObject, expLength: 7107, }, { - fixId: "ref-deltas", + fixID: "ref-deltas", offset: 84849, expType: core.REFDeltaObject, expLength: 6, }, { - fixId: "ref-deltas", + fixID: "ref-deltas", offset: 85070, expType: core.REFDeltaObject, expLength: 8, }, } { - com := Commentf("test %d) fixture id = %s", i, test.fixId) - fix, ok := s.fixtures[test.fixId] + com := Commentf("test %d) fixture id = %s", i, test.fixID) + fix, ok := s.fixtures[test.fixID] c.Assert(ok, Equals, true, com) err := fix.seek(test.offset) @@ -209,26 +209,26 @@ func (s *ParserSuite) TestReadObjectTypeAndLength(c *C) { func (s *ParserSuite) TestReadNonDeltaObjectContent(c *C) { for i, test := range [...]struct { - fixId string + fixID string offset int64 expected []byte }{ { - fixId: "ofs-deltas", + fixID: "ofs-deltas", offset: 12, expected: []byte("tree 87c87d16e815a43e4e574dd8edd72c5450ac3a8e\nparent a87d72684d1cf68099ce6e9f68689e25e645a14c\nauthor Gorka Guardiola 1450265632 +0100\ncommitter Gorka Guardiola 1450265632 +0100\n\nChanged example to use dot.\nI did not remove the original files outside of the\ntex, I leave that to alcortes.\n"), }, { - fixId: "ofs-deltas", + fixID: "ofs-deltas", offset: 1610, expected: []byte("tree 4b4f0d9a07109ef0b8a3051138cc20cdb47fa513\nparent b373f85fa2594d7dcd9989f4a5858a81647fb8ea\nauthor Alberto Cortés 1448017995 +0100\ncommitter Alberto Cortés 1448018112 +0100\n\nMove generated images to it own dir (img/)\n\nFixes #1.\n"), }, { - fixId: "ofs-deltas", + fixID: "ofs-deltas", offset: 10566, expected: []byte("40000 map-slice\x00\x00\xce\xfb\x8ew\xf7\xa8\xc6\x1b\x99\xdd$\x91\xffH\xa3\xb0\xb1fy40000 simple-arrays\x00\x9a7\x81\xb7\xfd\x9d(Q\xe2\xa4H\x8c\x03^Ù¬\x90Z\xecy"), }, } { - com := Commentf("test %d) fixture id = %s", i, test.fixId) - fix, ok := s.fixtures[test.fixId] + com := Commentf("test %d) fixture id = %s", i, test.fixID) + fix, ok := s.fixtures[test.fixID] c.Assert(ok, Equals, true, com) err := fix.seek(test.offset) @@ -246,34 +246,34 @@ func (s *ParserSuite) TestReadNonDeltaObjectContent(c *C) { func (s *ParserSuite) TestReadOFSDeltaObjectContent(c *C) { for i, test := range [...]struct { - fixId string + fixID string offset int64 expOffset int64 expType core.ObjectType expContent []byte }{ { - fixId: "ofs-deltas", + fixID: "ofs-deltas", offset: 1212, expOffset: -212, expType: core.CommitObject, expContent: []byte("tree c4573589ce78ac63769c20742b9a970f6e274a38\nparent 4571a24948494ebe1cb3dc18ca5a9286e79705ae\nauthor Alberto Cortés 1448139640 +0100\ncommitter Alberto Cortés 1448139640 +0100\n\nUpdate reference to binrels module\n"), }, { - fixId: "ofs-deltas", + fixID: "ofs-deltas", offset: 3514, expOffset: -102, expType: core.TreeObject, expContent: []byte("100644 .gitignore\x00\u007fA\x90[Mw\xabJ\x9a-3O\xcd\x0f\xb5\xdbn\x8e!\x83100644 .gitmodules\x00\xd4`\xa8>\x15\xcfd\x05\x81B7_\xc4\v\x04\xa7\xa9A\x85\n100644 Makefile\x00-Ò­\x8c\x14\xdef\x12\xed\x15\x816y\xa6UK\xad\x993\v100644 binary-relations.tex\x00\x802\x05@\x11'^ \xf5<\xf7\xfd\x81%3\xd1o\xa9_$40000 graphs\x00\xdehu\x16\xc6\x0e\\H\x8e\xe9\xa1JIXE\xbaÚ½g\xc540000 imgs-gen\x00\xeb\"\xddhzg\xa3\x1f\xc8j\xc5\xfcè±¢\xe9\x96\xce\xce^40000 src\x00\x895\x11t\xff\x86\xa7\xea\xa6\xc0v%\x11E\x10f,Ý’\x1a"), }, { - fixId: "ofs-deltas", + fixID: "ofs-deltas", offset: 9806, expOffset: -6613, expType: core.TreeObject, expContent: []byte("100644 .gitignore\x00\u007fA\x90[Mw\xabJ\x9a-3O\xcd\x0f\xb5\xdbn\x8e!\x83100644 .gitmodules\x00\xd4`\xa8>\x15\xcfd\x05\x81B7_\xc4\v\x04\xa7\xa9A\x85\n100644 Makefile\x00-Ò­\x8c\x14\xdef\x12\xed\x15\x816y\xa6UK\xad\x993\v100644 binary-relations.tex\x00I\x13~\xb8Ú©EU\x9f\x99#\xc4E.\x9d>\uef1e\xad40000 graphs\x00\xb9\x00\xf34\xde\xff\xce@+\xbd\xf8 9\xb8=\xc1\xb9\x00\x84]40000 imgs-gen\x00\xeb\"\xddhzg\xa3\x1f\xc8j\xc5\xfcè±¢\xe9\x96\xce\xce^40000 src\x00\x895\x11t\xff\x86\xa7\xea\xa6\xc0v%\x11E\x10f,Ý’\x1a"), }, } { - com := Commentf("test %d) fixture id = %s", i, test.fixId) - fix, ok := s.fixtures[test.fixId] + com := Commentf("test %d) fixture id = %s", i, test.fixID) + fix, ok := s.fixtures[test.fixID] c.Assert(ok, Equals, true, com) err := fix.seek(test.offset) @@ -302,7 +302,7 @@ func (s *ParserSuite) TestReadOFSDeltaObjectContent(c *C) { func (s *ParserSuite) TestReadREFDeltaObjectContent(c *C) { for i, test := range [...]struct { - fixId string + fixID string offset int64 deps map[int64]core.Object expHash core.Hash @@ -310,7 +310,7 @@ func (s *ParserSuite) TestReadREFDeltaObjectContent(c *C) { expContent []byte }{ { - fixId: "ref-deltas", + fixID: "ref-deltas", offset: 84849, deps: map[int64]core.Object{ 83607: newObject(core.TreeObject, []byte("100644 .gitignore\x002\x85\x8a\xad<8>\xd1\xff\n\x0f\x9b\xdf#\x1dT\xa0\f\x9e\x88100644 CHANGELOG\x00\xd3\xffS\xe0VJ\x9f\x87\xd8\xe8Kn(\xe5\x06\x0eQp\b\xaa100644 LICENSE\x00\xc1\x92\xbdj$\xea\x1a\xb0\x1dxhnA|\x8b\xdc|=\x19\u007f100644 binary.jpg\x00\xd5\xc0\xf4\xab\x81\x18\x97\xca\xdf\x03\xae\xc3X\xae`\xd2\x1f\x91\xc5\r40000 go\x00\xa3\x97q\xa7e\x1f\x97\xfa\xf5\xc7.\b\"M\x85\u007f\xc3Q3\xdb40000 json\x00Z\x87~j\x90j'C\xadnEÙœ\x17\x93d*\xaf\x8e\xda40000 php\x00Xj\xf5gл^w\x1eI\xbd\xd9CO^\x0f\xb7m%\xfa40000 vendor\x00\xcfJ\xa3\xb3\x89t\xfb}\x81\xf3g\xc0\x83\x0f}x\xd6Z\xb8k")), @@ -319,7 +319,7 @@ func (s *ParserSuite) TestReadREFDeltaObjectContent(c *C) { expType: core.TreeObject, expContent: []byte("100644 .gitignore\x002\x85\x8a\xad<8>\xd1\xff\n\x0f\x9b\xdf#\x1dT\xa0\f\x9e\x88100644 CHANGELOG\x00\xd3\xffS\xe0VJ\x9f\x87\xd8\xe8Kn(\xe5\x06\x0eQp\b\xaa100644 LICENSE\x00\xc1\x92\xbdj$\xea\x1a\xb0\x1dxhnA|\x8b\xdc|=\x19\u007f100644 binary.jpg\x00\xd5\xc0\xf4\xab\x81\x18\x97\xca\xdf\x03\xae\xc3X\xae`\xd2\x1f\x91\xc5\r40000 go\x00\xa3\x97q\xa7e\x1f\x97\xfa\xf5\xc7.\b\"M\x85\u007f\xc3Q3\xdb40000 json\x00Z\x87~j\x90j'C\xadnEÙœ\x17\x93d*\xaf\x8e\xda40000 php\x00Xj\xf5gл^w\x1eI\xbd\xd9CO^\x0f\xb7m%\xfa"), }, { - fixId: "ref-deltas", + fixID: "ref-deltas", offset: 85070, deps: map[int64]core.Object{ 84922: newObject(core.TreeObject, []byte("100644 .gitignore\x002\x85\x8a\xad<8>\xd1\xff\n\x0f\x9b\xdf#\x1dT\xa0\f\x9e\x88100644 CHANGELOG\x00\xd3\xffS\xe0VJ\x9f\x87\xd8\xe8Kn(\xe5\x06\x0eQp\b\xaa100644 LICENSE\x00\xc1\x92\xbdj$\xea\x1a\xb0\x1dxhnA|\x8b\xdc|=\x19\u007f100644 binary.jpg\x00\xd5\xc0\xf4\xab\x81\x18\x97\xca\xdf\x03\xae\xc3X\xae`\xd2\x1f\x91\xc5\r")), @@ -331,15 +331,15 @@ func (s *ParserSuite) TestReadREFDeltaObjectContent(c *C) { expContent: []byte("100644 .gitignore\x002\x85\x8a\xad<8>\xd1\xff\n\x0f\x9b\xdf#\x1dT\xa0\f\x9e\x88100644 LICENSE\x00\xc1\x92\xbdj$\xea\x1a\xb0\x1dxhnA|\x8b\xdc|=\x19\u007f100644 binary.jpg\x00\xd5\xc0\xf4\xab\x81\x18\x97\xca\xdf\x03\xae\xc3X\xae`\xd2\x1f\x91\xc5\r"), }, } { - com := Commentf("test %d) fixture id = %s", i, test.fixId) - fix, ok := s.fixtures[test.fixId] + com := Commentf("test %d) fixture id = %s", i, test.fixID) + fix, ok := s.fixtures[test.fixID] c.Assert(ok, Equals, true, com) err := fix.seek(test.offset) c.Assert(err, IsNil, com) p := fix.parser for k, v := range test.deps { - err := p.Remember(k, v) + err = p.Remember(k, v) c.Assert(err, IsNil, com) } diff --git a/formats/packfile/read_recaller.go b/formats/packfile/read_recaller.go index 506a2ba6c..9b0d224aa 100644 --- a/formats/packfile/read_recaller.go +++ b/formats/packfile/read_recaller.go @@ -3,15 +3,15 @@ package packfile import "gopkg.in/src-d/go-git.v3/core" var ( - // ErrDulicatedObject is returned by Remember if an object appears several + // ErrDuplicatedObject is returned by Remember if an object appears several // times in a packfile. - ErrDuplicatedObj = NewError("duplicated object") + ErrDuplicatedObject = NewError("duplicated object") // ErrCannotRecall is returned by RecallByOffset or RecallByHash if the object // to recall cannot be returned. ErrCannotRecall = NewError("cannot recall object") ) -// The Reader interface has all the functions needed by a packfile +// The ReadRecaller interface has all the functions needed by a packfile // Parser to operate. We provide two very different implementations: // SeekableReadRecaller and StreamReadRecaller. type ReadRecaller interface { diff --git a/formats/packfile/read_recaller_impl_test.go b/formats/packfile/read_recaller_impl_test.go index 8008a86a2..438439daa 100644 --- a/formats/packfile/read_recaller_impl_test.go +++ b/formats/packfile/read_recaller_impl_test.go @@ -128,7 +128,11 @@ func (s *ReadRecallerImplSuite) TestRememberRecall(c *C) { packfile := "fixtures/spinnaker-spinnaker.pack" f, err := os.Open(packfile) c.Assert(err, IsNil) - defer f.Close() + defer func() { + err = f.Close() + c.Assert(err, IsNil) + }() + data, err := ioutil.ReadAll(f) c.Assert(err, IsNil) diff --git a/formats/packfile/seekable.go b/formats/packfile/seekable.go index c5fa21571..ea1c501da 100644 --- a/formats/packfile/seekable.go +++ b/formats/packfile/seekable.go @@ -54,7 +54,7 @@ func (r *Seekable) Offset() (int64, error) { func (r *Seekable) Remember(o int64, obj core.Object) error { h := obj.Hash() if _, ok := r.HashToOffset[h]; ok { - return ErrDuplicatedObj.AddDetails("with hash %s", h) + return ErrDuplicatedObject.AddDetails("with hash %s", h) } r.HashToOffset[h] = o diff --git a/formats/packfile/stream.go b/formats/packfile/stream.go index a591b6538..41266b1b2 100644 --- a/formats/packfile/stream.go +++ b/formats/packfile/stream.go @@ -54,12 +54,12 @@ func (r *Stream) Offset() (int64, error) { func (r *Stream) Remember(o int64, obj core.Object) error { h := obj.Hash() if _, ok := r.hashToObject[h]; ok { - return ErrDuplicatedObj.AddDetails("with hash %s", h) + return ErrDuplicatedObject.AddDetails("with hash %s", h) } r.hashToObject[h] = obj if _, ok := r.offsetToObject[o]; ok { - return ErrDuplicatedObj.AddDetails("with offset %d", o) + return ErrDuplicatedObject.AddDetails("with offset %d", o) } r.offsetToObject[o] = obj @@ -83,7 +83,7 @@ func (r *Stream) RecallByHash(h core.Hash) (core.Object, error) { return obj, nil } -// RecallByHash returns an object that has been previously Remember-ed by +// RecallByOffset returns an object that has been previously Remember-ed by // the offset of its object entry in the packfile. func (r *Stream) RecallByOffset(o int64) (core.Object, error) { obj, ok := r.offsetToObject[o] From 1df7d4694d1524d628ca4ffac0400b5c687ddafb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Thu, 30 Jun 2016 17:16:32 +0200 Subject: [PATCH 128/143] speed up some tests --- blame_test.go | 10 ++++++++-- formats/packfile/decoder_test.go | 2 +- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/blame_test.go b/blame_test.go index 38d30188d..40ae0b01f 100644 --- a/blame_test.go +++ b/blame_test.go @@ -1,6 +1,8 @@ package git import ( + "bytes" + "io/ioutil" "os" "gopkg.in/src-d/go-git.v3/core" @@ -23,9 +25,13 @@ func (s *BlameCommon) SetUpSuite(c *C) { f, err := os.Open(fixRepo.packfile) c.Assert(err, IsNil) - reader := packfile.NewSeekable(f) - d := packfile.NewDecoder(reader) + data, err := ioutil.ReadAll(f) + c.Assert(err, IsNil) + + stream := packfile.NewStream(bytes.NewReader(data)) + + d := packfile.NewDecoder(stream) err = d.Decode(r.Storage) c.Assert(err, IsNil) diff --git a/formats/packfile/decoder_test.go b/formats/packfile/decoder_test.go index 83f0dd1ac..0c471a29a 100644 --- a/formats/packfile/decoder_test.go +++ b/formats/packfile/decoder_test.go @@ -27,7 +27,7 @@ var packFileWithEmptyObjects = "UEFDSwAAAAIAAAALnw54nKXMQWoDMQxA0b1PoX2hSLIm44FS func (s *ReaderSuite) TestReadPackfile(c *C) { data, _ := base64.StdEncoding.DecodeString(packFileWithEmptyObjects) f := bytes.NewReader(data) - r := NewSeekable(f) + r := NewStream(f) d := NewDecoder(r) sto := memory.NewObjectStorage() From 758f000b029e51bae4f75e04114178477c795c40 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Thu, 30 Jun 2016 17:36:01 +0200 Subject: [PATCH 129/143] documentation fixes --- formats/packfile/read_recaller.go | 2 +- storage/memory/object.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/formats/packfile/read_recaller.go b/formats/packfile/read_recaller.go index 9b0d224aa..92ab1b2e0 100644 --- a/formats/packfile/read_recaller.go +++ b/formats/packfile/read_recaller.go @@ -13,7 +13,7 @@ var ( // The ReadRecaller interface has all the functions needed by a packfile // Parser to operate. We provide two very different implementations: -// SeekableReadRecaller and StreamReadRecaller. +// Seekable and Stream. type ReadRecaller interface { // Read reads up to len(p) bytes into p. Read(p []byte) (int, error) diff --git a/storage/memory/object.go b/storage/memory/object.go index b850aa46b..1720ebd00 100644 --- a/storage/memory/object.go +++ b/storage/memory/object.go @@ -26,7 +26,7 @@ func NewObject(typ core.ObjectType, size int64, cont []byte) *Object { } // Hash return the object Hash, the hash is calculated on-the-fly the first -// time is called, the subsequent calls the same Hash is returned even in the +// time is called, the subsequent calls the same Hash is returned even if the // type or the content has changed. The Hash is only generated if the size of // the content is exactly the Object.Size func (o *Object) Hash() core.Hash { From 457a8f314d3ed195bf33493da4363d7db60f79d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Thu, 30 Jun 2016 18:42:53 +0200 Subject: [PATCH 130/143] change storage.fs package name to storage.proxy to avoid confusion with new filesystem support --- clients/common_test.go | 2 +- repository.go | 4 ++-- repository_test.go | 6 ++--- storage/{fs => proxy}/internal/gitdir/dir.go | 0 .../{fs => proxy}/internal/gitdir/dir_test.go | 0 .../alcortesm-binary-relations-no-idx.tgz | Bin .../fixtures/alcortesm-binary-relations.tgz | Bin .../internal/gitdir/fixtures/no-packfile.tgz | Bin .../gitdir/fixtures/ref-deltas-no-idx.tgz | Bin .../internal/gitdir/fixtures/spinnaker-gc.tgz | Bin .../gitdir/fixtures/spinnaker-no-idx.tgz | Bin storage/{fs => proxy}/internal/gitdir/refs.go | 0 storage/{fs => proxy}/internal/index/index.go | 0 .../internal/index/index_test.go | 0 storage/{fs => proxy}/store.go | 6 ++--- storage/{fs => proxy}/store_test.go | 22 +++++++++--------- 16 files changed, 20 insertions(+), 20 deletions(-) rename storage/{fs => proxy}/internal/gitdir/dir.go (100%) rename storage/{fs => proxy}/internal/gitdir/dir_test.go (100%) rename storage/{fs => proxy}/internal/gitdir/fixtures/alcortesm-binary-relations-no-idx.tgz (100%) rename storage/{fs => proxy}/internal/gitdir/fixtures/alcortesm-binary-relations.tgz (100%) rename storage/{fs => proxy}/internal/gitdir/fixtures/no-packfile.tgz (100%) rename storage/{fs => proxy}/internal/gitdir/fixtures/ref-deltas-no-idx.tgz (100%) rename storage/{fs => proxy}/internal/gitdir/fixtures/spinnaker-gc.tgz (100%) rename storage/{fs => proxy}/internal/gitdir/fixtures/spinnaker-no-idx.tgz (100%) rename storage/{fs => proxy}/internal/gitdir/refs.go (100%) rename storage/{fs => proxy}/internal/index/index.go (100%) rename storage/{fs => proxy}/internal/index/index_test.go (100%) rename storage/{fs => proxy}/store.go (95%) rename storage/{fs => proxy}/store_test.go (92%) diff --git a/clients/common_test.go b/clients/common_test.go index eb5b07c78..770d19be6 100644 --- a/clients/common_test.go +++ b/clients/common_test.go @@ -20,7 +20,7 @@ type SuiteCommon struct { var _ = Suite(&SuiteCommon{}) -const fixtureTGZ = "../storage/fs/internal/gitdir/fixtures/spinnaker-gc.tgz" +const fixtureTGZ = "../storage/proxy/internal/gitdir/fixtures/spinnaker-gc.tgz" func (s *SuiteCommon) SetUpSuite(c *C) { var err error diff --git a/repository.go b/repository.go index 93eb25bc7..9873eb60d 100644 --- a/repository.go +++ b/repository.go @@ -7,8 +7,8 @@ import ( "gopkg.in/src-d/go-git.v3/clients/common" "gopkg.in/src-d/go-git.v3/core" "gopkg.in/src-d/go-git.v3/formats/packfile" - "gopkg.in/src-d/go-git.v3/storage/fs" "gopkg.in/src-d/go-git.v3/storage/memory" + "gopkg.in/src-d/go-git.v3/storage/proxy" ) var ( @@ -55,7 +55,7 @@ func NewRepositoryFromFS(path string) (*Repository, error) { repo := NewPlainRepository() var err error - repo.Storage, err = fs.New(path) + repo.Storage, err = proxy.New(path) return repo, err } diff --git a/repository_test.go b/repository_test.go index bea2aa8df..1405ed11d 100644 --- a/repository_test.go +++ b/repository_test.go @@ -6,7 +6,7 @@ import ( "gopkg.in/src-d/go-git.v3/clients/http" "gopkg.in/src-d/go-git.v3/core" - "gopkg.in/src-d/go-git.v3/storage/fs" + "gopkg.in/src-d/go-git.v3/storage/proxy" "gopkg.in/src-d/go-git.v3/utils/tgz" . "gopkg.in/check.v1" @@ -18,7 +18,7 @@ var dirFixtures = [...]struct { }{ { name: "binrels", - tgz: "storage/fs/internal/gitdir/fixtures/alcortesm-binary-relations.tgz", + tgz: "storage/proxy/internal/gitdir/fixtures/alcortesm-binary-relations.tgz", }, } @@ -74,7 +74,7 @@ func (s *SuiteRepository) TestNewRepositoryFromFS(c *C) { c.Assert(err, ErrorMatches, `unable to find remote "origin"`) c.Assert(repo.Storage, NotNil, com) - c.Assert(repo.Storage, FitsTypeOf, &fs.ObjectStorage{}, com) + c.Assert(repo.Storage, FitsTypeOf, &proxy.ObjectStorage{}, com) } } diff --git a/storage/fs/internal/gitdir/dir.go b/storage/proxy/internal/gitdir/dir.go similarity index 100% rename from storage/fs/internal/gitdir/dir.go rename to storage/proxy/internal/gitdir/dir.go diff --git a/storage/fs/internal/gitdir/dir_test.go b/storage/proxy/internal/gitdir/dir_test.go similarity index 100% rename from storage/fs/internal/gitdir/dir_test.go rename to storage/proxy/internal/gitdir/dir_test.go diff --git a/storage/fs/internal/gitdir/fixtures/alcortesm-binary-relations-no-idx.tgz b/storage/proxy/internal/gitdir/fixtures/alcortesm-binary-relations-no-idx.tgz similarity index 100% rename from storage/fs/internal/gitdir/fixtures/alcortesm-binary-relations-no-idx.tgz rename to storage/proxy/internal/gitdir/fixtures/alcortesm-binary-relations-no-idx.tgz diff --git a/storage/fs/internal/gitdir/fixtures/alcortesm-binary-relations.tgz b/storage/proxy/internal/gitdir/fixtures/alcortesm-binary-relations.tgz similarity index 100% rename from storage/fs/internal/gitdir/fixtures/alcortesm-binary-relations.tgz rename to storage/proxy/internal/gitdir/fixtures/alcortesm-binary-relations.tgz diff --git a/storage/fs/internal/gitdir/fixtures/no-packfile.tgz b/storage/proxy/internal/gitdir/fixtures/no-packfile.tgz similarity index 100% rename from storage/fs/internal/gitdir/fixtures/no-packfile.tgz rename to storage/proxy/internal/gitdir/fixtures/no-packfile.tgz diff --git a/storage/fs/internal/gitdir/fixtures/ref-deltas-no-idx.tgz b/storage/proxy/internal/gitdir/fixtures/ref-deltas-no-idx.tgz similarity index 100% rename from storage/fs/internal/gitdir/fixtures/ref-deltas-no-idx.tgz rename to storage/proxy/internal/gitdir/fixtures/ref-deltas-no-idx.tgz diff --git a/storage/fs/internal/gitdir/fixtures/spinnaker-gc.tgz b/storage/proxy/internal/gitdir/fixtures/spinnaker-gc.tgz similarity index 100% rename from storage/fs/internal/gitdir/fixtures/spinnaker-gc.tgz rename to storage/proxy/internal/gitdir/fixtures/spinnaker-gc.tgz diff --git a/storage/fs/internal/gitdir/fixtures/spinnaker-no-idx.tgz b/storage/proxy/internal/gitdir/fixtures/spinnaker-no-idx.tgz similarity index 100% rename from storage/fs/internal/gitdir/fixtures/spinnaker-no-idx.tgz rename to storage/proxy/internal/gitdir/fixtures/spinnaker-no-idx.tgz diff --git a/storage/fs/internal/gitdir/refs.go b/storage/proxy/internal/gitdir/refs.go similarity index 100% rename from storage/fs/internal/gitdir/refs.go rename to storage/proxy/internal/gitdir/refs.go diff --git a/storage/fs/internal/index/index.go b/storage/proxy/internal/index/index.go similarity index 100% rename from storage/fs/internal/index/index.go rename to storage/proxy/internal/index/index.go diff --git a/storage/fs/internal/index/index_test.go b/storage/proxy/internal/index/index_test.go similarity index 100% rename from storage/fs/internal/index/index_test.go rename to storage/proxy/internal/index/index_test.go diff --git a/storage/fs/store.go b/storage/proxy/store.go similarity index 95% rename from storage/fs/store.go rename to storage/proxy/store.go index a435574b8..bbb8e444b 100644 --- a/storage/fs/store.go +++ b/storage/proxy/store.go @@ -1,4 +1,4 @@ -package fs +package proxy import ( "fmt" @@ -6,8 +6,8 @@ import ( "gopkg.in/src-d/go-git.v3/core" "gopkg.in/src-d/go-git.v3/formats/packfile" - "gopkg.in/src-d/go-git.v3/storage/fs/internal/gitdir" - "gopkg.in/src-d/go-git.v3/storage/fs/internal/index" + "gopkg.in/src-d/go-git.v3/storage/proxy/internal/gitdir" + "gopkg.in/src-d/go-git.v3/storage/proxy/internal/index" ) // ObjectStorage is an implementation of core.ObjectStorage that stores diff --git a/storage/fs/store_test.go b/storage/proxy/store_test.go similarity index 92% rename from storage/fs/store_test.go rename to storage/proxy/store_test.go index 271d4d7cc..f31574395 100644 --- a/storage/fs/store_test.go +++ b/storage/proxy/store_test.go @@ -1,4 +1,4 @@ -package fs_test +package proxy_test import ( "fmt" @@ -9,9 +9,9 @@ import ( "gopkg.in/src-d/go-git.v3/core" "gopkg.in/src-d/go-git.v3/formats/packfile" - "gopkg.in/src-d/go-git.v3/storage/fs" - "gopkg.in/src-d/go-git.v3/storage/fs/internal/gitdir" "gopkg.in/src-d/go-git.v3/storage/memory" + "gopkg.in/src-d/go-git.v3/storage/proxy" + "gopkg.in/src-d/go-git.v3/storage/proxy/internal/gitdir" "gopkg.in/src-d/go-git.v3/utils/tgz" . "gopkg.in/check.v1" @@ -65,14 +65,14 @@ func (s *FsSuite) TearDownSuite(c *C) { } func (s *FsSuite) TestNewErrorNotFound(c *C) { - _, err := fs.New("not_found/.git") + _, err := proxy.New("not_found/.git") c.Assert(err, Equals, gitdir.ErrNotFound) } func (s *FsSuite) TestHashNotFound(c *C) { path := fixture("binary-relations", c) - sto, err := fs.New(path) + sto, err := proxy.New(path) c.Assert(err, IsNil) _, err = sto.Get(core.ZeroHash) @@ -92,10 +92,10 @@ func (s *FsSuite) TestGetCompareWithMemoryStorage(c *C) { memSto, err := memStorageFromGitDir(path) c.Assert(err, IsNil, com) - fsSto, err := fs.New(path) + proxySto, err := proxy.New(path) c.Assert(err, IsNil, com) - equal, reason, err := equalsStorages(memSto, fsSto) + equal, reason, err := equalsStorages(memSto, proxySto) c.Assert(err, IsNil, com) c.Assert(equal, Equals, true, Commentf("%s - %s\n", com.CheckCommentString(), reason)) @@ -216,7 +216,7 @@ func (s *FsSuite) TestIterCompareWithMemoryStorage(c *C) { memSto, err := memStorageFromDirPath(path) c.Assert(err, IsNil, com) - fsSto, err := fs.New(path) + proxySto, err := proxy.New(path) c.Assert(err, IsNil, com) for _, typ := range [...]core.ObjectType{ @@ -229,11 +229,11 @@ func (s *FsSuite) TestIterCompareWithMemoryStorage(c *C) { memObjs, err := iterToSortedSlice(memSto, typ) c.Assert(err, IsNil, com) - fsObjs, err := iterToSortedSlice(fsSto, typ) + proxyObjs, err := iterToSortedSlice(proxySto, typ) c.Assert(err, IsNil, com) for i, o := range memObjs { - c.Assert(fsObjs[i].Hash(), Equals, o.Hash(), com) + c.Assert(proxyObjs[i].Hash(), Equals, o.Hash(), com) } } } @@ -304,7 +304,7 @@ func (a byHash) Less(i, j int) bool { func (s *FsSuite) TestSet(c *C) { path := fixture("binary-relations", c) - sto, err := fs.New(path) + sto, err := proxy.New(path) c.Assert(err, IsNil) _, err = sto.Set(&memory.Object{}) From dc7298fc12ee9454aa96fcb01e4a59303025c6ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Thu, 30 Jun 2016 18:52:23 +0200 Subject: [PATCH 131/143] New fs package and os transparent implementation Now NewRepositoryFromFS receives a fs and a path and tests are modified accordingly, but it is still not using for anything. --- repository.go | 5 +++-- repository_test.go | 4 +++- storage/proxy/store.go | 3 ++- storage/proxy/store_test.go | 16 +++++++++++----- utils/fs/filesystem.go | 4 ++++ utils/fs/os.go | 8 ++++++++ 6 files changed, 31 insertions(+), 9 deletions(-) create mode 100644 utils/fs/filesystem.go create mode 100644 utils/fs/os.go diff --git a/repository.go b/repository.go index 9873eb60d..5bbe87a36 100644 --- a/repository.go +++ b/repository.go @@ -9,6 +9,7 @@ import ( "gopkg.in/src-d/go-git.v3/formats/packfile" "gopkg.in/src-d/go-git.v3/storage/memory" "gopkg.in/src-d/go-git.v3/storage/proxy" + "gopkg.in/src-d/go-git.v3/utils/fs" ) var ( @@ -51,11 +52,11 @@ func NewRepository(url string, auth common.AuthMethod) (*Repository, error) { // // To be able to use git repositories this way, you must run "git gc" on // them beforehand. -func NewRepositoryFromFS(path string) (*Repository, error) { +func NewRepositoryFromFS(fs fs.FS, path string) (*Repository, error) { repo := NewPlainRepository() var err error - repo.Storage, err = proxy.New(path) + repo.Storage, err = proxy.New(fs, path) return repo, err } diff --git a/repository_test.go b/repository_test.go index 1405ed11d..a91548883 100644 --- a/repository_test.go +++ b/repository_test.go @@ -7,6 +7,7 @@ import ( "gopkg.in/src-d/go-git.v3/clients/http" "gopkg.in/src-d/go-git.v3/core" "gopkg.in/src-d/go-git.v3/storage/proxy" + "gopkg.in/src-d/go-git.v3/utils/fs" "gopkg.in/src-d/go-git.v3/utils/tgz" . "gopkg.in/check.v1" @@ -67,7 +68,8 @@ func (s *SuiteRepository) TestNewRepositoryWithAuth(c *C) { func (s *SuiteRepository) TestNewRepositoryFromFS(c *C) { for name, path := range s.dirFixturePaths { com := Commentf("dir fixture %q → %q\n", name, path) - repo, err := NewRepositoryFromFS(path) + fs := fs.NewOS() + repo, err := NewRepositoryFromFS(fs, path) c.Assert(err, IsNil, com) err = repo.PullDefault() diff --git a/storage/proxy/store.go b/storage/proxy/store.go index bbb8e444b..bcd786a0c 100644 --- a/storage/proxy/store.go +++ b/storage/proxy/store.go @@ -8,6 +8,7 @@ import ( "gopkg.in/src-d/go-git.v3/formats/packfile" "gopkg.in/src-d/go-git.v3/storage/proxy/internal/gitdir" "gopkg.in/src-d/go-git.v3/storage/proxy/internal/index" + "gopkg.in/src-d/go-git.v3/utils/fs" ) // ObjectStorage is an implementation of core.ObjectStorage that stores @@ -25,7 +26,7 @@ type ObjectStorage struct { } // New returns a new ObjectStorage for the git directory at the specified path. -func New(path string) (*ObjectStorage, error) { +func New(fs fs.FS, path string) (*ObjectStorage, error) { s := &ObjectStorage{} var err error diff --git a/storage/proxy/store_test.go b/storage/proxy/store_test.go index f31574395..823b6adb1 100644 --- a/storage/proxy/store_test.go +++ b/storage/proxy/store_test.go @@ -12,6 +12,7 @@ import ( "gopkg.in/src-d/go-git.v3/storage/memory" "gopkg.in/src-d/go-git.v3/storage/proxy" "gopkg.in/src-d/go-git.v3/storage/proxy/internal/gitdir" + "gopkg.in/src-d/go-git.v3/utils/fs" "gopkg.in/src-d/go-git.v3/utils/tgz" . "gopkg.in/check.v1" @@ -65,14 +66,16 @@ func (s *FsSuite) TearDownSuite(c *C) { } func (s *FsSuite) TestNewErrorNotFound(c *C) { - _, err := proxy.New("not_found/.git") + fs := fs.NewOS() + _, err := proxy.New(fs, "not_found/.git") c.Assert(err, Equals, gitdir.ErrNotFound) } func (s *FsSuite) TestHashNotFound(c *C) { path := fixture("binary-relations", c) - sto, err := proxy.New(path) + fs := fs.NewOS() + sto, err := proxy.New(fs, path) c.Assert(err, IsNil) _, err = sto.Get(core.ZeroHash) @@ -92,7 +95,8 @@ func (s *FsSuite) TestGetCompareWithMemoryStorage(c *C) { memSto, err := memStorageFromGitDir(path) c.Assert(err, IsNil, com) - proxySto, err := proxy.New(path) + fs := fs.NewOS() + proxySto, err := proxy.New(fs, path) c.Assert(err, IsNil, com) equal, reason, err := equalsStorages(memSto, proxySto) @@ -216,7 +220,8 @@ func (s *FsSuite) TestIterCompareWithMemoryStorage(c *C) { memSto, err := memStorageFromDirPath(path) c.Assert(err, IsNil, com) - proxySto, err := proxy.New(path) + fs := fs.NewOS() + proxySto, err := proxy.New(fs, path) c.Assert(err, IsNil, com) for _, typ := range [...]core.ObjectType{ @@ -304,7 +309,8 @@ func (a byHash) Less(i, j int) bool { func (s *FsSuite) TestSet(c *C) { path := fixture("binary-relations", c) - sto, err := proxy.New(path) + fs := fs.NewOS() + sto, err := proxy.New(fs, path) c.Assert(err, IsNil) _, err = sto.Set(&memory.Object{}) diff --git a/utils/fs/filesystem.go b/utils/fs/filesystem.go new file mode 100644 index 000000000..7df8b4423 --- /dev/null +++ b/utils/fs/filesystem.go @@ -0,0 +1,4 @@ +package fs + +type FS interface { +} diff --git a/utils/fs/os.go b/utils/fs/os.go new file mode 100644 index 000000000..b92cb0d72 --- /dev/null +++ b/utils/fs/os.go @@ -0,0 +1,8 @@ +package fs + +type OS struct { +} + +func NewOS() *OS { + return &OS{} +} From 6d045259b9f14590d8e95f707bbd2f2df217f29d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Fri, 1 Jul 2016 10:42:40 +0200 Subject: [PATCH 132/143] add fs to gitdir and proxy.store --- repository_test.go | 7 ++- storage/proxy/internal/gitdir/dir.go | 69 +++++++++-------------- storage/proxy/internal/gitdir/dir_test.go | 17 +++--- storage/proxy/store.go | 18 +++--- storage/proxy/store_test.go | 40 +++++++------ utils/fs/filesystem.go | 15 +++++ utils/fs/os.go | 25 ++++++++ 7 files changed, 112 insertions(+), 79 deletions(-) diff --git a/repository_test.go b/repository_test.go index a91548883..bde16e376 100644 --- a/repository_test.go +++ b/repository_test.go @@ -3,6 +3,7 @@ package git import ( "fmt" "os" + "path/filepath" "gopkg.in/src-d/go-git.v3/clients/http" "gopkg.in/src-d/go-git.v3/core" @@ -67,9 +68,9 @@ func (s *SuiteRepository) TestNewRepositoryWithAuth(c *C) { func (s *SuiteRepository) TestNewRepositoryFromFS(c *C) { for name, path := range s.dirFixturePaths { - com := Commentf("dir fixture %q → %q\n", name, path) - fs := fs.NewOS() - repo, err := NewRepositoryFromFS(fs, path) + gitPath := filepath.Join(path, ".git/") + com := Commentf("dir fixture %q → %q\n", name, gitPath) + repo, err := NewRepositoryFromFS(fs.NewOS(), gitPath) c.Assert(err, IsNil, com) err = repo.PullDefault() diff --git a/storage/proxy/internal/gitdir/dir.go b/storage/proxy/internal/gitdir/dir.go index d833a4c8e..e3a8293c4 100644 --- a/storage/proxy/internal/gitdir/dir.go +++ b/storage/proxy/internal/gitdir/dir.go @@ -2,13 +2,14 @@ package gitdir import ( "errors" + "fmt" "io/ioutil" "os" - "path/filepath" "strings" "gopkg.in/src-d/go-git.v3/clients/common" "gopkg.in/src-d/go-git.v3/core" + "gopkg.in/src-d/go-git.v3/utils/fs" ) const ( @@ -36,24 +37,20 @@ var ( // The GitDir type represents a local git repository on disk. This // type is not zero-value-safe, use the New function to initialize it. type GitDir struct { + fs fs.FS path string refs map[string]core.Hash } // New returns a GitDir value ready to be used. The path argument must -// be an existing git repository directory (e.g. "/foo/bar/.git") or the -// directory inmediately above it (e.g. "/foo/bar" given that -// "/foo/bar/.git" exists). Relative and absolute paths are allowed. -func New(path string) (*GitDir, error) { +// be the absolute path of a git repository directory (e.g. +// "/foo/bar/.git"). +func New(fs fs.FS, path string) (*GitDir, error) { d := &GitDir{} - var err error + d.fs = fs + d.path = path - d.path, err = cleanPath(path) - if err != nil { - return nil, err - } - - if _, err := os.Stat(path); err != nil { + if _, err := fs.Stat(path); err != nil { if os.IsNotExist(err) { return nil, ErrNotFound } @@ -63,21 +60,6 @@ func New(path string) (*GitDir, error) { return d, nil } -func cleanPath(path string) (string, error) { - abs, err := filepath.Abs(path) - if err != nil { - return "", err - } - - abs = filepath.Clean(abs) - - if !strings.HasSuffix(abs, suffix) { - abs = filepath.Join(abs, suffix) - } - - return abs, nil -} - // Refs scans the git directory collecting references, which it returns. // Symbolic references are resolved and included in the output. func (d *GitDir) Refs() (map[string]core.Hash, error) { @@ -106,7 +88,7 @@ func (d *GitDir) Capabilities() (*common.Capabilities, error) { } func (d *GitDir) addSymRefCapability(cap *common.Capabilities) (err error) { - f, err := os.Open(filepath.Join(d.path, "HEAD")) + f, err := d.fs.Open(d.fs.Join(d.path, "HEAD")) if err != nil { return err } @@ -132,32 +114,33 @@ func (d *GitDir) addSymRefCapability(cap *common.Capabilities) (err error) { } // Packfile returns the path of the packfile in the repository. -func (d *GitDir) Packfile() (string, error) { +func (d *GitDir) Packfile() (fs.FS, string, error) { p := d.pattern(true) - list, err := filepath.Glob(p) + list, err := d.fs.Glob(p) if err != nil { - return "", err + return nil, "", err } if len(list) == 0 { - return "", ErrPackfileNotFound + fmt.Println(p) + return nil, "", ErrPackfileNotFound } if len(list) > 1 { - return "", ErrMoreThanOnePackfile + return nil, "", ErrMoreThanOnePackfile } - return list[0], nil + return d.fs, list[0], nil } func (d *GitDir) pattern(isPackfile bool) string { // packfile pattern: d.path + /objects/pack/pack-40hexs.pack // idx pattern: d.path + /objects/pack/pack-40hexs.idx - base := filepath.Join(d.path, "objects") - base = filepath.Join(base, "pack") + base := d.fs.Join(d.path, "objects") + base = d.fs.Join(base, "pack") file := filePattern + extension(isPackfile) - return filepath.Join(base, file) + return d.fs.Join(base, file) } func extension(isPackfile bool) string { @@ -172,21 +155,21 @@ func extension(isPackfile bool) string { const filePattern = "pack-[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]" // Idxfile returns the path of the idx file in the repository. -func (d *GitDir) Idxfile() (string, error) { +func (d *GitDir) Idxfile() (fs.FS, string, error) { p := d.pattern(false) - list, err := filepath.Glob(p) + list, err := d.fs.Glob(p) if err != nil { - return "", err + return nil, "", err } if len(list) == 0 { - return "", ErrIdxNotFound + return nil, "", ErrIdxNotFound } if len(list) > 1 { - return "", ErrMoreThanOneIdxfile + return nil, "", ErrMoreThanOneIdxfile } - return list[0], nil + return d.fs, list[0], nil } diff --git a/storage/proxy/internal/gitdir/dir_test.go b/storage/proxy/internal/gitdir/dir_test.go index aafc691bd..d4bb482b4 100644 --- a/storage/proxy/internal/gitdir/dir_test.go +++ b/storage/proxy/internal/gitdir/dir_test.go @@ -7,6 +7,7 @@ import ( "gopkg.in/src-d/go-git.v3/clients/common" "gopkg.in/src-d/go-git.v3/core" + "gopkg.in/src-d/go-git.v3/utils/fs" "gopkg.in/src-d/go-git.v3/utils/tgz" . "gopkg.in/check.v1" @@ -98,7 +99,7 @@ func (s *SuiteGitDir) TestNewErrors(c *C) { } { com := Commentf("subtest %d", i) - _, err := New(test.input) + _, err := New(fs.NewOS(), test.input) c.Assert(err, Equals, test.err, com) } } @@ -172,7 +173,7 @@ func (s *SuiteGitDir) newFixtureDir(c *C, fixName string) (*fixture, *GitDir) { f, ok := s.fixtures[fixName] c.Assert(ok, Equals, true) - d, err := New(f.path) + d, err := New(fs.NewOS(), f.path) c.Assert(err, IsNil) return &f, d @@ -197,10 +198,10 @@ func (s *SuiteGitDir) TestCapabilities(c *C) { } func (s *SuiteGitDir) TestPackfile(c *C) { - packfile := func(d *GitDir) (string, error) { + packfile := func(d *GitDir) (fs.FS, string, error) { return d.Packfile() } - idxfile := func(d *GitDir) (string, error) { + idxfile := func(d *GitDir) (fs.FS, string, error) { return d.Idxfile() } for _, test := range [...]struct { @@ -226,14 +227,14 @@ func (s *SuiteGitDir) TestPackfile(c *C) { } { fix, dir := s.newFixtureDir(c, test.fixture) - path, err := test.fn(dir) + fs, path, err := test.fn(dir) if test.err != "" { c.Assert(err, ErrorMatches, test.err) } else { c.Assert(err, IsNil) - rel, err := filepath.Rel(dir.path, path) + rel, err := fs.Rel(dir.path, path) c.Assert(err, IsNil) c.Assert(noExt(rel), Equals, noExt(fix.packfile)) @@ -241,9 +242,9 @@ func (s *SuiteGitDir) TestPackfile(c *C) { } } +type getPathFn func(*GitDir) (fs.FS, string, error) + func noExt(path string) string { ext := filepath.Ext(path) return path[0 : len(path)-len(ext)] } - -type getPathFn func(*GitDir) (string, error) diff --git a/storage/proxy/store.go b/storage/proxy/store.go index bcd786a0c..3be107b89 100644 --- a/storage/proxy/store.go +++ b/storage/proxy/store.go @@ -30,7 +30,7 @@ func New(fs fs.FS, path string) (*ObjectStorage, error) { s := &ObjectStorage{} var err error - s.dir, err = gitdir.New(path) + s.dir, err = gitdir.New(fs, path) if err != nil { return nil, err } @@ -41,7 +41,7 @@ func New(fs fs.FS, path string) (*ObjectStorage, error) { } func buildIndex(dir *gitdir.GitDir) (index.Index, error) { - idxfile, err := dir.Idxfile() + fs, idxfile, err := dir.Idxfile() if err != nil { if err == gitdir.ErrIdxNotFound { return buildIndexFromPackfile(dir) @@ -49,16 +49,16 @@ func buildIndex(dir *gitdir.GitDir) (index.Index, error) { return nil, err } - return buildIndexFromIdxfile(idxfile) + return buildIndexFromIdxfile(fs, idxfile) } func buildIndexFromPackfile(dir *gitdir.GitDir) (index.Index, error) { - packfile, err := dir.Packfile() + fs, packfile, err := dir.Packfile() if err != nil { return nil, err } - f, err := os.Open(packfile) + f, err := fs.Open(packfile) if err != nil { return nil, err } @@ -73,8 +73,8 @@ func buildIndexFromPackfile(dir *gitdir.GitDir) (index.Index, error) { return index.NewFromPackfile(f) } -func buildIndexFromIdxfile(path string) (index.Index, error) { - f, err := os.Open(path) +func buildIndexFromIdxfile(fs fs.FS, path string) (index.Index, error) { + f, err := fs.Open(path) if err != nil { return nil, err } @@ -104,12 +104,12 @@ func (s *ObjectStorage) Get(h core.Hash) (core.Object, error) { return nil, err } - path, err := s.dir.Packfile() + fs, path, err := s.dir.Packfile() if err != nil { return nil, err } - f, err := os.Open(path) + f, err := fs.Open(path) if err != nil { return nil, err } diff --git a/storage/proxy/store_test.go b/storage/proxy/store_test.go index 823b6adb1..026c31302 100644 --- a/storage/proxy/store_test.go +++ b/storage/proxy/store_test.go @@ -75,7 +75,9 @@ func (s *FsSuite) TestHashNotFound(c *C) { path := fixture("binary-relations", c) fs := fs.NewOS() - sto, err := proxy.New(fs, path) + gitPath := fs.Join(path, ".git/") + + sto, err := proxy.New(fs, gitPath) c.Assert(err, IsNil) _, err = sto.Get(core.ZeroHash) @@ -92,11 +94,13 @@ func (s *FsSuite) TestGetCompareWithMemoryStorage(c *C) { com := Commentf("at subtest %d, (fixture id = %q, extracted to %q)", i, fixId, path) - memSto, err := memStorageFromGitDir(path) + fs := fs.NewOS() + gitPath := fs.Join(path, ".git/") + + memSto, err := memStorageFromGitDir(fs, gitPath) c.Assert(err, IsNil, com) - fs := fs.NewOS() - proxySto, err := proxy.New(fs, path) + proxySto, err := proxy.New(fs, gitPath) c.Assert(err, IsNil, com) equal, reason, err := equalsStorages(memSto, proxySto) @@ -106,18 +110,18 @@ func (s *FsSuite) TestGetCompareWithMemoryStorage(c *C) { } } -func memStorageFromGitDir(path string) (*memory.ObjectStorage, error) { - dir, err := gitdir.New(path) +func memStorageFromGitDir(fs fs.FS, path string) (*memory.ObjectStorage, error) { + dir, err := gitdir.New(fs, path) if err != nil { return nil, err } - packfilePath, err := dir.Packfile() + fs, packfilePath, err := dir.Packfile() if err != nil { return nil, err } - f, err := os.Open(packfilePath) + f, err := fs.Open(packfilePath) if err != nil { return nil, err } @@ -217,11 +221,13 @@ func (s *FsSuite) TestIterCompareWithMemoryStorage(c *C) { com := Commentf("at subtest %d, (fixture id = %q, extracted to %q)", i, fixId, path) - memSto, err := memStorageFromDirPath(path) + fs := fs.NewOS() + gitPath := fs.Join(path, ".git/") + + memSto, err := memStorageFromDirPath(fs, gitPath) c.Assert(err, IsNil, com) - fs := fs.NewOS() - proxySto, err := proxy.New(fs, path) + proxySto, err := proxy.New(fs, gitPath) c.Assert(err, IsNil, com) for _, typ := range [...]core.ObjectType{ @@ -244,19 +250,19 @@ func (s *FsSuite) TestIterCompareWithMemoryStorage(c *C) { } } -func memStorageFromDirPath(path string) (*memory.ObjectStorage, error) { - dir, err := gitdir.New(path) +func memStorageFromDirPath(fs fs.FS, path string) (*memory.ObjectStorage, error) { + dir, err := gitdir.New(fs, path) if err != nil { return nil, err } - packfilePath, err := dir.Packfile() + fs, packfilePath, err := dir.Packfile() if err != nil { return nil, err } sto := memory.NewObjectStorage() - f, err := os.Open(packfilePath) + f, err := fs.Open(packfilePath) if err != nil { return nil, err } @@ -310,7 +316,9 @@ func (s *FsSuite) TestSet(c *C) { path := fixture("binary-relations", c) fs := fs.NewOS() - sto, err := proxy.New(fs, path) + gitPath := fs.Join(path, ".git/") + + sto, err := proxy.New(fs, gitPath) c.Assert(err, IsNil) _, err = sto.Set(&memory.Object{}) diff --git a/utils/fs/filesystem.go b/utils/fs/filesystem.go index 7df8b4423..bbb7fe5fc 100644 --- a/utils/fs/filesystem.go +++ b/utils/fs/filesystem.go @@ -1,4 +1,19 @@ package fs +import ( + "io" + "os" +) + type FS interface { + Stat(path string) (os.FileInfo, error) + Open(path string) (ReadSeekCloser, error) + Join(elem ...string) string + Glob(p string) ([]string, error) + Rel(string, string) (string, error) +} + +type ReadSeekCloser interface { + io.ReadCloser + io.Seeker } diff --git a/utils/fs/os.go b/utils/fs/os.go index b92cb0d72..254738d9f 100644 --- a/utils/fs/os.go +++ b/utils/fs/os.go @@ -1,8 +1,33 @@ package fs +import ( + "os" + "path/filepath" +) + type OS struct { } func NewOS() *OS { return &OS{} } + +func (o *OS) Stat(path string) (os.FileInfo, error) { + return os.Stat(path) +} + +func (o *OS) Open(path string) (ReadSeekCloser, error) { + return os.Open(path) +} + +func (o *OS) Join(elem ...string) string { + return filepath.Join(elem...) +} + +func (o *OS) Glob(p string) ([]string, error) { + return filepath.Glob(p) +} + +func (o *OS) Rel(base, target string) (string, error) { + return filepath.Rel(base, target) +} From 14e5817b35f12c0c72d8b6d5281884f83c3b6248 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Fri, 1 Jul 2016 16:32:10 +0200 Subject: [PATCH 133/143] reduce fs interface for easier implementation --- repository_test.go | 6 +- storage/proxy/internal/gitdir/dir.go | 76 ++++++------------ storage/proxy/internal/gitdir/dir_test.go | 49 ++++++----- .../{no-packfile.tgz => empty-gitdir.tgz} | Bin .../gitdir/fixtures/no-packfile-no-idx.tgz | Bin 0 -> 7431 bytes storage/proxy/internal/gitdir/refs.go | 28 ++++--- utils/fs/{filesystem.go => fs.go} | 3 +- utils/fs/os.go | 13 ++- 8 files changed, 82 insertions(+), 93 deletions(-) rename storage/proxy/internal/gitdir/fixtures/{no-packfile.tgz => empty-gitdir.tgz} (100%) create mode 100644 storage/proxy/internal/gitdir/fixtures/no-packfile-no-idx.tgz rename utils/fs/{filesystem.go => fs.go} (76%) diff --git a/repository_test.go b/repository_test.go index bde16e376..c15cfe20c 100644 --- a/repository_test.go +++ b/repository_test.go @@ -3,7 +3,6 @@ package git import ( "fmt" "os" - "path/filepath" "gopkg.in/src-d/go-git.v3/clients/http" "gopkg.in/src-d/go-git.v3/core" @@ -68,9 +67,10 @@ func (s *SuiteRepository) TestNewRepositoryWithAuth(c *C) { func (s *SuiteRepository) TestNewRepositoryFromFS(c *C) { for name, path := range s.dirFixturePaths { - gitPath := filepath.Join(path, ".git/") + fs := fs.NewOS() + gitPath := fs.Join(path, ".git/") com := Commentf("dir fixture %q → %q\n", name, gitPath) - repo, err := NewRepositoryFromFS(fs.NewOS(), gitPath) + repo, err := NewRepositoryFromFS(fs, gitPath) c.Assert(err, IsNil, com) err = repo.PullDefault() diff --git a/storage/proxy/internal/gitdir/dir.go b/storage/proxy/internal/gitdir/dir.go index e3a8293c4..bfdf030f1 100644 --- a/storage/proxy/internal/gitdir/dir.go +++ b/storage/proxy/internal/gitdir/dir.go @@ -2,7 +2,6 @@ package gitdir import ( "errors" - "fmt" "io/ioutil" "os" "strings" @@ -23,23 +22,18 @@ var ( // ErrIdxNotFound is returned by Idxfile when the idx file is not found on the // repository. ErrIdxNotFound = errors.New("idx file not found") - // ErrMoreThanOnePackfile is returned by Packfile when more than one packfile - // is found in the repository - ErrMoreThanOnePackfile = errors.New("more than one packfile found") // ErrPackfileNotFound is returned by Packfile when the packfile is not found // on the repository. ErrPackfileNotFound = errors.New("packfile not found") - // ErrMoreThanOneIdxfile is returned by Idxfile when more than one idxfile - // is found in the repository - ErrMoreThanOneIdxfile = errors.New("more than one idxfile found") ) // The GitDir type represents a local git repository on disk. This // type is not zero-value-safe, use the New function to initialize it. type GitDir struct { - fs fs.FS - path string - refs map[string]core.Hash + fs fs.FS + path string + refs map[string]core.Hash + packDir string } // New returns a GitDir value ready to be used. The path argument must @@ -49,6 +43,7 @@ func New(fs fs.FS, path string) (*GitDir, error) { d := &GitDir{} d.fs = fs d.path = path + d.packDir = d.fs.Join(d.path, "objects", "pack") if _, err := fs.Stat(path); err != nil { if os.IsNotExist(err) { @@ -113,63 +108,38 @@ func (d *GitDir) addSymRefCapability(cap *common.Capabilities) (err error) { return nil } -// Packfile returns the path of the packfile in the repository. +// Packfile returns the path of the packfile (really, it returns the +// path of the first file in the "objects/pack/" directory with a +// ".pack" extension. func (d *GitDir) Packfile() (fs.FS, string, error) { - p := d.pattern(true) - - list, err := d.fs.Glob(p) + files, err := d.fs.ReadDir(d.packDir) if err != nil { return nil, "", err } - if len(list) == 0 { - fmt.Println(p) - return nil, "", ErrPackfileNotFound - } - - if len(list) > 1 { - return nil, "", ErrMoreThanOnePackfile - } - - return d.fs, list[0], nil -} - -func (d *GitDir) pattern(isPackfile bool) string { - // packfile pattern: d.path + /objects/pack/pack-40hexs.pack - // idx pattern: d.path + /objects/pack/pack-40hexs.idx - base := d.fs.Join(d.path, "objects") - base = d.fs.Join(base, "pack") - file := filePattern + extension(isPackfile) - return d.fs.Join(base, file) -} - -func extension(isPackfile bool) string { - if isPackfile { - return ".pack" + for _, f := range files { + if strings.HasSuffix(f.Name(), ".pack") { + return d.fs, d.fs.Join(d.packDir, f.Name()), nil + } } - return ".idx" + return nil, "", ErrPackfileNotFound } -// "pack-" followed by 40 chars representing hexadecimal numbers -const filePattern = "pack-[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]" - -// Idxfile returns the path of the idx file in the repository. +// Packfile returns the path of the idx file (really, it returns the +// path of the first file in the "objects/pack/" directory with an +// ".idx" extension. func (d *GitDir) Idxfile() (fs.FS, string, error) { - p := d.pattern(false) - - list, err := d.fs.Glob(p) + files, err := d.fs.ReadDir(d.packDir) if err != nil { return nil, "", err } - if len(list) == 0 { - return nil, "", ErrIdxNotFound - } - - if len(list) > 1 { - return nil, "", ErrMoreThanOneIdxfile + for _, f := range files { + if strings.HasSuffix(f.Name(), ".idx") { + return d.fs, d.fs.Join(d.packDir, f.Name()), nil + } } - return d.fs, list[0], nil + return nil, "", ErrIdxNotFound } diff --git a/storage/proxy/internal/gitdir/dir_test.go b/storage/proxy/internal/gitdir/dir_test.go index d4bb482b4..2024354a6 100644 --- a/storage/proxy/internal/gitdir/dir_test.go +++ b/storage/proxy/internal/gitdir/dir_test.go @@ -3,6 +3,7 @@ package gitdir import ( "os" "path/filepath" + "strings" "testing" "gopkg.in/src-d/go-git.v3/clients/common" @@ -30,14 +31,18 @@ var initFixtures = [...]struct { }, packfile: "objects/pack/pack-584416f86235cac0d54bfabbdc399fb2b09a5269.pack", idxfile: "objects/pack/pack-584416f86235cac0d54bfabbdc399fb2b09a5269.idx", - }, - { - name: "no-packfile", - tgz: "fixtures/no-packfile.tgz", + }, { + name: "no-packfile-no-idx", + tgz: "fixtures/no-packfile-no-idx.tgz", + }, { + name: "empty", + tgz: "fixtures/empty-gitdir.tgz", }, } type fixture struct { + installDir string + fs fs.FS path string // repo names to paths of the extracted tgz capabilities *common.Capabilities // expected capabilities packfile string // path of the packfile @@ -61,7 +66,9 @@ func (s *SuiteGitDir) SetUpSuite(c *C) { f := fixture{} - f.path = filepath.Join(path, ".git") + f.installDir = path + f.fs = fs.NewOS() + f.path = f.fs.Join(path, ".git") f.capabilities = common.NewCapabilities() for _, pair := range init.capabilities { @@ -77,10 +84,9 @@ func (s *SuiteGitDir) SetUpSuite(c *C) { func (s *SuiteGitDir) TearDownSuite(c *C) { for n, f := range s.fixtures { - d := filepath.Dir(f.path) - err := os.RemoveAll(d) + err := os.RemoveAll(f.installDir) c.Assert(err, IsNil, Commentf("cannot delete tmp dir for fixture %s: %s\n", - n, d)) + n, f.installDir)) } } @@ -216,28 +222,35 @@ func (s *SuiteGitDir) TestPackfile(c *C) { fixture: "spinnaker", fn: idxfile, }, { - fixture: "no-packfile", + fixture: "empty", + fn: packfile, + err: ".* no such file or directory", + }, { + fixture: "empty", + fn: idxfile, + err: ".* no such file or directory", + }, { + fixture: "no-packfile-no-idx", fn: packfile, err: "packfile not found", }, { - fixture: "no-packfile", + fixture: "no-packfile-no-idx", fn: idxfile, err: "idx file not found", }, } { + com := Commentf("fixture = %s", test.fixture) + fix, dir := s.newFixtureDir(c, test.fixture) - fs, path, err := test.fn(dir) + _, path, err := test.fn(dir) if test.err != "" { - c.Assert(err, ErrorMatches, test.err) + c.Assert(err, ErrorMatches, test.err, com) } else { - c.Assert(err, IsNil) - - rel, err := fs.Rel(dir.path, path) - c.Assert(err, IsNil) - - c.Assert(noExt(rel), Equals, noExt(fix.packfile)) + c.Assert(err, IsNil, com) + c.Assert(strings.HasSuffix(noExt(path), noExt(fix.packfile)), + Equals, true, com) } } } diff --git a/storage/proxy/internal/gitdir/fixtures/no-packfile.tgz b/storage/proxy/internal/gitdir/fixtures/empty-gitdir.tgz similarity index 100% rename from storage/proxy/internal/gitdir/fixtures/no-packfile.tgz rename to storage/proxy/internal/gitdir/fixtures/empty-gitdir.tgz diff --git a/storage/proxy/internal/gitdir/fixtures/no-packfile-no-idx.tgz b/storage/proxy/internal/gitdir/fixtures/no-packfile-no-idx.tgz new file mode 100644 index 0000000000000000000000000000000000000000..9d2f5c5c4e3b689743dc982a8c2b9be2a4171817 GIT binary patch literal 7431 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 Date: Fri, 1 Jul 2016 16:47:27 +0200 Subject: [PATCH 134/143] remove garbage dirs from tgz tests --- utils/tgz/tgz_test.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/utils/tgz/tgz_test.go b/utils/tgz/tgz_test.go index f58eecf5a..0a271c34b 100644 --- a/utils/tgz/tgz_test.go +++ b/utils/tgz/tgz_test.go @@ -30,10 +30,10 @@ func (s *SuiteTGZ) TestExtract(c *C) { sort.Strings(test.tree) c.Assert(obt, DeepEquals, test.tree, com) - - err = os.RemoveAll(path) - c.Assert(err, IsNil, com) } + + err = os.RemoveAll(path) + c.Assert(err, IsNil, com) } } From 4c5bb72e001a8a6d835fb0cc0d9d149fd512cca3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Fri, 1 Jul 2016 16:49:02 +0200 Subject: [PATCH 135/143] change file name gitdir/dir.go to gitdir/gitdir.go --- storage/proxy/internal/gitdir/{dir.go => gitdir.go} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename storage/proxy/internal/gitdir/{dir.go => gitdir.go} (100%) diff --git a/storage/proxy/internal/gitdir/dir.go b/storage/proxy/internal/gitdir/gitdir.go similarity index 100% rename from storage/proxy/internal/gitdir/dir.go rename to storage/proxy/internal/gitdir/gitdir.go From 4bf9c3189a43c28de5b6f6c54d7ae82bba981856 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Fri, 1 Jul 2016 18:26:55 +0200 Subject: [PATCH 136/143] fs.OS tests --- utils/fs/os.go | 5 +- utils/fs/os_test.go | 151 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 153 insertions(+), 3 deletions(-) create mode 100644 utils/fs/os_test.go diff --git a/utils/fs/os.go b/utils/fs/os.go index 22e5d1429..06e30e4e9 100644 --- a/utils/fs/os.go +++ b/utils/fs/os.go @@ -6,10 +6,9 @@ import ( "path/filepath" ) -type OS struct { -} +type OS struct{} -func NewOS() *OS { +func NewOS() FS { return &OS{} } diff --git a/utils/fs/os_test.go b/utils/fs/os_test.go new file mode 100644 index 000000000..dd9d21648 --- /dev/null +++ b/utils/fs/os_test.go @@ -0,0 +1,151 @@ +package fs + +import ( + "io/ioutil" + "os" + "testing" + + . "gopkg.in/check.v1" + "gopkg.in/src-d/go-git.v3/utils/tgz" +) + +func Test(t *testing.T) { TestingT(t) } + +type FSImplSuite struct { + dir string +} + +var _ = Suite(&FSImplSuite{}) + +func (s *FSImplSuite) SetUpSuite(c *C) { + dir, err := tgz.Extract("../../storage/proxy/internal/gitdir/fixtures/spinnaker-gc.tgz") + c.Assert(err, IsNil) + s.dir = dir +} + +func (s *FSImplSuite) TearDownSuite(c *C) { + err := os.RemoveAll(s.dir) + c.Assert(err, IsNil) +} + +func (s *FSImplSuite) TestJoin(c *C) { + fs := NewOS() + for i, test := range [...]struct { + input []string + expected string + }{ + { + input: []string{}, + expected: "", + }, { + input: []string{"a"}, + expected: "a", + }, { + input: []string{"a", "b"}, + expected: "a/b", + }, { + input: []string{"a", "b", "c"}, + expected: "a/b/c", + }, + } { + obtained := fs.Join(test.input...) + com := Commentf("test %d:\n\tinput = %v", i, test.input) + c.Assert(obtained, Equals, test.expected, com) + } +} + +func (s *FSImplSuite) TestStat(c *C) { + fs := NewOS() + for i, path := range [...]string{ + ".git/index", + ".git/info/refs", + ".git/objects/pack/pack-584416f86235cac0d54bfabbdc399fb2b09a5269.pack", + } { + path := fs.Join(s.dir, path) + com := Commentf("test %d", i) + + real, err := os.Open(path) + c.Assert(err, IsNil, com) + + expected, err := real.Stat() + c.Assert(err, IsNil, com) + + obtained, err := fs.Stat(path) + c.Assert(err, IsNil, com) + + c.Assert(obtained, DeepEquals, expected, com) + + err = real.Close() + c.Assert(err, IsNil, com) + } +} + +func (s *FSImplSuite) TestStatErrors(c *C) { + fs := NewOS() + for i, test := range [...]struct { + input string + errRegExp string + }{ + { + input: "bla", + errRegExp: ".*bla: no such file or directory", + }, { + input: "bla/foo", + errRegExp: ".*bla/foo: no such file or directory", + }, + } { + com := Commentf("test %d", i) + _, err := fs.Stat(test.input) + c.Assert(err, ErrorMatches, test.errRegExp, com) + } +} + +func (s *FSImplSuite) TestOpen(c *C) { + fs := NewOS() + for i, test := range [...]string{ + ".git/index", + ".git/info/refs", + ".git/objects/pack/pack-584416f86235cac0d54bfabbdc399fb2b09a5269.pack", + } { + com := Commentf("test %d", i) + path := fs.Join(s.dir, test) + + real, err := os.Open(path) + c.Assert(err, IsNil, com) + realData, err := ioutil.ReadAll(real) + c.Assert(err, IsNil, com) + err = real.Close() + c.Assert(err, IsNil, com) + + obtained, err := fs.Open(path) + c.Assert(err, IsNil, com) + obtainedData, err := ioutil.ReadAll(obtained) + c.Assert(err, IsNil, com) + err = obtained.Close() + c.Assert(err, IsNil, com) + + c.Assert(obtainedData, DeepEquals, realData, com) + } +} + +func (s *FSImplSuite) TestReadDir(c *C) { + fs := NewOS() + for i, test := range [...]string{ + ".git/info", + ".", + "", + ".git/objects", + ".git/objects/pack", + } { + com := Commentf("test %d", i) + path := fs.Join(s.dir, test) + + expected, err := ioutil.ReadDir(path) + c.Assert(err, IsNil, com) + + obtained, err := fs.ReadDir(path) + c.Assert(err, IsNil, com) + + c.Assert(obtained, DeepEquals, expected, com) + } +} From 7e88430712d1645073d16fa64f2eec73e1bc8a15 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Fri, 1 Jul 2016 18:34:20 +0200 Subject: [PATCH 137/143] metalinter utils/fs --- utils/fs/fs.go | 3 +++ utils/fs/os.go | 7 +++++++ 2 files changed, 10 insertions(+) diff --git a/utils/fs/fs.go b/utils/fs/fs.go index 8484ee321..df771dd07 100644 --- a/utils/fs/fs.go +++ b/utils/fs/fs.go @@ -5,6 +5,8 @@ import ( "os" ) +// FS interface represent an abstracted filesystem, so you can +// use NewRepositoryFromFS from any medium. type FS interface { Stat(path string) (os.FileInfo, error) Open(path string) (ReadSeekCloser, error) @@ -12,6 +14,7 @@ type FS interface { Join(elem ...string) string } +// ReadSeekCloser is a Reader, Seeker and Closer. type ReadSeekCloser interface { io.ReadCloser io.Seeker diff --git a/utils/fs/os.go b/utils/fs/os.go index 06e30e4e9..37ad75a3b 100644 --- a/utils/fs/os.go +++ b/utils/fs/os.go @@ -6,24 +6,31 @@ import ( "path/filepath" ) +// OS is a simple FS implementation for the current host filesystem. type OS struct{} +// NewOS returns a new OS. func NewOS() FS { return &OS{} } +// Stat returns the filesystem info for a path. func (o *OS) Stat(path string) (os.FileInfo, error) { return os.Stat(path) } +// Open returns a ReadSeekCloser for the specified path. func (o *OS) Open(path string) (ReadSeekCloser, error) { return os.Open(path) } +// ReadDir returns the filesystem info for all the archives under the +// specified path. func (o *OS) ReadDir(path string) ([]os.FileInfo, error) { return ioutil.ReadDir(path) } +// Join joins the specified elements using the filesystem separator. func (o *OS) Join(elem ...string) string { return filepath.Join(elem...) } From f17ed0f96eb65c061c0d6ad53674b0fa5ea0ddb4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Mon, 4 Jul 2016 11:15:26 +0200 Subject: [PATCH 138/143] add NewRepositoryFromFS documentation to README --- README.md | 182 ++++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 148 insertions(+), 34 deletions(-) diff --git a/README.md b/README.md index 02ce815c7..4613d60ba 100644 --- a/README.md +++ b/README.md @@ -90,69 +90,183 @@ Date: 2015-12-11 17:57:10 +0100 +0100 ... ``` -Bare and non-bare local repositories are also supported using the -`NewRepositoryFromFS` constructor. To be able to use this functionality the -local repository has to be prepared beforehand by running `git gc` on it. - -When accessing local repositories this way, no remote is created and there is no -need to pull as all operations are resolved by directly accessing the directory -and its packfile; this is much slower than having all the repository contents in -memory, but uses very little memory. +Retrieving the latest commit for a given repository: ```go -// Prepare the repository as follows -// git clone https://github.com/src-d/go-git /tmp/go-git -// pushd /tmp/go-git ; git gc ; popd +r, err := git.NewRepository("https://github.com/src-d/go-git", nil) +if err != nil { + panic(err) +} -r, err := git.NewRepositoryFromFS("/tmp/go-git") +if err := r.PullDefault(); err != nil { + panic(err) +} + +hash, err := r.Remotes[git.DefaultRemoteName].Head() if err != nil { panic(err) } -iter, err := r.Commits() +commit, err := r.Commit(hash) if err != nil { panic(err) } -defer iter.Close() -for { - //the commits are not shorted in any special order - commit, err := iter.Next() +fmt.Println(commit) +``` + +Creating a repository from an ordinary local git directory (that has been +previously prepared by running `git gc` on it). + +```go +// Download any git repository and prepare it as as follows: +// +// $ git clone https://github.com/src-d/go-git /tmp/go-git +// $ pushd /tmp/go-git ; git gc ; popd +// +// Then, create a go-git repository from the local content +// and print its commits as follows: + +package main + +import ( + "fmt" + "io" + + "gopkg.in/src-d/go-git.v3" + "gopkg.in/src-d/go-git.v3/utils/fs" +) + +func main() { + fs := fs.NewOS() // a simple proxy for the local host filesystem + localRepo := "/tmp/go-git/.git" + + repo, err := git.NewRepositoryFromFS(fs, localRepo) if err != nil { - if err == io.EOF { - break - } + panic(err) + } + iter, err := repo.Commits() + if err != nil { panic(err) } + defer iter.Close() + + for { + commit, err := iter.Next() + if err != nil { + if err == io.EOF { + break + } + panic(err) + } - fmt.Println(commit) + fmt.Println(commit) + } } ``` -Retrieving the latest commit for a given repository: +Implementing your own filesystem will let you access repositories stored on +remote services (e.g. amazon S3): ```go -r, err := git.NewRepository("https://github.com/src-d/go-git", nil) -if err != nil { - panic(err) +package main + +import ( + "fmt" + "io" + "io/ioutil" + "os" + "path/filepath" + "strings" + + "gopkg.in/src-d/go-git.v3" + "gopkg.in/src-d/go-git.v3/utils/fs" +) + +func main() { + // use an add-hoc filesystem implementation, see bellow + funnyFS := newFunnyFS("/tmp") + + // local git dir path for the funny filesystem + // (equivalent to /tmp/go-git/.git in the local filesystem) + funnyPath := "go-git--.git" + + repo, err := git.NewRepositoryFromFS(funnyFS, funnyPath) + if err != nil { + panic(err) + } + + iter, err := repo.Commits() + if err != nil { + panic(err) + } + defer iter.Close() + + for { + commit, err := iter.Next() + if err != nil { + if err == io.EOF { + break + } + + panic(err) + } + + fmt.Println(commit) + } } -if err := r.PullDefault(); err != nil { - panic(err) +// A simple proxy filesystem example: It mimics local filesystems, using +// 'base' as its root and a funny path separator ("--"). +// +// Example: when constructed with 'newFunnyFS("tmp")', a path like 'foo--bar' +// will represent the local path "/tmp/foo/bar". +type funnyFS struct { + base string } -hash, err := r.Remotes[git.DefaultRemoteName].Head() -if err != nil { - panic(err) +const separator = "--" + +func newFunnyFS(path string) *funnyFS { + return &funnyFS{ + base: path, + } } -commit, err := r.Commit(hash) -if err != nil { - panic(err) +func (funnyFS *funnyFS) Stat(path string) (info os.FileInfo, err error) { + f, err := os.Open(funnyFS.ToReal(path)) + if err != nil { + return nil, err + } + + defer func() { + errClose := f.Close() + if err == nil { + err = errClose + } + }() + + return f.Stat() +} + +func (funnyFS *funnyFS) ToReal(path string) string { + parts := strings.Split(path, separator) + return filepath.Join(funnyFS.base, filepath.Join(parts...)) +} + +func (funnyFS *funnyFS) Open(path string) (fs.ReadSeekCloser, error) { + return os.Open(funnyFS.ToReal(path)) +} + +func (funnyFS *funnyFS) ReadDir(path string) ([]os.FileInfo, error) { + return ioutil.ReadDir(funnyFS.ToReal(path)) +} + +func (funnyFS *funnyFS) Join(elem ...string) string { + return strings.Join(elem, separator) } -fmt.Println(commit) ``` Wrapping From 5c0059b77add03ee4bde7db8e02cac80c7813562 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Mon, 4 Jul 2016 11:29:30 +0200 Subject: [PATCH 139/143] Readability fixes to README --- README.md | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 4613d60ba..5ed8d25f6 100644 --- a/README.md +++ b/README.md @@ -139,9 +139,9 @@ import ( func main() { fs := fs.NewOS() // a simple proxy for the local host filesystem - localRepo := "/tmp/go-git/.git" + path := "/tmp/go-git/.git" - repo, err := git.NewRepositoryFromFS(fs, localRepo) + repo, err := git.NewRepositoryFromFS(fs, path) if err != nil { panic(err) } @@ -235,7 +235,7 @@ func newFunnyFS(path string) *funnyFS { } func (funnyFS *funnyFS) Stat(path string) (info os.FileInfo, err error) { - f, err := os.Open(funnyFS.ToReal(path)) + f, err := os.Open(funnyFS.toReal(path)) if err != nil { return nil, err } @@ -250,23 +250,22 @@ func (funnyFS *funnyFS) Stat(path string) (info os.FileInfo, err error) { return f.Stat() } -func (funnyFS *funnyFS) ToReal(path string) string { +func (funnyFS *funnyFS) toReal(path string) string { parts := strings.Split(path, separator) return filepath.Join(funnyFS.base, filepath.Join(parts...)) } func (funnyFS *funnyFS) Open(path string) (fs.ReadSeekCloser, error) { - return os.Open(funnyFS.ToReal(path)) + return os.Open(funnyFS.toReal(path)) } func (funnyFS *funnyFS) ReadDir(path string) ([]os.FileInfo, error) { - return ioutil.ReadDir(funnyFS.ToReal(path)) + return ioutil.ReadDir(funnyFS.toReal(path)) } func (funnyFS *funnyFS) Join(elem ...string) string { return strings.Join(elem, separator) } - ``` Wrapping From a2f6e58cde9ac99a1e614aafbc4edcc2715c15e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Mon, 4 Jul 2016 15:47:27 +0200 Subject: [PATCH 140/143] move tgz to an external dependency --- clients/common_test.go | 2 +- repository_test.go | 2 +- .../gitdir/{dir_test.go => gitdir_test.go} | 2 +- storage/proxy/store_test.go | 2 +- utils/fs/os_test.go | 2 +- utils/tgz/fixtures/invalid-gzip.tgz | Bin 10 -> 0 bytes utils/tgz/fixtures/not-a-tar.tgz | Bin 37 -> 0 bytes utils/tgz/fixtures/test-01.tgz | Bin 146 -> 0 bytes utils/tgz/fixtures/test-02.tgz | Bin 143 -> 0 bytes utils/tgz/fixtures/test-03.tgz | Bin 264 -> 0 bytes utils/tgz/tgz.go | 117 ------------------ utils/tgz/tgz_test.go | 108 ---------------- 12 files changed, 5 insertions(+), 230 deletions(-) rename storage/proxy/internal/gitdir/{dir_test.go => gitdir_test.go} (99%) delete mode 100644 utils/tgz/fixtures/invalid-gzip.tgz delete mode 100644 utils/tgz/fixtures/not-a-tar.tgz delete mode 100644 utils/tgz/fixtures/test-01.tgz delete mode 100644 utils/tgz/fixtures/test-02.tgz delete mode 100644 utils/tgz/fixtures/test-03.tgz delete mode 100644 utils/tgz/tgz.go delete mode 100644 utils/tgz/tgz_test.go diff --git a/clients/common_test.go b/clients/common_test.go index 770d19be6..7bebab367 100644 --- a/clients/common_test.go +++ b/clients/common_test.go @@ -7,8 +7,8 @@ import ( "testing" "gopkg.in/src-d/go-git.v3/clients/common" - "gopkg.in/src-d/go-git.v3/utils/tgz" + "github.com/alcortesm/tgz" . "gopkg.in/check.v1" ) diff --git a/repository_test.go b/repository_test.go index c15cfe20c..7cc8d71e4 100644 --- a/repository_test.go +++ b/repository_test.go @@ -8,8 +8,8 @@ import ( "gopkg.in/src-d/go-git.v3/core" "gopkg.in/src-d/go-git.v3/storage/proxy" "gopkg.in/src-d/go-git.v3/utils/fs" - "gopkg.in/src-d/go-git.v3/utils/tgz" + "github.com/alcortesm/tgz" . "gopkg.in/check.v1" ) diff --git a/storage/proxy/internal/gitdir/dir_test.go b/storage/proxy/internal/gitdir/gitdir_test.go similarity index 99% rename from storage/proxy/internal/gitdir/dir_test.go rename to storage/proxy/internal/gitdir/gitdir_test.go index 2024354a6..750411969 100644 --- a/storage/proxy/internal/gitdir/dir_test.go +++ b/storage/proxy/internal/gitdir/gitdir_test.go @@ -9,8 +9,8 @@ import ( "gopkg.in/src-d/go-git.v3/clients/common" "gopkg.in/src-d/go-git.v3/core" "gopkg.in/src-d/go-git.v3/utils/fs" - "gopkg.in/src-d/go-git.v3/utils/tgz" + "github.com/alcortesm/tgz" . "gopkg.in/check.v1" ) diff --git a/storage/proxy/store_test.go b/storage/proxy/store_test.go index 026c31302..63f49a84c 100644 --- a/storage/proxy/store_test.go +++ b/storage/proxy/store_test.go @@ -13,8 +13,8 @@ import ( "gopkg.in/src-d/go-git.v3/storage/proxy" "gopkg.in/src-d/go-git.v3/storage/proxy/internal/gitdir" "gopkg.in/src-d/go-git.v3/utils/fs" - "gopkg.in/src-d/go-git.v3/utils/tgz" + "github.com/alcortesm/tgz" . "gopkg.in/check.v1" ) diff --git a/utils/fs/os_test.go b/utils/fs/os_test.go index dd9d21648..208e8f38c 100644 --- a/utils/fs/os_test.go +++ b/utils/fs/os_test.go @@ -5,8 +5,8 @@ import ( "os" "testing" + "github.com/alcortesm/tgz" . "gopkg.in/check.v1" - "gopkg.in/src-d/go-git.v3/utils/tgz" ) func Test(t *testing.T) { TestingT(t) } diff --git a/utils/tgz/fixtures/invalid-gzip.tgz b/utils/tgz/fixtures/invalid-gzip.tgz deleted file mode 100644 index cb43b5ce1342e5d73830ac8b6a37ea870fae2632..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10 KcmZQzfB^si3IG8B diff --git a/utils/tgz/fixtures/not-a-tar.tgz b/utils/tgz/fixtures/not-a-tar.tgz deleted file mode 100644 index 3afd7b12d9ae8eb62caf0ff0e188af23618b049c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 37 qcmb2|=HQr~7#PmLoR?pso2XloSfmHU49N)%j0|NNU5~jK7#IN0=?cF9 diff --git a/utils/tgz/fixtures/test-01.tgz b/utils/tgz/fixtures/test-01.tgz deleted file mode 100644 index c922f2935d82cb5d3ff726892aca0c3630914ea7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 146 zcmb2|=3sE%?iIHw+e_nFIht>I!Lw|gF#>=2vN1b2%*150H z$TEL!ipBNJbM94V-`UPT!p^(V`_<9P_g(^%kMCF8l%E^dJMm}P&UI_+?))~h*RKc=hjz8bHa4u8ZmDWp_zsv8M;-jg#C;y@X ze_MOj&Nshyo}Tq3t>>eiuKM3O`APF^tGsT;Ub)lm*tG7~>gks^PPb&y48D7QZ*A@N sE&qc{wQj%4|9J7f+pqtJ7H;kRdj0v|^k2*jNWgoY(3Jzi3>pj!0L0`(umAu6 diff --git a/utils/tgz/fixtures/test-03.tgz b/utils/tgz/fixtures/test-03.tgz deleted file mode 100644 index 142da5ddf5dd15edf4350018e4a1c8cacdbd1c62..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 264 zcmV+j0r&nNiwFShZBbVM1MSyQYJ@Nl#_=4*6Le>inaOz!v`+=WwNQHcCW_!oX+xQ? z3*Ya>2L*+{8Dp8(TX05IR&7VlO4s8laLiGnnHmRTmYl<+-VfG%+_!n1rZB&k*L7Qd zyzaO2PpZ`ZZ_DzseQs{|Xn{@SZ~et;|3oZdBDW{HK>u5rzaFRmzWx(YME? Date: Mon, 4 Jul 2016 16:13:43 +0200 Subject: [PATCH 141/143] move filesystem impl. example to example dir --- README.md | 103 +------------ examples/fs_implementation/main.go | 103 +++++++++++++ examples/fs_implementation/main_test.go | 195 ++++++++++++++++++++++++ 3 files changed, 301 insertions(+), 100 deletions(-) create mode 100644 examples/fs_implementation/main.go create mode 100644 examples/fs_implementation/main_test.go diff --git a/README.md b/README.md index 5ed8d25f6..7d0aa890e 100644 --- a/README.md +++ b/README.md @@ -167,106 +167,9 @@ func main() { ``` Implementing your own filesystem will let you access repositories stored on -remote services (e.g. amazon S3): - -```go -package main - -import ( - "fmt" - "io" - "io/ioutil" - "os" - "path/filepath" - "strings" - - "gopkg.in/src-d/go-git.v3" - "gopkg.in/src-d/go-git.v3/utils/fs" -) - -func main() { - // use an add-hoc filesystem implementation, see bellow - funnyFS := newFunnyFS("/tmp") - - // local git dir path for the funny filesystem - // (equivalent to /tmp/go-git/.git in the local filesystem) - funnyPath := "go-git--.git" - - repo, err := git.NewRepositoryFromFS(funnyFS, funnyPath) - if err != nil { - panic(err) - } - - iter, err := repo.Commits() - if err != nil { - panic(err) - } - defer iter.Close() - - for { - commit, err := iter.Next() - if err != nil { - if err == io.EOF { - break - } - - panic(err) - } - - fmt.Println(commit) - } -} - -// A simple proxy filesystem example: It mimics local filesystems, using -// 'base' as its root and a funny path separator ("--"). -// -// Example: when constructed with 'newFunnyFS("tmp")', a path like 'foo--bar' -// will represent the local path "/tmp/foo/bar". -type funnyFS struct { - base string -} - -const separator = "--" - -func newFunnyFS(path string) *funnyFS { - return &funnyFS{ - base: path, - } -} - -func (funnyFS *funnyFS) Stat(path string) (info os.FileInfo, err error) { - f, err := os.Open(funnyFS.toReal(path)) - if err != nil { - return nil, err - } - - defer func() { - errClose := f.Close() - if err == nil { - err = errClose - } - }() - - return f.Stat() -} - -func (funnyFS *funnyFS) toReal(path string) string { - parts := strings.Split(path, separator) - return filepath.Join(funnyFS.base, filepath.Join(parts...)) -} - -func (funnyFS *funnyFS) Open(path string) (fs.ReadSeekCloser, error) { - return os.Open(funnyFS.toReal(path)) -} - -func (funnyFS *funnyFS) ReadDir(path string) ([]os.FileInfo, error) { - return ioutil.ReadDir(funnyFS.toReal(path)) -} - -func (funnyFS *funnyFS) Join(elem ...string) string { - return strings.Join(elem, separator) -} -``` +remote services (e.g. amazon S3), see the +[examples](https://github.com/src-d/go-git/tree/master/examples/fs_implementation/) +directory for a simple filesystem implementation and usage. Wrapping -------- diff --git a/examples/fs_implementation/main.go b/examples/fs_implementation/main.go new file mode 100644 index 000000000..0371f7f01 --- /dev/null +++ b/examples/fs_implementation/main.go @@ -0,0 +1,103 @@ +package main + +import ( + "fmt" + "io" + "io/ioutil" + "os" + "path/filepath" + "strings" + + "gopkg.in/src-d/go-git.v3" + gogitFS "gopkg.in/src-d/go-git.v3/utils/fs" +) + +func main() { + if len(os.Args) != 2 { + usage() + os.Exit(1) + } + + fs := newFS(os.Args[1]) + + repo, err := git.NewRepositoryFromFS(fs, ".git") + if err != nil { + fmt.Fprint(os.Stderr, err) + os.Exit(1) + } + + iter, err := repo.Commits() + if err != nil { + fmt.Fprint(os.Stderr, err) + os.Exit(1) + } + defer iter.Close() + + for { + commit, err := iter.Next() + if err != nil { + if err == io.EOF { + break + } + + fmt.Fprint(os.Stderr, err) + os.Exit(1) + } + + fmt.Println(commit) + } +} + +func usage() { + fmt.Fprintf(os.Stderr, "%s ", os.Args[0]) +} + +// A simple proxy filesystem example: It mimics local filesystems, using +// 'base' as its root and a funny path separator ("--"). +// +// Example: when constructed with 'newFS("tmp")', a path like 'foo--bar' +// will represent the local path "/tmp/foo/bar". +type fs struct { + base string +} + +const separator = "--" + +func newFS(path string) *fs { + return &fs{ + base: path, + } +} + +func (fs *fs) Stat(path string) (info os.FileInfo, err error) { + f, err := os.Open(fs.ToReal(path)) + if err != nil { + return nil, err + } + + defer func() { + errClose := f.Close() + if err == nil { + err = errClose + } + }() + + return f.Stat() +} + +func (fs *fs) ToReal(path string) string { + parts := strings.Split(path, separator) + return filepath.Join(fs.base, filepath.Join(parts...)) +} + +func (fs *fs) Open(path string) (gogitFS.ReadSeekCloser, error) { + return os.Open(fs.ToReal(path)) +} + +func (fs *fs) ReadDir(path string) ([]os.FileInfo, error) { + return ioutil.ReadDir(fs.ToReal(path)) +} + +func (fs *fs) Join(elem ...string) string { + return strings.Join(elem, separator) +} diff --git a/examples/fs_implementation/main_test.go b/examples/fs_implementation/main_test.go new file mode 100644 index 000000000..09ada855e --- /dev/null +++ b/examples/fs_implementation/main_test.go @@ -0,0 +1,195 @@ +package main + +import ( + "io/ioutil" + "os" + "path/filepath" + "reflect" + "regexp" + "testing" + + "github.com/alcortesm/tgz" +) + +func TestMain(m *testing.M) { + setUp() + rval := m.Run() + tearDown() + os.Exit(rval) +} + +func setUp() { + var err error + repo, err = tgz.Extract("../../storage/proxy/internal/gitdir/fixtures/spinnaker-gc.tgz") + if err != nil { + panic(err) + } +} + +var repo string + +func tearDown() { + err := os.RemoveAll(repo) + if err != nil { + panic(err) + } +} + +func TestJoin(t *testing.T) { + fs := newFS("") + for i, test := range [...]struct { + input []string + expected string + }{ + { + input: []string{}, + expected: "", + }, { + input: []string{"a"}, + expected: "a", + }, { + input: []string{"a", "b"}, + expected: "a--b", + }, { + input: []string{"a", "b", "c"}, + expected: "a--b--c", + }, + } { + obtained := fs.Join(test.input...) + if obtained != test.expected { + t.Fatalf("test %d:\n\tinput = %v\n\tobtained = %v\n\texpected = %v\n", + i, test.input, obtained, test.expected) + } + } +} + +func TestStat(t *testing.T) { + fs := newFS(filepath.Join(repo, ".git/")) + for i, path := range [...]string{ + "index", + "info--refs", + "objects--pack--pack-584416f86235cac0d54bfabbdc399fb2b09a5269.pack", + } { + real, err := os.Open(fs.ToReal(path)) + if err != nil { + t.Fatalf("test %d: openning real: %s", err) + } + + expected, err := real.Stat() + if err != nil { + t.Fatalf("test %d: stat on real: %s", err) + } + + obtained, err := fs.Stat(path) + if err != nil { + t.Fatalf("test %d: fs.Stat unexpected error: %s", i, err) + } + + if !reflect.DeepEqual(obtained, expected) { + t.Fatalf("test %d:\n\tinput = %s\n\tobtained = %v\n\texpected = %v\n", + i, path, obtained, expected) + } + + err = real.Close() + if err != nil { + t.Fatalf("test %d: closing real: %s", i, err) + } + } +} + +func TestStatErrors(t *testing.T) { + fs := newFS(filepath.Join(repo, ".git/")) + for i, test := range [...]struct { + input string + errRegExp string + }{ + { + input: "bla", + errRegExp: ".*bla: no such file or directory", + }, { + input: "bla--foo", + errRegExp: ".*bla/foo: no such file or directory", + }, + } { + expected := regexp.MustCompile(test.errRegExp) + + _, err := fs.Stat(test.input) + if err == nil { + t.Fatalf("test %d: no error returned", i) + } + if !expected.MatchString(err.Error()) { + t.Fatalf("test %d: error missmatch\n\tobtained = %q\n\texpected regexp = %q\n", + i, err.Error(), test.errRegExp) + } + } +} + +func TestOpen(t *testing.T) { + fs := newFS(filepath.Join(repo, ".git/")) + for i, path := range [...]string{ + "index", + "info--refs", + "objects--pack--pack-584416f86235cac0d54bfabbdc399fb2b09a5269.pack", + } { + real, err := os.Open(fs.ToReal(path)) + if err != nil { + t.Fatalf("test %d: openning real: %s", err) + } + + realData, err := ioutil.ReadAll(real) + if err != nil { + t.Fatal("test %d: ioutil.ReadAll on real: %s", err) + } + + err = real.Close() + if err != nil { + t.Fatal("test %d: closing real: %s", err) + } + + obtained, err := fs.Open(path) + if err != nil { + t.Fatalf("test %d: fs.Open unexpected error: %s", i, err) + } + + obtainedData, err := ioutil.ReadAll(obtained) + if err != nil { + t.Fatal("test %d: ioutil.ReadAll on obtained: %s", err) + } + + err = obtained.Close() + if err != nil { + t.Fatal("test %d: closing obtained: %s", err) + } + + if !reflect.DeepEqual(obtainedData, realData) { + t.Fatalf("test %d:\n\tinput = %s\n\tobtained = %v\n\texpected = %v\n", + i, path, obtainedData, realData) + } + } +} + +func TestReadDir(t *testing.T) { + fs := newFS(filepath.Join(repo, ".git/")) + for i, path := range [...]string{ + "info", + ".", + "", + "objects", + "objects--pack", + } { + expected, err := ioutil.ReadDir(fs.ToReal(path)) + if err != nil { + t.Fatalf("test %d: real ReadDir: %s", err) + } + + obtained, err := fs.ReadDir(path) + if err != nil { + t.Fatalf("test %d: fs.ReadDir unexpected error: %s", i, err) + } + + if !reflect.DeepEqual(obtained, expected) { + t.Fatalf("test %d:\n\tinput = %s\n\tobtained = %v\n\texpected = %v\n", + i, path, obtained, expected) + } + } +} From c5b10d991b636e153ee8ad2d8621d26483fdda0d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Mon, 4 Jul 2016 16:24:56 +0200 Subject: [PATCH 142/143] rename proxy/store.go to proxy/storage.go for coherence with memory/storage.go --- storage/proxy/{store.go => storage.go} | 0 storage/proxy/{store_test.go => storage_test.go} | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename storage/proxy/{store.go => storage.go} (100%) rename storage/proxy/{store_test.go => storage_test.go} (100%) diff --git a/storage/proxy/store.go b/storage/proxy/storage.go similarity index 100% rename from storage/proxy/store.go rename to storage/proxy/storage.go diff --git a/storage/proxy/store_test.go b/storage/proxy/storage_test.go similarity index 100% rename from storage/proxy/store_test.go rename to storage/proxy/storage_test.go From 9924a98455b6bb9ba907b86ad5e20d82124831ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cort=C3=A9s?= Date: Mon, 4 Jul 2016 16:33:45 +0200 Subject: [PATCH 143/143] rename proxy package to seekable --- clients/common_test.go | 2 +- examples/fs_implementation/main_test.go | 2 +- repository.go | 4 ++-- repository_test.go | 6 ++--- .../alcortesm-binary-relations-no-idx.tgz | Bin .../fixtures/alcortesm-binary-relations.tgz | Bin .../internal/gitdir/fixtures/empty-gitdir.tgz | Bin .../gitdir/fixtures/no-packfile-no-idx.tgz | Bin .../gitdir/fixtures/ref-deltas-no-idx.tgz | Bin .../internal/gitdir/fixtures/spinnaker-gc.tgz | Bin .../gitdir/fixtures/spinnaker-no-idx.tgz | Bin .../internal/gitdir/gitdir.go | 0 .../internal/gitdir/gitdir_test.go | 0 .../internal/gitdir/refs.go | 0 .../internal/index/index.go | 0 .../internal/index/index_test.go | 0 storage/{proxy => seekable}/storage.go | 6 ++--- storage/{proxy => seekable}/storage_test.go | 22 +++++++++--------- utils/fs/os_test.go | 2 +- 19 files changed, 22 insertions(+), 22 deletions(-) rename storage/{proxy => seekable}/internal/gitdir/fixtures/alcortesm-binary-relations-no-idx.tgz (100%) rename storage/{proxy => seekable}/internal/gitdir/fixtures/alcortesm-binary-relations.tgz (100%) rename storage/{proxy => seekable}/internal/gitdir/fixtures/empty-gitdir.tgz (100%) rename storage/{proxy => seekable}/internal/gitdir/fixtures/no-packfile-no-idx.tgz (100%) rename storage/{proxy => seekable}/internal/gitdir/fixtures/ref-deltas-no-idx.tgz (100%) rename storage/{proxy => seekable}/internal/gitdir/fixtures/spinnaker-gc.tgz (100%) rename storage/{proxy => seekable}/internal/gitdir/fixtures/spinnaker-no-idx.tgz (100%) rename storage/{proxy => seekable}/internal/gitdir/gitdir.go (100%) rename storage/{proxy => seekable}/internal/gitdir/gitdir_test.go (100%) rename storage/{proxy => seekable}/internal/gitdir/refs.go (100%) rename storage/{proxy => seekable}/internal/index/index.go (100%) rename storage/{proxy => seekable}/internal/index/index_test.go (100%) rename storage/{proxy => seekable}/storage.go (95%) rename storage/{proxy => seekable}/storage_test.go (92%) diff --git a/clients/common_test.go b/clients/common_test.go index 7bebab367..c571f04d4 100644 --- a/clients/common_test.go +++ b/clients/common_test.go @@ -20,7 +20,7 @@ type SuiteCommon struct { var _ = Suite(&SuiteCommon{}) -const fixtureTGZ = "../storage/proxy/internal/gitdir/fixtures/spinnaker-gc.tgz" +const fixtureTGZ = "../storage/seekable/internal/gitdir/fixtures/spinnaker-gc.tgz" func (s *SuiteCommon) SetUpSuite(c *C) { var err error diff --git a/examples/fs_implementation/main_test.go b/examples/fs_implementation/main_test.go index 09ada855e..4f138c2f5 100644 --- a/examples/fs_implementation/main_test.go +++ b/examples/fs_implementation/main_test.go @@ -20,7 +20,7 @@ func TestMain(m *testing.M) { func setUp() { var err error - repo, err = tgz.Extract("../../storage/proxy/internal/gitdir/fixtures/spinnaker-gc.tgz") + repo, err = tgz.Extract("../../storage/seekable/internal/gitdir/fixtures/spinnaker-gc.tgz") if err != nil { panic(err) } diff --git a/repository.go b/repository.go index 5bbe87a36..c05afdb6d 100644 --- a/repository.go +++ b/repository.go @@ -8,7 +8,7 @@ import ( "gopkg.in/src-d/go-git.v3/core" "gopkg.in/src-d/go-git.v3/formats/packfile" "gopkg.in/src-d/go-git.v3/storage/memory" - "gopkg.in/src-d/go-git.v3/storage/proxy" + "gopkg.in/src-d/go-git.v3/storage/seekable" "gopkg.in/src-d/go-git.v3/utils/fs" ) @@ -56,7 +56,7 @@ func NewRepositoryFromFS(fs fs.FS, path string) (*Repository, error) { repo := NewPlainRepository() var err error - repo.Storage, err = proxy.New(fs, path) + repo.Storage, err = seekable.New(fs, path) return repo, err } diff --git a/repository_test.go b/repository_test.go index 7cc8d71e4..7d4abb586 100644 --- a/repository_test.go +++ b/repository_test.go @@ -6,7 +6,7 @@ import ( "gopkg.in/src-d/go-git.v3/clients/http" "gopkg.in/src-d/go-git.v3/core" - "gopkg.in/src-d/go-git.v3/storage/proxy" + "gopkg.in/src-d/go-git.v3/storage/seekable" "gopkg.in/src-d/go-git.v3/utils/fs" "github.com/alcortesm/tgz" @@ -19,7 +19,7 @@ var dirFixtures = [...]struct { }{ { name: "binrels", - tgz: "storage/proxy/internal/gitdir/fixtures/alcortesm-binary-relations.tgz", + tgz: "storage/seekable/internal/gitdir/fixtures/alcortesm-binary-relations.tgz", }, } @@ -77,7 +77,7 @@ func (s *SuiteRepository) TestNewRepositoryFromFS(c *C) { c.Assert(err, ErrorMatches, `unable to find remote "origin"`) c.Assert(repo.Storage, NotNil, com) - c.Assert(repo.Storage, FitsTypeOf, &proxy.ObjectStorage{}, com) + c.Assert(repo.Storage, FitsTypeOf, &seekable.ObjectStorage{}, com) } } diff --git a/storage/proxy/internal/gitdir/fixtures/alcortesm-binary-relations-no-idx.tgz b/storage/seekable/internal/gitdir/fixtures/alcortesm-binary-relations-no-idx.tgz similarity index 100% rename from storage/proxy/internal/gitdir/fixtures/alcortesm-binary-relations-no-idx.tgz rename to storage/seekable/internal/gitdir/fixtures/alcortesm-binary-relations-no-idx.tgz diff --git a/storage/proxy/internal/gitdir/fixtures/alcortesm-binary-relations.tgz b/storage/seekable/internal/gitdir/fixtures/alcortesm-binary-relations.tgz similarity index 100% rename from storage/proxy/internal/gitdir/fixtures/alcortesm-binary-relations.tgz rename to storage/seekable/internal/gitdir/fixtures/alcortesm-binary-relations.tgz diff --git a/storage/proxy/internal/gitdir/fixtures/empty-gitdir.tgz b/storage/seekable/internal/gitdir/fixtures/empty-gitdir.tgz similarity index 100% rename from storage/proxy/internal/gitdir/fixtures/empty-gitdir.tgz rename to storage/seekable/internal/gitdir/fixtures/empty-gitdir.tgz diff --git a/storage/proxy/internal/gitdir/fixtures/no-packfile-no-idx.tgz b/storage/seekable/internal/gitdir/fixtures/no-packfile-no-idx.tgz similarity index 100% rename from storage/proxy/internal/gitdir/fixtures/no-packfile-no-idx.tgz rename to storage/seekable/internal/gitdir/fixtures/no-packfile-no-idx.tgz diff --git a/storage/proxy/internal/gitdir/fixtures/ref-deltas-no-idx.tgz b/storage/seekable/internal/gitdir/fixtures/ref-deltas-no-idx.tgz similarity index 100% rename from storage/proxy/internal/gitdir/fixtures/ref-deltas-no-idx.tgz rename to storage/seekable/internal/gitdir/fixtures/ref-deltas-no-idx.tgz diff --git a/storage/proxy/internal/gitdir/fixtures/spinnaker-gc.tgz b/storage/seekable/internal/gitdir/fixtures/spinnaker-gc.tgz similarity index 100% rename from storage/proxy/internal/gitdir/fixtures/spinnaker-gc.tgz rename to storage/seekable/internal/gitdir/fixtures/spinnaker-gc.tgz diff --git a/storage/proxy/internal/gitdir/fixtures/spinnaker-no-idx.tgz b/storage/seekable/internal/gitdir/fixtures/spinnaker-no-idx.tgz similarity index 100% rename from storage/proxy/internal/gitdir/fixtures/spinnaker-no-idx.tgz rename to storage/seekable/internal/gitdir/fixtures/spinnaker-no-idx.tgz diff --git a/storage/proxy/internal/gitdir/gitdir.go b/storage/seekable/internal/gitdir/gitdir.go similarity index 100% rename from storage/proxy/internal/gitdir/gitdir.go rename to storage/seekable/internal/gitdir/gitdir.go diff --git a/storage/proxy/internal/gitdir/gitdir_test.go b/storage/seekable/internal/gitdir/gitdir_test.go similarity index 100% rename from storage/proxy/internal/gitdir/gitdir_test.go rename to storage/seekable/internal/gitdir/gitdir_test.go diff --git a/storage/proxy/internal/gitdir/refs.go b/storage/seekable/internal/gitdir/refs.go similarity index 100% rename from storage/proxy/internal/gitdir/refs.go rename to storage/seekable/internal/gitdir/refs.go diff --git a/storage/proxy/internal/index/index.go b/storage/seekable/internal/index/index.go similarity index 100% rename from storage/proxy/internal/index/index.go rename to storage/seekable/internal/index/index.go diff --git a/storage/proxy/internal/index/index_test.go b/storage/seekable/internal/index/index_test.go similarity index 100% rename from storage/proxy/internal/index/index_test.go rename to storage/seekable/internal/index/index_test.go diff --git a/storage/proxy/storage.go b/storage/seekable/storage.go similarity index 95% rename from storage/proxy/storage.go rename to storage/seekable/storage.go index 3be107b89..8d75700cf 100644 --- a/storage/proxy/storage.go +++ b/storage/seekable/storage.go @@ -1,4 +1,4 @@ -package proxy +package seekable import ( "fmt" @@ -6,8 +6,8 @@ import ( "gopkg.in/src-d/go-git.v3/core" "gopkg.in/src-d/go-git.v3/formats/packfile" - "gopkg.in/src-d/go-git.v3/storage/proxy/internal/gitdir" - "gopkg.in/src-d/go-git.v3/storage/proxy/internal/index" + "gopkg.in/src-d/go-git.v3/storage/seekable/internal/gitdir" + "gopkg.in/src-d/go-git.v3/storage/seekable/internal/index" "gopkg.in/src-d/go-git.v3/utils/fs" ) diff --git a/storage/proxy/storage_test.go b/storage/seekable/storage_test.go similarity index 92% rename from storage/proxy/storage_test.go rename to storage/seekable/storage_test.go index 63f49a84c..bc0ad3d52 100644 --- a/storage/proxy/storage_test.go +++ b/storage/seekable/storage_test.go @@ -1,4 +1,4 @@ -package proxy_test +package seekable_test import ( "fmt" @@ -10,8 +10,8 @@ import ( "gopkg.in/src-d/go-git.v3/core" "gopkg.in/src-d/go-git.v3/formats/packfile" "gopkg.in/src-d/go-git.v3/storage/memory" - "gopkg.in/src-d/go-git.v3/storage/proxy" - "gopkg.in/src-d/go-git.v3/storage/proxy/internal/gitdir" + "gopkg.in/src-d/go-git.v3/storage/seekable" + "gopkg.in/src-d/go-git.v3/storage/seekable/internal/gitdir" "gopkg.in/src-d/go-git.v3/utils/fs" "github.com/alcortesm/tgz" @@ -67,7 +67,7 @@ func (s *FsSuite) TearDownSuite(c *C) { func (s *FsSuite) TestNewErrorNotFound(c *C) { fs := fs.NewOS() - _, err := proxy.New(fs, "not_found/.git") + _, err := seekable.New(fs, "not_found/.git") c.Assert(err, Equals, gitdir.ErrNotFound) } @@ -77,7 +77,7 @@ func (s *FsSuite) TestHashNotFound(c *C) { fs := fs.NewOS() gitPath := fs.Join(path, ".git/") - sto, err := proxy.New(fs, gitPath) + sto, err := seekable.New(fs, gitPath) c.Assert(err, IsNil) _, err = sto.Get(core.ZeroHash) @@ -100,10 +100,10 @@ func (s *FsSuite) TestGetCompareWithMemoryStorage(c *C) { memSto, err := memStorageFromGitDir(fs, gitPath) c.Assert(err, IsNil, com) - proxySto, err := proxy.New(fs, gitPath) + seekableSto, err := seekable.New(fs, gitPath) c.Assert(err, IsNil, com) - equal, reason, err := equalsStorages(memSto, proxySto) + equal, reason, err := equalsStorages(memSto, seekableSto) c.Assert(err, IsNil, com) c.Assert(equal, Equals, true, Commentf("%s - %s\n", com.CheckCommentString(), reason)) @@ -227,7 +227,7 @@ func (s *FsSuite) TestIterCompareWithMemoryStorage(c *C) { memSto, err := memStorageFromDirPath(fs, gitPath) c.Assert(err, IsNil, com) - proxySto, err := proxy.New(fs, gitPath) + seekableSto, err := seekable.New(fs, gitPath) c.Assert(err, IsNil, com) for _, typ := range [...]core.ObjectType{ @@ -240,11 +240,11 @@ func (s *FsSuite) TestIterCompareWithMemoryStorage(c *C) { memObjs, err := iterToSortedSlice(memSto, typ) c.Assert(err, IsNil, com) - proxyObjs, err := iterToSortedSlice(proxySto, typ) + seekableObjs, err := iterToSortedSlice(seekableSto, typ) c.Assert(err, IsNil, com) for i, o := range memObjs { - c.Assert(proxyObjs[i].Hash(), Equals, o.Hash(), com) + c.Assert(seekableObjs[i].Hash(), Equals, o.Hash(), com) } } } @@ -318,7 +318,7 @@ func (s *FsSuite) TestSet(c *C) { fs := fs.NewOS() gitPath := fs.Join(path, ".git/") - sto, err := proxy.New(fs, gitPath) + sto, err := seekable.New(fs, gitPath) c.Assert(err, IsNil) _, err = sto.Set(&memory.Object{}) diff --git a/utils/fs/os_test.go b/utils/fs/os_test.go index 208e8f38c..84fe895fc 100644 --- a/utils/fs/os_test.go +++ b/utils/fs/os_test.go @@ -18,7 +18,7 @@ type FSImplSuite struct { var _ = Suite(&FSImplSuite{}) func (s *FSImplSuite) SetUpSuite(c *C) { - dir, err := tgz.Extract("../../storage/proxy/internal/gitdir/fixtures/spinnaker-gc.tgz") + dir, err := tgz.Extract("../../storage/seekable/internal/gitdir/fixtures/spinnaker-gc.tgz") c.Assert(err, IsNil) s.dir = dir }

      bSz;jEOv37k2^lgX%d%L48?AR3Eqjm;& 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 a4sm(>jMRD_a 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