aboutsummaryrefslogtreecommitdiffstats
path: root/plumbing/object
Commit message (Collapse)AuthorAgeFilesLines
* plumbing/object: fix pgp signature encoder/decoderJavi Fontan2018-07-182-18/+45
| | | | | | | | | | | | | | | | | | The way of reading pgp signatures was searching for pgp begin line in the header. This caused problems when this string appeared and was not part of the signature. For example if it appears in the message as an example or is part of the author name the decoder starts treating it as a signature. In this state the code was not able to notice then the header ended so it entered in an infinite loop searching for pgp end string. Now it uses the same method as original git. Searches for gpgsig section in header and starts getting all lines until the next part. In encoder the string used to add signatures was incorrect. It is now changed to the proper "gpgsig" string instead of "pgpsig". Signed-off-by: Javi Fontan <jfontan@gmail.com>
* Merge pull request #885 from jsravn/findentry-return-file-not-foundMáximo Cuadros2018-07-162-3/+8
|\ | | | | plumbing: object, return ErrFileNotFound in FindEntry. Fixes #883
| * plumbing: object, expose ErrEntryNotFound in FindEntry. Fixes #883James Ravn2018-07-102-3/+8
| | | | | | | | | | | | | | | | | | FindEntry will return ErrDirNotFound if the directory doesn't exist. But it doesn't return a public error if the entry itself is missing. This exposes the internal error ErrEntryNotFound, so users can programmatically check for this condition. Signed-off-by: James Ravn <james@r-vn.org>
* | plumbing: add context to allow cancel on diff/patch computingMarc Barussaud2018-07-027-9/+215
|/ | | | Signed-off-by: Marc Barussaud <marc.barussaud@orange.com>
* plumbing: object, adds tree path cache to trees. Fixes #793Javi Fontan2018-06-061-1/+26
| | | | | | The cache is used in Tree.FindEntry for faster path search. Signed-off-by: Javi Fontan <jfontan@gmail.com>
* *: Use CheckClose with named returnsJavi Fontan2018-03-275-7/+8
| | | | | | | | Previously some close errors were losts. This is specially problematic in go-git as lots of work is done here like generating indexes and moving packfiles. Signed-off-by: Javi Fontan <jfontan@gmail.com>
* add tests for NewCommitIterCTime and NewCommitIterBSFSaeed Rasooli2018-03-061-0/+96
| | | | Signed-off-by: Saeed Rasooli <saeed.gnu@gmail.com>
* add LogOrder, LogOptions.Order, implement Order=LogOrderCommitterTime and ↵Saeed Rasooli2018-03-052-0/+203
| | | | | | Order=LogOrderBSF Signed-off-by: Saeed Rasooli <saeed.gnu@gmail.com>
* object: patch, test patch on submodulesMáximo Cuadros2017-12-071-0/+44
|
* Ignore empty patches when calculating stats (fixes #654)Alexandr Krylovskiy2017-12-041-0/+5
|
* all: gofmt -sferhat elmas2017-11-304-4/+4
|
* all: fixes for ineffective assignferhat elmas2017-11-261-0/+1
|
* plumbing: object/{commit,tag}, encode method with sig optionalSunny2017-11-242-11/+14
| | | | | Adds Commit.encode() and Tag.encode() with optional `includeSig` parameter to include or exclude signature from the encoded object.
* plumbing: object/tag, add signature verificationSunny2017-11-242-0/+94
|
* plumbing: object/tag, add PGPSignature supportSunny2017-11-242-1/+69
|
* test: plumbing/object fix Commit.Verify testSunny2017-11-241-2/+3
| | | | | Test was failing because of the relative time zone attached to the commit. Adding a fixed location to the time fixes the issue.
* Merge pull request #653 from darkowlzz/verify-commitMáximo Cuadros2017-11-242-0/+95
|\ | | | | plumbing: object, new Commit.Verify method
| * test: plumbing.object, add test for Commit.VerifySunny2017-11-231-0/+65
| |
| * plumbing: object, add Commit.Verify methodSunny2017-11-231-0/+30
| | | | | | | | | | Commit.Verify() performs PGP verification of a signed commit given an armored keyring.
* | update to go-billy.v4 and go-git-fixtures.v3Máximo Cuadros2017-11-238-8/+8
| | | | | | | | Signed-off-by: Máximo Cuadros <mcuadros@gmail.com>
* | plumbing/object: add test for finding tree entryferhat elmas2017-11-221-0/+37
| |
* | plumbing/object: do not eat error on tree decodeferhat elmas2017-11-211-2/+2
|/
* examples,plumbing,utils: typo fixesferhat elmas2017-11-202-2/+2
|
* Merge pull request #534 from josharian/firstparentMáximo Cuadros2017-11-202-0/+24
|\ | | | | plumbing: object, commit.Parent() method
| * plumbing: object, commit.Parent() methodMáximo Cuadros2017-11-202-6/+19
| | | | | | | | Signed-off-by: Máximo Cuadros <mcuadros@gmail.com>
| * plumbing/object: add Commit.FirstParentJosh Bleecher Snyder2017-08-031-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | First parents are somewhat special in git. There's even a --first-parent flag to 'git log'. Add a helper method to look them up. This avoids boilerplate and spares the client from having to arrange for a handle to the Storer, which is stored in the unexported field Commit.s.
* | Merge pull request #613 from darkowlzz/482-commit-statsMáximo Cuadros2017-11-083-0/+167
|\ \ | | | | | | Add Stats() to Commit
| * | Add Stats() to Patch and fix diffstat outputSunny2017-11-023-53/+130
| | |
| * | Add Stats() to CommitSunny2017-11-022-0/+90
| | | | | | | | | | | | Stats() is similar to `git show --stat <hash>`.
* | | Updating reference to the git object modelAntonio Troina2017-11-071-1/+1
|/ /
* | Add support for signed commits (#616)Sunny2017-10-292-0/+69
| | | | | | | | | | | | | | | | | | * Add support for signed commits This change adds `GPGSignature` field to `Commit` object. This is used to store the signature of the commit, if any. * Rename gpg to pgp
* | plumbing: the commit walker can skip externally-seen commitsJeremy Stribling2017-09-092-10/+40
| | | | | | | | | | | | | | | | | | | | When the revlist is computing the set of hashes needed to transfer, it doesn't need to walk over commits it has already processed. So, it can instruct the commit walker not to walk those commits by passing in its own `seen` map. For a 36K object repo, this brought the time for `revlist.Objects` down from 50s to 30s.
* | plumbing: use `seen` map in tree walkerJeremy Stribling2017-08-274-10/+42
| | | | | | | | | | | | | | This helps avoids iterating down the same trees for every commit. For a big-ish repo with 35K objects (17K commits), this reduced the time for calling `revlist.Objects` during a push (with 0 hashes to ignore) from more than ten minutes to less than a minute.
* | grammar correctionZach Gershman2017-08-241-1/+1
|/ | | *stopped instead of stop
* repository: allow push from shallow repositoriesMáximo Cuadros2017-07-191-23/+5
|
* plumbing: object, allow ignore commits in commit walkersMáximo Cuadros2017-07-182-16/+105
|
* fix naming of NewCommit{Pre,Post}IteratorSantiago M. Mola2017-06-132-6/+6
| | | | | Use Iter suffix, just as all other iterators in the project. Use Preorder and Postorder to be more clear.
* format/diff: unified diff encoder and public APIAntonio Jesus Navarro Perez2017-05-237-0/+316
| | | | | | | | | - 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: Commit, tests improvementsMáximo Cuadros2017-05-041-2/+2
|
* plumbing: MemoryObject.Writer tracks his own sizeMáximo Cuadros2017-05-044-30/+35
|
* plumbing: object.Tree making public `tree` and `parents`Máximo Cuadros2017-05-012-17/+19
|
* object: avoid unreachable codeSantiago M. Mola2017-04-261-4/+1
|
* fix format string issues as found by go vetSantiago M. Mola2017-04-261-4/+5
|
* worktree, reset implementation and status improvementsMáximo Cuadros2017-04-121-1/+1
|
* merkletrie: filesystem and index speedup and documentationMáximo Cuadros2017-04-111-18/+11
|
* merge, Repository.LogMáximo Cuadros2017-04-114-116/+138
|\
| * Add Repository.Log() method (fix #298)Antonio Jesus Navarro Perez2017-04-114-116/+138
| | | | | | | | | | | | | | | | | | | | - CommitIter is now an interface - The old CommitIter implementation is now called StorerCommitIter - CommitWalker and CommitWalkerPost are now iterators (CommitPreIterator and CommitPostIterator). - Remove Commit.History() method. There are so many ways to iterate a commit history, depending of the use case. Now, instead of use the History() method, you must use CommitPreIterator or CommitPostIterator. - Move commitSorterer to references.go because is the only place that it is used, and it must not be used into another place. - Make References method private, it must only be used into blame logic. - Added a TODO into references method, where the sortCommits is used to remove it in a near future.
* | plumbing: object, public Tree.FindEntry and minor diff changesMáximo Cuadros2017-04-114-8/+17
|/
* Set correct modes to change_adaptor testsAntonio Jesus Navarro Perez2017-04-061-0/+6
|
* object: fix Change.Files() method behavior (fix #317)Antonio Jesus Navarro Perez2017-04-062-0/+56
| | | | | - If 'from' or 'to' are tree entries that aren't files, Files() method will return nil instead of object not found error. - Added a test checking this using modules fixture.