aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* difftree: ignore permissions changes between regular filesAlberto Cortés2017-02-222-6/+45
| | | | Fix issue #279.
* test for issue 279Alberto Cortés2017-02-222-4/+28
|
* Fix issue 275 (edited) (#276)Alberto Cortés2017-02-228-81/+302
| | | | | | | | | Fix #275 . It was not possible to write a test for this issue as the original fsnoder didn't support filenames with length > 1. Therefore this patch has 3 commits: add support for long filenames in fsnoder. add a test case for the issue using the new long filenames from step 1. fix the issue by comparing paths level by level instead of lexigographically over the whole path.
* Merge pull request #283 from mcuadros/travisMáximo Cuadros2017-02-212-3/+3
|\ | | | | travis update to 1.8 and makefile silence commands
| * travis update to 1.8 and makefile silence commandsMáximo Cuadros2017-02-212-3/+3
| |
* | Merge pull request #282 from mcuadros/ssh-agent-fixMáximo Cuadros2017-02-212-3/+26
|\ \ | |/ |/| plumbing/transport: git, error on empty SSH_AUTH_SOCK
| * plumbing/transport: git, error on empty SSH_AUTH_SOCKMáximo Cuadros2017-02-212-3/+26
| |
* | *: update tests to meet new submodule fixtureMáximo Cuadros2017-02-213-16/+6
| |
* | plumbing/transport: client avoid panics on nil protocolMáximo Cuadros2017-02-212-16/+26
|/
* Merge pull request #278 from ajnavarro/improvement/move-cache-to-plumbingMáximo Cuadros2017-02-215-1/+1
|\ | | | | cache: move package to plumbing
| * cache: move package to plumbingAntonio Jesus Navarro Perez2017-02-215-1/+1
| | | | | | | | Because cache package is only intended to be used at internal level, we move it to the plumbing package.
* | Merge pull request #277 from ajnavarro/remove-csharedMáximo Cuadros2017-02-2112-1900/+0
|\ \ | | | | | | cshared: remove directory (Fix #236)
| * | cshared: remove directory (Fix #236)Antonio Jesus Navarro Perez2017-02-2112-1900/+0
| |/ | | | | | | If some day this code is needed, we can go back into the commit history and get it.
* | Merge pull request #270 from mcuadros/submodules-initMáximo Cuadros2017-02-2130-131/+1092
|\ \ | |/ |/| Submodules init and update
| * rebase masterMáximo Cuadros2017-02-2110-0/+2281
| |\ | |/ |/|
* | difftree for git.Trees (#273)Alberto Cortés2017-02-217-536/+1269
| | | | | | | | | | | | | | | | | | | | | | | | | | Last PR to fix #82: This PR modifies the difftree package itself. The old version extracted the files in both trees and compare them by hand. The new version turn the trees into merkletrie.Noders and call the merkletrie.Difftree function on them. How to review this PR: treenoder.go: defines the treeNoder type that wraps a git.Tree and implements merkletrie.Noder. change.go: defines the type of the output of a difftree operation. The type is the same as before, but I have moved it into its own file to keep the package organized. The old package defines the Action type too (insert, delete, modify), now, we reuse merkletrie.Action and it is no longer a field, but a method. change_adaptor.go: defines functions to turn merkletrie.Changes into difftree.Changes. difftree.go: before this patch this file holds all the logic to do a difftree, now it just turns the git.Trees into treeNoders, call merkletrie.difftree on them, and turns the resulting merkletrie.Changes into difftree.Changes. The only interesting piece of code here is that noders don't have the concept of mode (file permissions). The treenoder type codifies git.Tree modes into the merkletrie.Noder hash, so changes in the mode of a file are detected as modifications, just as the original git diff-tree command does.
* | Merge pull request #269 from smola/remove-referenceMáximo Cuadros2017-02-206-14/+206
|\ \ | | | | | | plumbing/storer: add RemoveReference
| * | plumbing/storer: add RemoveReferenceSantiago M. Mola2017-02-166-14/+206
|/ /
* | transport/file: fix race condition on test (#267)Alberto Cortés2017-02-151-45/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Sometimes, the `TestClone` and `TestPush` tests of `transport/file` fail in travis. This is due to a race condition caused by an incorrect usage of `Cmd.Wait()` while reading from the output and error pipes of the command. This patch fixes the problem by using `Cmd.CombinedOutput()` instead of calling `Cmd.Start()` and `Cmd.Wait()` while reading from the output and error pipes. Details: From the `exec` package documentation: ``` Wait will close the pipe after seeing the command exit, so most callers need not close the pipe themselves; however, an implication is that it is incorrect to call Wait before all reads from the pipe have completed. For the same reason, it is incorrect to call Run when using StdoutPipe. ``` In our tests, the old `execAndGetOutput` function was creating two gorutines to read from the stderr and stdout pipes of the command and then call `Wait` on the command. This caused a race condition: when the `Wait` call finished before the gorutines have read from the pipes, they returned caused an error on `outErr`. The problem only happens sometimes on travis. To reproduce the problem locally, just add a call to time.Sleep(time.Second) to the gorutine before its `ioutil.ReadAll` call to delay them, then `Wait` will always finish before them, closing the pipes, and the gorutines will fail. The returned error detected by the test will be: ``` FAIL: server_test.go:55: ServerSuite.TestClone server_test.go:65: c.Assert(err, IsNil, Commentf("STDOUT:\n%s\nSTDERR:\n%s\n", stdout, stderr)) ... value *os.PathError = &os.PathError{Op:"read", Path:"|0", Err:0x9} ("read |0: bad file descriptor") ... STDOUT: STDERR: ```
* | merkletrie: fix const action type fuck up (#268)Alberto Cortés2017-02-142-1/+12
| | | | | | | | Action constants (Insert, Delete, Modify) have type int instead of Action. This patch make them Actions.
* | transport/file: delete suite tmp dir at teardown (#266)Alberto Cortés2017-02-131-5/+12
| | | | | | | | | | | | | | | | | | | | | | The transport/file common suite test generates a temporal directory; It is used to store the go-git client command and some links to it: git-upload-pack and git-receive-pack. This directory is not deleted at the test teardown, so every time we run a test, we pollute "/tmp". This patch adds a teardown function for the suite that deletes the temporal directory. It also calls the teardown of the embedded fixtures.Suite, which is probably what we want also. I have also simplify the call to ioutil.TempDir as it already uses the default tmp dir if no dir is provided.
* | simplify noder mocks in test (#265)Alberto Cortés2017-02-132-18/+4
| |
* | add difftree for noders (#262)Alberto Cortés2017-02-137-13/+1246
| | | | | | | | | | difftree for noders
| * documentation and API improvementsMáximo Cuadros2017-02-2127-708/+565
| |
| * submodule update implementationMáximo Cuadros2017-02-157-73/+286
| |
| * config: added Config.SubmodulesMáximo Cuadros2017-02-143-12/+58
| |
| * submodule init and update implementationMáximo Cuadros2017-02-145-32/+263
| |
| * Repository.Init now handles non-standard .git locationMáximo Cuadros2017-02-134-4/+135
| |
| * config: adding Config.Core.WorktreeMáximo Cuadros2017-02-132-0/+34
| |
| * format/index: sort the Entries before encodeMáximo Cuadros2017-02-133-4/+28
| |
| * submodule init implementationMáximo Cuadros2017-02-134-14/+58
| |
| * plumbing/object: allow TreeIter return SubModule entriesMáximo Cuadros2017-02-134-6/+65
| |
| * submodule init implementationMáximo Cuadros2017-02-1210-50/+142
| |
| * storage: git.Storer move to storage.Storer and module handlingMáximo Cuadros2017-02-126-4/+74
|/
* Merge pull request #263 from smola/public-storageMáximo Cuadros2017-02-105-54/+52
|\ | | | | git: make Storer public in Repository.
| * git: make Storer public in Repository.Santiago M. Mola2017-02-095-54/+52
|/
* Merge pull request #258 from ajnavarro/fix/onf-decoderAntonio Navarro Perez2017-02-093-10/+71
|\ | | | | Fix missing objects if they where deltified using ref-delta
| * Fix missing objects if they where deltified using ref-deltaAntonio Jesus Navarro Perez2017-02-073-10/+71
| | | | | | | | | | - Deleted invalid logic that returned nil if an ref-delta was not found into the decoder index. This logic was missing objects if it was deltified using ref-deltas. - Now, to avoid that problem, index is mandatory to decode correctly a packfile of a specific type. Decoder.SetOffsets method now is called into the EncodedObjectIterator to avoid this problem.
* | Merge pull request #259 from smola/docsMáximo Cuadros2017-02-089-56/+110
|\ \ | | | | | | Improve documentation
| * | doc: improve object.Tag godoc.Santiago M. Mola2017-02-081-3/+7
| | |
| * | doc: add godoc to SignatureSantiago M. Mola2017-02-071-3/+6
| | |
| * | doc: improve godoc for WalkCommitHistory.Santiago M. Mola2017-02-071-1/+5
| | |
| * | doc: add object fields godocSantiago M. Mola2017-02-074-6/+21
| | |
| * | doc: improve object iterators godoc.Santiago M. Mola2017-02-076-27/+38
| | |
| * | doc: improve docs for object package.Santiago M. Mola2017-02-062-3/+7
| | | | | | | | | | | | | | | | | | | | | | | | * add package description. * add godoc to DecodeBlob. * clarify godoc for Object and Blob.
| * | doc: improve ioutil.CheckClose doc and example, fix #246.Santiago M. Mola2017-02-062-14/+26
| | | | | | | | | | | | | | | | | | * Use a proper executable example, instead of one in the comment. * Improve wording of CheckClose godoc.
| * | doc: add package documentation for utils/ioutil, fix #246.Santiago M. Mola2017-02-061-0/+1
| |/
* | package plumbing documentation improvements (#248)Máximo Cuadros2017-02-0720-834/+637
| |
* | Add revision implementation (#139)Anthony HAMON2017-02-068-0/+1546
| |
* | add merkletrie iterator and its helper frame type (#252)Alberto Cortés2017-02-064-0/+873
|/ | | | | | | | * add merkletrie iterator and its helper frame type * requested changes by mcuadros * reuqested changes: smola