aboutsummaryrefslogtreecommitdiffstats
path: root/storage/filesystem/internal/dotgit/dotgit.go
Commit message (Collapse)AuthorAgeFilesLines
* storage: filesystem, add support for git alternates (#663)Sunny2017-12-061-1/+44
| | | | This change adds a new method Alternates() in DotGit to check and query alternate source.
* dotgit: use Equal method of time.Time for equalityferhat elmas2017-12-041-1/+1
|
* dotgit: rewrite packed-refs while holding lockJeremy Stribling2017-11-301-60/+53
| | | | | | Windows file system doesn't let us rename over a file while holding that file's lock, so use rewrite as a last resort. It could result in a partially-written file, if there's a failure at the wrong time.
* dotgit: open+lock packed-refs file until it doesn't changeJeremy Stribling2017-11-291-18/+46
| | | | Windows doesn't like it when we re-open a file we already have locked.
* Make object repacking more configurableTaru Karttunen2017-11-291-2/+14
|
* Support for repacking objectsTaru Karttunen2017-11-291-13/+21
|
* First pass of prune designTaru Karttunen2017-11-291-10/+38
|
* dotgit: use bufio for PackRefsJeremy Stribling2017-11-291-10/+8
| | | | | | Suggested by taruti. Issue: #13
* dotgit: during rewriting, re-open packed-refs after lockingJeremy Stribling2017-11-291-9/+21
| | | | | | The file could have been completely replaced while waiting for the lock, so we need to re-open, otherwise we might be reading a stale file that has already been deleted/overwritten.
* filesystem: todo comment about "all" paramJeremy Stribling2017-11-291-0/+4
| | | | Issue: KBFS-2517
* dotgit: fix up PackRefs comment for upstreamingJeremy Stribling2017-11-291-26/+8
|
* filesystem: implement PackRefs()Jeremy Stribling2017-11-291-0/+115
| | | | | | | | | | Currently this implementation is only valid for kbfsgit, since it assumes some things about the filesystem not being updated during the packing, and about conflict resolution rules. In the future, it would be nice to replace this with a more general one, and move this kbfsgit-optimized implementation into kbfsgit. Issue: KBFS-2517
* all: simplificationferhat elmas2017-11-291-5/+1
| | | | | | | | | | - no length for map initialization - don't check for boolean/error return - don't format string - use string method of bytes buffer instead of converting bytes to string - use `strings.Contains` instead of `strings.Index` - use `bytes.Equal` instead of `bytes.Compare`
* Merge remote-tracking branch 'src-d/master' into gh-fast-forward-fetchJeremy Stribling2017-11-281-6/+36
|\
| * dotgit: don't list references twiceJeremy Stribling2017-11-271-3/+8
| | | | | | | | Restore the `seen` map that avoided listing packed-refs twice.
| * dotgit: remove loose ref AND packed ref, if both existJeremy Stribling2017-11-271-3/+28
| | | | | | | | Issue: KBFS-2509
* | Document Lock+Close usageTaru Karttunen2017-11-271-0/+4
| |
* | Use optionally locking when updating refsTaru Karttunen2017-11-271-9/+53
|/
* update to go-billy.v4 and go-git-fixtures.v3Máximo Cuadros2017-11-231-1/+1
| | | | Signed-off-by: Máximo Cuadros <mcuadros@gmail.com>
* dotgit: remove ref cache for packed refsMiguel Molina2017-11-211-48/+29
| | | | Signed-off-by: Miguel Molina <miguel@erizocosmi.co>
* dotgit: avoid duplicated references returned by RefsMiguel Molina2017-08-291-10/+15
| | | | Signed-off-by: Miguel Molina <miguel@erizocosmi.co>
* dotgit: rewrite the way references are looked upMiguel Molina2017-08-261-24/+58
| | | | | | Now there's only two ways of getting a reference, by checking under refs/ directory or in packed-refs. refs/ directory is checked using a direct read by reference name and packed refs are cached until they have been changed. Signed-off-by: Miguel Molina <miguel@erizocosmi.co>
* Merge pull request #491 from smola/error-checksMáximo Cuadros2017-07-191-4/+4
|\ | | | | *: add more IO error checks
| * storage/filesystem: check all Close errorsSantiago M. Mola2017-07-191-4/+4
| |
* | storage: dotgit, fix test not closing filesMáximo Cuadros2017-07-191-0/+1
| |
* | storage: dotgit, close temp file before renameMáximo Cuadros2017-07-181-6/+9
|/
* Fixed modules directory pathCromel-PC\Cromel2017-06-281-1/+1
|
* *: upgrade to go-billy.v3, mergeMáximo Cuadros2017-06-181-13/+12
|
* storage/filesystem: call initialization explicitely, fixes #408Santiago M. Mola2017-06-011-1/+1
| | | | | | | | | | | | | filesystem.Storage was initializing the gitdir (creating objects and refs) on NewStorage. But this should be done only on init and clone operations, not on open. Now there is a new interface storer.Initializer that storers can implement if they need any initialization step before init or clone. filesystem.Storage is one of such implementations. git.Init and git.Clone now call to the storer Init() method if it does implement it. Otherwise, it just ignores initialization.
* storage: filesystem, initialize the default folder scaffoldingMáximo Cuadros2017-05-211-0/+27
|
* use go-billy.v2 versionAntonio Jesus Navarro Perez2017-03-101-1/+1
|
* project: move imports from srcd.works to gopkg.inAntonio Jesus Navarro Perez2017-03-071-3/+3
| | | | To be able to fix #261 we will move again to gopkg.in before v4 stable release.
* documentation and API improvementsMáximo Cuadros2017-02-211-14/+78
|
* storage: git.Storer move to storage.Storer and module handlingMáximo Cuadros2017-02-121-4/+9
|
* new srcd.works/go-git.v4 pathMáximo Cuadros2017-01-301-1/+1
|
* storage: IndexStorer implementationMáximo Cuadros2017-01-281-0/+11
|
* Extract billy (#173)Sergio Arbeo2016-12-191-10/+11
| | | | | | | | | | | | | | | * Extract billy Billy is a new library directly extracted from go-git. It abstract several storages systems in a filesystem interface. More in github.com/src-d/billy * Fix grouping in imports block * Update billy to v1 * Re-remove fs_implementation example
* storage: shallow storage (#180)Máximo Cuadros2016-12-151-1/+22
| | | | | | | | * storage: shallow storage * changes * changes
* new plumbing package (#118)Máximo Cuadros2016-11-081-25/+25
| | | * plumbing: now core was renamed to core, and formats and clients moved inside
* storage/filesystem: implement missing functionality. (#110)Santiago M. Mola2016-11-031-0/+21
| | | | | | | * storage/filesystem: added ObjectStorage Set. * storage/filesystem: now passes all tests, except those specific to transactions. * formats/config: Encoder now encodes subsections with no options. * formats/config: add HasSubsection on Section. * dotgit: add Ref method to get specific reference.
* formats: objfile idomatic reader/writerMáximo Cuadros2016-09-251-211/+137
|
* fix buildMáximo Cuadros2016-09-201-2/+2
|
* dotgit: synced write packfile and index generationMáximo Cuadros2016-09-151-32/+122
|
* format: packfile fix ReadObjectAt without decodeMáximo Cuadros2016-09-111-2/+11
|
* storage: filesystem ref storage, and not not exists file handlingMáximo Cuadros2016-09-101-2/+25
|
* storage: filessytem read multiple packfiles support and index decodingMáximo Cuadros2016-09-091-36/+75
|
* format: packfile based on ObjectStorage and CRC32 calculationMáximo Cuadros2016-09-081-23/+26
|
* format: packfile new interface (wip)Máximo Cuadros2016-09-061-1/+1
|
* storage: filesystem idx generation (wip)Máximo Cuadros2016-09-061-68/+136
|
* Support non packed objects (#68)sona-tar2016-08-301-0/+82
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Support non packed git objects * Support non packed git objects for Iterator * Fix error handling from Writer() in FillObject() * Fix format in func (r *Reader) FillObject(obj core.Object) error * Fix to return d.addRefsFromPackedRefs() error And if packed-refs dosen't exist not to return error in d.addRefsFromPackedRefs * Remove debug code * Add GoDoc for func (d *DotGit) Objectfile(h core.Hash) (fs.FS, string, error) * Add GoDoc for func (r *Reader) FillObject(obj core.Object) error * Add GoDoc for func (d *DotGit) Objectfiles() (fs.FS, []core.Hash, error) * Fix format in func (d *DotGit) Objectfile(h core.Hash) (fs.FS, string, error) * Rename value dotGitobjcts -> objsDir * Change regexp.Compile -> regexp.MustCompile * Move regexp to variable initialization * Rename regexp value to be more coherent * Fix object directory name and object file name to correct character * Faster Objectfiles func * Add test for FillObject * Add GoDoc for func (s *ObjectStorage) Get(h core.Hash) (core.Object, error) * defer Close() * Return name values for defer function overwrite the error value. * Fix error handling in func (s *ObjectStorage) Get() Return error that gets error except for ErrObjfileNotFound from getFromUnpacked() * Rename getFromObject -> getFromUnpacked * Add test for func (d *DotGit) Objectfile(h core.Hash) (fs.FS, string, error) * Add test for func (d *DotGit) Objectfiles() (fs.FS, []core.Hash, error) * Faster check git object name * Faster dotgit_test.go * Fix Godoc for Objectfiles func * Refactor variable name in Objectfiles func * Fix GoDoc for objectfile func * Fix TestObjectfile func and TestObjectfiles func * Rename fixobj -> fixObj in Test Objectfile func * Fix test compare method * Refactor Get func in object.go * Refactor getFromUnpacked func in object.go * Fix GoDoc for ErrObjfileNotFound * Fix TestObjectfiles for not guarantee the slice order * Change error no such file or directory to target file not found * Change spec func (s *ObjectStorage) Get(h core.Hash) (core.Object, error) return core.ErrObjectNotFound, if index pointer is nil. * Add space * storage: Add object type hint parameter to ObjectStorage.getFromUnpacked