aboutsummaryrefslogtreecommitdiffstats
path: root/remote.go
Commit message (Collapse)AuthorAgeFilesLines
* git: enable fetch with unqualified referencesArieh Schneier2023-05-251-33/+48
| | | | Signed-off-by: Arieh Schneier <15041913+AriehSchneier@users.noreply.github.com>
* git: Fix fetching after shallow clone. Fixes #305Arieh Schneier2023-05-241-3/+13
| | | | Signed-off-by: Arieh Schneier <15041913+AriehSchneier@users.noreply.github.com>
* Merge pull request #753 from andrewpollock/add_list_timeoutPaulo Gomes2023-05-201-1/+9
|\ | | | | git: remote, add support for a configurable timeout.
| * git: remote, add support for a configurable timeout.Andrew Pollock2023-05-121-1/+9
| | | | | | | | | | | | | | The previous hard-coded 10 second value is too short for listing large repositories like https://gitlab.com/gitlab-org/gitlab Return an error on nonsensical subzero timeout values
* | *: Remove redudant err nil checksPaulo Gomes2023-05-111-5/+1
|/ | | | Signed-off-by: Paulo Gomes <pjbgf@linux.com>
* plumbing/transport: add ProxyOptions to specify proxy detailsSanskar Jaiswal2023-05-041-8/+9
| | | | Signed-off-by: Sanskar Jaiswal <jaiswalsanskar078@gmail.com>
* git: Add support to ls-remote with peeled references. Fixes #749Paulo Gomes2023-05-031-6/+23
| | | | | | | | | | | | | | | A new PeelingOption field was introduced into ListOptions. The new options include the default (and backwards compatible) IgnorePeeled. Plus another two variations which either only returns peeled references (OnlyPeeled), or append peeled references to the list (AppendPeeled). The ls-remote example was updated to align with upstream, in which peeled references are appended to the results by default. A new ErrEmptyUrls error is now returned when List or ListContext do not receive a URL to work with, to improve overall execution flow. Signed-off-by: Paulo Gomes <pjbgf@linux.com>
* Merge pull request #425 from abhinav/error-stringsMáximo Cuadros2021-12-111-2/+2
|\ | | | | error strings: Don't capitalize, use periods, or newlines
| * error strings: Don't capitalize, use periods, or newlinesAbhinav Gupta2021-12-041-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Per [Go Code Review Comments][1], > Error strings should not be capitalized (unless beginning with proper > nouns or acronyms) or end with punctuation staticcheck's [ST1005][2] also complains about these. For example, ``` object_walker.go:63:10: error strings should not be capitalized (ST1005) object_walker.go:101:10: error strings should not be capitalized (ST1005) object_walker.go:101:10: error strings should not end with punctuation or a newline (ST1005) plumbing/format/commitgraph/file.go:17:26: error strings should not be capitalized (ST1005) ``` This fixes all instances of this issue reported by staticcheck. [1]: https://github.com/golang/go/wiki/CodeReviewComments#error-strings [2]: https://staticcheck.io/docs/checks/#ST1005
* | Merge pull request #418 from abhinav/unusedMáximo Cuadros2021-12-101-5/+2
|\ \ | | | | | | Remove unused vars/types/funcs/fields
| * | remote/addReachableTags: Remove guard before deleteAbhinav Gupta2021-11-271-4/+1
| | | | | | | | | | | | | | | | | | The membership check before attempting to `delete` from the `tags` map is unnecessary because the operation is a no-op if the item does not already exist in the map.
| * | Remove unused variables/types/functionsAbhinav Gupta2021-11-271-1/+1
| |/ | | | | | | | | | | | | | | [staticcheck](https://staticcheck.io/) reported a number of unused fields, functions, types, and variables across the code. Where possible, use them (assert unchecked errors in tests, for example) and otherwise remove them.
* | Merge branch 'master' into jc-push-atomicMáximo Cuadros2021-12-101-6/+38
|\ \
| * | Add ForceWithLease Push OptionJohn Cai2021-11-021-6/+37
| |/ | | | | | | | | | | | | | | --force-with-lease allows a push to force push with some safety measures. If the ref on the remote is what we expect, then the force push is allowed to happen. See https://git-scm.com/docs/git-push#Documentation/git-push.txt---force-with-leaseltrefnamegt for more information
* / Add Atomic to push optionsJohn Cai2021-11-031-0/+4
|/ | | | | | push --atomic allows a push to succeed or fail atomically. If one ref fails, the whole push fails. This commit allows the user to set Atomic as an option for a push.
* Merge pull request #399 from S-Bohn/add-push-optionsMáximo Cuadros2021-11-011-0/+7
|\ | | | | Remote: PushOptions add push-options
| * plumbing: packp, Add encoding for push-options. Fixes #268.Sören Bohn2021-10-261-0/+7
| | | | | | | | go-git: Add field `Options` to `PushOptions`, wire functionality.
* | Add support to push commits per hashesThibault Jamet2021-10-281-0/+41
|/ | | | | | | | | | | | | | Using plain git, the command `git push ${sha}:refs/heads/some-branch` actually ensures that the remote branch `some-branch` points to the commit `${sha}`. In the current version of go-git, this results in an "everything is up to date" error. When a source reference is not found, check the object storage to find the sha. If it is found, consider pushing this exact commit. fixes: #105
* Merge pull request #375 from noerw/add-remoteurl-optionMáximo Cuadros2021-10-261-4/+13
|\ | | | | Remote: add RemoteURL to {Fetch,Pull,Push}Options
| * Add RemoteURL to {Fetch,Pull,Push}OptionsNorwin2021-09-151-4/+13
| | | | | | | | | | Can be used to override the URL to operate on: RemoteName will be ignored for the actual fetch
* | git: add --follow-tags option for pushesJohn Cai2021-10-051-0/+78
|/ | | | This PR adds support for the --follow-tags option for pushes.
* remote: patch default timeout for `List` (#321)v5.4.1Nicolas Chagrass2021-05-241-1/+1
| | | It looks a test value was shipped breaking a lot of the usage of the library.
* git: Add support for deepening shallow clones (#311)Marcus Watkins2021-05-121-1/+43
|
* utils: ioutil, Pipe implementatioMáximo Cuadros2021-05-021-1/+1
|
* Remote: new ListContext function (#278)Xiang Xiujuan2021-04-211-1/+19
|
* Minor doc fixes (#287)Jeff Widman2021-04-161-2/+2
|
* plumbing: wire up contexts for Transport.AdvertisedReferences (#246)Andrew Suffield2021-03-261-3/+3
| | | | | * plumbing: wire up contexts for Transport.AdvertisedReferences * add more tests for context wiring
* add RequireRemoteRefs to PushOptions (#258)Andrew Suffield2021-03-251-0/+34
| | | | | | | | | | | | | | | | | | The git protocol itself uses a compare-and-swap mechanism, where changes send the old and new values and the change is only applied if the old value matches. This is used to implement the --force-with-lease feature in git push. go-git populates the `old` field with the current value of the ref that is read from the remote. We can implement a convenient (albeit more limited) form of the --force-with-lease feature just by allowing the caller to specify particular values for this ref. Callers can then implement complex multi-step atomic operations by reading the ref themselves at the start of the process, and passing to in RequireRemoteRefs at the end. This is also a suitable building block for implementing --force-with-lease (#101), which is mostly an exercise in computing the correct hash to require. Hence, this appears to be the most reasonable API to expose.
* Add insecureSkipTLS and cabundle (#228)Daishan Peng2021-01-271-8/+10
| | | | | This PR add insecureSkipTLSVerify and cabundle to any remote http calls so that https repo with private CA signed can be used. This is the equivalent of https.sslVerify and GIT_SSL_CAINFO
* Fetch should return a unique error type when ref not foundandrew2nelson2020-09-021-1/+14
| | | | | | | | | It can be useful for callers to distinguish between an error of "couldn't find remote ref" and some other error like "network error". Creating an explicit error type for this allows consumers to determine the kind of error using the errors.Is and errors.As interface added in go1.13
* git: remote, Fix deleting references when force pushing.Chris Gavin2020-08-281-1/+1
|
* Merge pull request #125 from cristaloleg/minor-linter-fixesMáximo Cuadros2020-07-161-6/+3
|\ | | | | *: minor linter fixes
| * fix slice capacityOleg Kovalov2020-07-071-1/+1
| |
| * Minor linter fixesOleg Kovalov2020-07-061-6/+3
| |
* | Skip error check explicitlyOleg Kovalov2020-07-061-4/+6
|/
* Remote.Push: support force optionkappyhappy2020-05-211-0/+9
|
* Remote.Fetch: support exact SHA1 refspecsMáximo Cuadros2020-05-111-1/+32
|
* *: migration from gopkg to go modulesMáximo Cuadros2020-03-101-17/+17
|
* *: fixed tautological error conditionsautological error conditionsChristian Muehlhaeuser2019-07-291-1/+1
| | | | | | | | | | - Added missing error handling around encodeCommitData and prevented shadowing err. - Removed tautological error checks. Signed-off-by: Christian Muehlhaeuser <muesli@gmail.com> (cherry picked from commit 7d76176416551fc21d98bc17768d158a82281406)
* Merge pull request #1165 from seletskiy/push-pruneMáximo Cuadros2019-07-261-15/+52
|\ | | | | Remote: add Prune option to PushOptions
| * send PACK only if non-delete command presentStanislav Seletskiy2019-07-251-10/+26
| | | | | | | | | | | | | | | | | | According to: https://github.com/git/git/blob/master/Documentation/technical/pack-protocol.txt > The packfile MUST NOT be sent if the only command used is 'delete'. Signed-off-by: Stanislav Seletskiy <s.seletskiy@gmail.com>
| * add Prune option to PushOptionsStanislav Seletskiy2019-07-251-5/+26
| | | | | | | | Signed-off-by: Stanislav Seletskiy <s.seletskiy@gmail.com>
* | git : allows to create a Remote without a RepositoryValentin Cocaud2019-06-171-1/+4
|/ | | | Signed-off-by: Valentin Cocaud <v.cocaud@gmail.com>
* git: fix goroutine block while pushing a remoteJavi Fontan2019-03-011-1/+8
| | | | | | | | | On session.ReceivePack error the gororutine doing the encoding got blocked either writing objects to the pipe or sending error to the done channel. The problem did not cause a perceived problem but left blocked goroutines. Signed-off-by: Javi Fontan <jfontan@gmail.com>
* remote: when pushing to a local repo, use local store for ignoresJeremy Stribling2019-02-111-1/+14
| | | | | Issue: #909 Signed-off-by: Jeremy Stribling <strib@alum.mit.edu>
* remote: use reference deltas on push when the remote server does notBenjamin Ash2018-10-161-2/+7
| | | | | | support offset deltas Signed-off-by: Benjamin Ash <bash@intelerad.com>
* Fixed cloning of a single tagFedor Korotkov2018-08-081-2/+2
| | | | | | Relates to #870 Signed-off-by: Fedor Korotkov <fedor.korotkov@gmail.com>
* Remote.Fetch: error on missing remote referenceMáximo Cuadros2018-06-211-5/+35
| | | | Signed-off-by: Máximo Cuadros <mcuadros@gmail.com>
* git: remote, Do not iterate all references on update.Javi Fontan2018-05-141-2/+22
| | | | | | | | | | | | | | | | | The current code iterates all the references in the remote to check if they match the refspec. This is OK when the refspec is a wildcard but is a waste of time when they are not. A hash with references is generated for fast access before starting the update and used only when the refspec is not a wildcard. In a repository with 7800 references this meant 7800 * 7800 checks. With the current code it took 8m30s to update the references. With the new code it takes less than 0.5s. References are already extensively tested in remote_test.go. Signed-off-by: Javi Fontan <jfontan@gmail.com>
* git: remote, Add shallow commits instead of substituting. Fixes #412Javi Fontan2018-04-161-2/+17
| | | | | | | | | | updateShallow substituted the previous shallow list with the one returned by the UploadPackResponse. If the repository had previous shallow commits these are deleted from the list. This change adds the new shallow hashes to the old ones. Signed-off-by: Javi Fontan <jfontan@gmail.com>