aboutsummaryrefslogtreecommitdiffstats
path: root/plumbing
Commit message (Collapse)AuthorAgeFilesLines
* repository: allow push from shallow repositoriesMáximo Cuadros2017-07-192-43/+24
|
* plumbing: object, allow ignore commits in commit walkersMáximo Cuadros2017-07-182-16/+105
|
* Merge pull request #473 from taralx/patch-1Máximo Cuadros2017-07-131-2/+3
|\ | | | | Use buffered IO for decoding index files.
| * Use buffered IO for decoding index files.JP Sugarbroad2017-07-101-2/+3
| | | | | | | | This reduces syscall CPU time from >40% to <10% in my local repository.
* | Merge pull request #475 from mcuadros/fix-ackMáximo Cuadros2017-07-122-23/+42
|\ \ | | | | | | plumbing: protocol, fix handling multiple ACK on upload-pack and test…
| * | plumbing: protocol, fix handling multiple ACK on upload-packMáximo Cuadros2017-07-122-23/+42
| | |
* | | Merge pull request #476 from smola/server-as-clientMáximo Cuadros2017-07-113-7/+49
|\ \ \ | | | | | | | | transport/server: add asClient parameter
| * | | transport/server: add NewClientSantiago M. Mola2017-07-113-7/+49
| |/ / | | | | | | | | | | | | | | | server.NewClient returns a server that acts as a client. This makes it working seamlessly when registering a server directly with `client.InstallProtocol`.
* | | Merge pull request #472 from smola/fix-caps-delete-refsMáximo Cuadros2017-07-114-37/+17
|\ \ \ | |/ / |/| | improve delete support on push
| * | improve delete support on pushSantiago M. Mola2017-07-114-37/+17
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * server: implement delete-refs and announce it. * remote: check if server announced delete-refs before trying to delete and fail fast if it does not. Note that the client does not need no send 'delete-refs' back to the server to be able to delete references: ``` delete-refs ----------- If the server sends back the 'delete-refs' capability, it means that it is capable of accepting a zero-id value as the target value of a reference update. It is not sent back by the client, it simply informs the client that it can be sent zero-id values to delete references. ``` So our server implementation does not check if the client sent delete-refs back, it just accepts deletes if it receives them.
* | Merge pull request #469 from mcuadros/fix-multiple-ackMáximo Cuadros2017-07-114-17/+76
|\ \ | |/ |/| plumbing: protocol, fix handling multiple ACK on upload-pack
| * plumbing: protocol, fix handling multiple ACK on upload-packMáximo Cuadros2017-07-084-17/+76
| |
* | Merge pull request #464 from smola/race-463Máximo Cuadros2017-07-072-21/+31
|\ \ | | | | | | transport/file: avoid race with Command.Wait, fixes #463
| * | transport/file: avoid race with Command.Wait, fixes #463Santiago M. Mola2017-07-071-4/+14
| | | | | | | | | | | | | | | | | | Pipe returned by Command.StderrPipe() has a race with Read and Command.Wait(). We use a io.Pipe() instead and ensure it is closed after Wait().
| * | transport/internal: read only first error lineSantiago M. Mola2017-07-071-17/+17
| |/ | | | | | | | | | | | | We only use the first line of error output. So we use a channel with a single byte buffer and read the first line from stderr. Further output is discarded, as well as any further I/O error, which might be expected when closing the pipe (command finished).
* / fix reference shorteningSantiago M. Mola2017-07-072-18/+23
|/ | | | | Implemented according to git shorten_unambiguous_ref. See: https://github.com/git/git/blob/e0aaa1b6532cfce93d87af9bc813fb2e7a7ce9d7/refs.c#L1030
* Merge pull request #423 from smola/ssh-optionsMáximo Cuadros2017-07-051-3/+36
|\ | | | | transport/ssh: allow passing SSH options
| * transport/ssh: allow global *ssh.ClientConfig overrideSantiago M. Mola2017-06-231-14/+31
| | | | | | | | | | A global *ssh.ClientConfig override can be set. It will be use to override values of each SSH session.
| * transport/ssh: allow passing SSH optionsSantiago M. Mola2017-06-231-3/+19
| | | | | | | | | | Adds the possibility of passing options to SSH transport. Options have the form of functions modifying ssh.ClientConfig.
* | fix auth error issueAntonio Jesus Navarro Perez2017-07-042-1/+7
| |
* | fix CGI git serverAntonio Jesus Navarro Perez2017-07-041-7/+14
| |
* | transport: http pushAntonio Jesus Navarro Perez2017-07-044-77/+253
| |
* | capability: accept unknown capabilities, fixes #450Santiago M. Mola2017-06-232-10/+6
|/ | | | | | | | | GitHub has started using a non-standard capability "early-capabilities" with agent=git/github-g3daa19f21. This is breaking all go-git operations on GitHub. This commit removes validation for known capabilities, so that we can use non-standard capabilities safely.
* revlist: ignore treeEntries that are submodules.Antonio Jesus Navarro Perez2017-06-192-1/+24
| | | | - If we don't ignore submodules in trees, when we tried to perform a push, revlist.Objects returned hashes that was from submodules, causing an "object not found" error in packfile generation.
* plumbing: gitignore, upgrade to go-billy.v3 and test with gocheckMáximo Cuadros2017-06-194-218/+199
|
* Merge pull request #429 from silvertern/gitignoreMáximo Cuadros2017-06-197-0/+676
|\ | | | | Adds .gitignore support
| * Adds gitignore supportOleg Sklyar2017-06-197-0/+676
| |
* | *: upgrade to go-billy.v3, mergeMáximo Cuadros2017-06-187-27/+26
| |
* | Merge pull request #421 from smola/iter-namingMáximo Cuadros2017-06-143-7/+7
|\ \ | | | | | | fix naming of NewCommit{Pre,Post}Iterator
| * | fix naming of NewCommit{Pre,Post}IteratorSantiago M. Mola2017-06-133-7/+7
| |/ | | | | | | | | Use Iter suffix, just as all other iterators in the project. Use Preorder and Postorder to be more clear.
* | Merge pull request #422 from smola/gofmtMáximo Cuadros2017-06-133-3/+5
|\ \ | | | | | | fix gofmt
| * | fix gofmtSantiago M. Mola2017-06-133-3/+5
| |/
* | transport/internal: remove Wait function, use Close directlySantiago M. Mola2017-06-134-32/+19
| |
* | fix ReceivePackSuite.TestSendPackAddDeleteReferenceSantiago M. Mola2017-06-131-2/+4
| |
* | plumbing/transport: detect "access denied error"Santiago M. Mola2017-06-131-5/+10
| | | | | | | | | | | | | | "ERR access denied or repository not exported:" is now detected as transport.ErrRepositoryNotFound, since that's what git-daemon returns when --informative-errors is not used.
* | transport/git: add git-receive-pack testsSantiago M. Mola2017-06-131-0/+140
| |
* | plumbing/transport: detect git protocol "no such repository" errorSantiago M. Mola2017-06-131-0/+5
| |
* | transport/git: ensure port is added to host parameterSantiago M. Mola2017-06-131-1/+6
| |
* | ensure receive-pack session is closed on push.Santiago M. Mola2017-06-131-1/+5
|/ | | | | | * at low level, ReceivePack must close its stream to the server to signal it has finished. * remote.go: Close() must be called on session.
* Merge pull request #409 from smola/dirty-plainopenSantiago M. Mola2017-06-051-0/+8
|\ | | | | storage/filesystem: call initialization explicitly, fixes #408
| * storage/filesystem: call initialization explicitely, fixes #408Santiago M. Mola2017-06-011-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | Merge pull request #411 from src-d/fix/delta-copy-operationsSantiago M. Mola2017-06-022-1/+35
|\ \ | |/ |/| packfile: A copy operation cannot be bigger than 64kb
| * packfile: A copy operation cannot be bigger than 64kbAntonio Jesus Navarro Perez2017-06-012-1/+35
| | | | | | | | More info here: https://github.com/git/git/blob/f7466e94375b3be27f229c78873f0acf8301c0a5/diff-delta.c#L428
* | Use xanzy/ssh-agent to create the ssh agent correctly based on os.Ethan Young2017-06-012-14/+15
|/
* format/packfile: improve binary delta algorithmAntonio Jesus Navarro Perez2017-05-242-441/+94
| | | | Implemented algorithm described in "File System Support for Delta Compression" paper, from "Joshua P. MacDonald".
* format/diff: unified diff encoder and public APIAntonio Jesus Navarro Perez2017-05-2310-0/+1558
| | | | | | | | | - Added Patch interface - Added a Unified Diff encoder from Patches - Added Change method to generate Patches - Added Changes method to generate Patches - Added Tree method to generate Patches - Added Commit method to generate Patches
* worktree: Remove and Move methodsMáximo Cuadros2017-05-212-0/+29
|
* transport/server: use Endpoint string representation as a map key.Antonio Jesus Navarro Perez2017-05-163-4/+20
| | | | Two endpoints are not equals between them, even if they were generated using the same url or path.
* format/packfile: fix bug when the delta depth is equals to 50Antonio Jesus Navarro Perez2017-05-082-0/+10
|
* worktree: Commit, tests improvementsMáximo Cuadros2017-05-041-2/+2
|