| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| | |
Remove TODOs from documentation
|
| | |
|
|\ \
| |/
|/| |
plumbing/revlist: input as a slice of hashes instead of commits
|
| |
| |
| |
| |
| |
| |
| | |
- Now the input of the method Objects inside revlist package is a slice of hashes instead of commits. Hashes can be from Blobs, Trees and Commits objects.
- ObjectStorer now is used to obtain the object content using hashes slice.
- This PR fix #222. Now a test into upload_pack_test.go file is not skipped anymore.
- Remove code from remote.go and server.go that is not necessary.
|
|\ \
| | |
| | | |
plumbing/cache: specify units in memory size (Fix #234)
|
| |/ |
|
|\ \
| |/
|/| |
plumbing: improve documentation (Fix #242)
|
| | |
|
|\ \
| | |
| | | |
plumbing/object: move difftree to object package
|
| | | |
|
|/ /
| |
| |
| |
| | |
- To avoid ciclic dependency errors, we move all the difftree files to object package.
- Added Diff method to Tree object.
|
|\ \
| | |
| | | |
Add fast_finish flag to travis configuration
|
| |/
| |
| |
| |
| |
| |
| | |
This flag allows us to improve the time spent in travis test execution if:
- A build job fails, the build is mark as failed immediately, not waiting to finish the rest of the jobs.
- All Build jobs pass. Travis will not wait to Allowed failures jobs to mark the PR as OK.
|
|\ \
| | |
| | | |
plumbing/storer: referenceIterator now returns the error if any
|
| |/ |
|
|\ \
| |/
|/| |
Fix issue 279
|
| |
| |
| |
| | |
Fix issue #279.
|
|/ |
|
|
|
|
|
|
|
|
|
| |
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.
|
|\
| |
| | |
travis update to 1.8 and makefile silence commands
|
| | |
|
|\ \
| |/
|/| |
plumbing/transport: git, error on empty SSH_AUTH_SOCK
|
| | |
|
| | |
|
|/ |
|
|\
| |
| | |
cache: move package to plumbing
|
| |
| |
| |
| | |
Because cache package is only intended to be used at internal level, we move it to the plumbing package.
|
|\ \
| | |
| | | |
cshared: remove directory (Fix #236)
|
| |/
| |
| |
| | |
If some day this code is needed, we can go back into the commit history and get it.
|
|\ \
| |/
|/| |
Submodules init and update
|
| |\
| |/
|/| |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
|\ \
| | |
| | | |
plumbing/storer: add RemoveReference
|
|/ / |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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:
```
|
| |
| |
| |
| | |
Action constants (Insert, Delete, Modify) have type int instead of
Action. This patch make them Actions.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| | |
|
| |
| |
| |
| |
| | |
difftree for noders
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
|/ |
|