aboutsummaryrefslogtreecommitdiffstats
path: root/plumbing
Commit message (Collapse)AuthorAgeFilesLines
* *: windows support, some more fixes (2) (#536)Manuel Carmona2017-08-074-1/+29
| | | | | | | | | | | | | | * fixed windows failed test: "143 FAIL: worktree_test.go:314: WorktreeSuite.TestFilenameNormalization" * fixed windows failed test: "489: FAIL: auth_method_test.go:106: SuiteCommon.TestNewSSHAgentAuthNoAgent" * fixed windows failed test: "279 FAIL: server_test.go:50: ServerSuite.TestClone" fixed windows failed test: "298 FAIL: server_test.go:37: ServerSuite.TestPush" * fixed windows failed test: "316 FAIL: <autogenerated>:26: UploadPackSuite.TearDownSuite" * fixed windows failed test: "FAIL: <autogenerated>:6: IndexSuite.TearDownSuite"
* Merge pull request #527 from strib/win-pack-cmdsMáximo Cuadros2017-08-042-2/+75
|\ | | | | plumbing: fix pack commands for the file client on Windows
| * plumbing: fix pack commands for the file client on WindowsJeremy Stribling2017-08-032-2/+75
| | | | | | | | | | | | The default git install on Windows doesn't come with commands for receive-pack and upload-pack in the default $PATH. Instead, use --exec-path to find pack executables in that case.
* | *: windows support, some more fixes (#533)Manuel Carmona2017-08-032-1/+2
| | | | | | | | | | | | | | | | | | | | * fixed windows failed test: "134 FAIL: repository_test.go:340: RepositorySuite.TestPlainOpenBareRelativeGitDirFileTrailingGarbage" * fixed windows failed test: "143 FAIL: worktree_test.go:367: WorktreeSuite.TestCheckoutIndexOS" * fixed windows failed test: "296 FAIL: receive_pack_test.go:36: ReceivePackSuite.TearDownTest" * fixed windows failed test: "152 FAIL: worktree_test.go:278: WorktreeSuite.TestCheckoutSymlink"
* | Merge pull request #531 from mcuadros/ref-nameMáximo Cuadros2017-08-022-24/+24
|\ \ | | | | | | plumbing: moved `Reference.Is*` methods to `ReferenceName.Is*`
| * | plumbing: moved `Reference.Is*` methods to `ReferenceName.Is*`Máximo Cuadros2017-08-022-24/+24
| |/
* | Merge pull request #501 from smola/config-multiple-urlsMáximo Cuadros2017-08-025-13/+103
|\ \ | |/ |/| config: multiple values in RemoteConfig (URLs and Fetch)
| * config: preserve option order on config marshallingSantiago M. Mola2017-08-015-12/+71
| | | | | | | | | | Do not change order of options (e.g. in RemoteConfig) when serializing for any option whose value has not changed.
| * format/config: add GoStringSantiago M. Mola2017-08-012-1/+32
| | | | | | | | This is more convenient for testing and debugging.
* | transport: fix ssh override config, fixes #519v4.0.0-rc13Máximo Cuadros2017-07-282-5/+40
| |
* | Merge pull request #516 from smola/revlist-perfMáximo Cuadros2017-07-281-1/+28
|\ \ | | | | | | revlist: ignore all objects reachable from ignored objects
| * | revlist: ignore all objects reachable from ignored objectsSantiago M. Mola2017-07-271-1/+28
| | | | | | | | | | | | | | | | | | | | | Usually we call revlist.Objects ignoring a set of commits. This is not enough to ignore everything reachable from such set, so we first get all objects reachable from the ignored set and then walk the tree again ignoring that new set.
* | | plumbing: add IsDelta method to ObjectTypeSantiago M. Mola2017-07-272-6/+8
| | | | | | | | | | | | | | | ObjectType.IsDelta is a convenience function to match both offset and reference delta types.
* | | storage: reuse deltas from packfilesSantiago M. Mola2017-07-277-98/+312
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * plumbing: add DeltaObject interface for EncodedObjects that are deltas and hold additional information about them, such as the hash of the base object. * plumbing/storer: add DeltaObjectStorer interface for object storers that can return DeltaObject. Note that calls to EncodedObject will never return instances of DeltaObject. That requires explicit calls to DeltaObject. * storage/filesystem: implement DeltaObjectStorer interface. * plumbing/packfile: packfile encoder now supports reusing deltas that are already computed (e.g. from an existing packfile) if the storage implements DeltaObjectStorer. Reusing deltas boosts performance of packfile generation (e.g. on push).
* | | test: improve packfile.Encoder testsSantiago M. Mola2017-07-271-54/+68
| |/ |/| | | | | | | | | | | * Improve checks for encode/decode. * Make it easier to extend this test with more storage backends.
* | plumbing/cache: change FIFO to LRU cacheSantiago M. Mola2017-07-273-90/+93
| |
* | storage/filesystem: reuse delta cacheSantiago M. Mola2017-07-271-10/+22
| | | | | | | | | | Reuse delta base object cache for packfile decoders across multiple instances.
* | plumbing/cache: use more explicit interfaceSantiago M. Mola2017-07-274-26/+44
|/ | | | | | * renamed Add to Put * Get returns a second bool value to indicate if there was hit or miss.
* format: idxfile, support for >2Gb packfilesMáximo Cuadros2017-07-274-1/+106
|
* packfile: create packfile.Index and reuse itSantiago M. Mola2017-07-269-93/+292
| | | | | | | | | | | | | | | There was an internal type (i.e. storage/filesystem.idx) to use as in-memory index for packfiles. This was not convenient to reuse in the packfile. This commit creates a new representation (format/packfile.Index) that can be converted to and from idxfile.Idxfile. A packfile.Index now contains the functionality that was scattered on storage/filesystem.idx and packfile.Decoder's internals. storage/filesystem now reuses packfile.Index instances and this also results in higher cache hit ratios when resolving deltas.
* transport: context package supportMáximo Cuadros2017-07-2511-39/+187
|
* Merge pull request #491 from smola/error-checksMáximo Cuadros2017-07-192-21/+22
|\ | | | | *: add more IO error checks
| * packfile: check close error in UpdateObjectStorageSantiago M. Mola2017-07-191-8/+14
| |
| * packfile: check zlib reader closing errorSantiago M. Mola2017-07-191-13/+8
| |
* | Merge pull request #493 from src-d/windowsMáximo Cuadros2017-07-193-3/+11
|\ \ | | | | | | *: several windows support fixes
| * | plumbing: transport server, remove letfoverMáximo Cuadros2017-07-191-3/+0
| | |
| * | plumbing: format config, escape back slashMáximo Cuadros2017-07-192-4/+2
| | |
| * | worktree: commit, use path package instead of filepathMáximo Cuadros2017-07-192-2/+10
| | |
| * | plumbing: transport git fix test on windowsMáximo Cuadros2017-07-181-1/+3
| | |
| * | plumbing: server, fix loader in windowsMáximo Cuadros2017-07-181-1/+4
| |/
* | Merge pull request #492 from ajnavarro/fix/panic-in-invalid-deltaMáximo Cuadros2017-07-192-16/+85
|\ \ | | | | | | packfile: Avoid panics patching corrupted deltas.
| * | packfile: Avoid panics patching corrupted deltasAntonio Jesus Navarro Perez2017-07-192-16/+85
| |/
* | 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.