aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Merge pull request #846 from dsymonds/compactMáximo Cuadros2018-06-062-23/+67
|\ | | | | packfile: improve Index memory representation to be more compact
| * packfile: improve Index memory representation to be more compactDavid Symonds2018-05-302-23/+67
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of using a map for offset indexing, use a sorted slice. Binary searching is fast, and a slice is much more compact. This has a negligible hit on speed, but has a significant impact on memory usage, especially for larger repos. benchmark old ns/op new ns/op delta BenchmarkIndexConstruction-12 15506506 14056098 -9.35% benchmark old allocs new allocs delta BenchmarkIndexConstruction-12 60764 60385 -0.62% benchmark old bytes new bytes delta BenchmarkIndexConstruction-12 4318145 3913169 -9.38% Signed-off-by: David Symonds <dsymonds@golang.org>
* | Merge pull request #848 from josephvusich/fix/cve-2018-11235Máximo Cuadros2018-06-065-12/+73
|\ \ | | | | | | config: modules, worktree: Submodule fixes for CVE-2018-11235
| * | worktree: Don't allow .gitmodules to be a symlink. Fixes CVE-2018-11235Joseph Vusich2018-05-302-0/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | References: * https://blogs.msdn.microsoft.com/devops/2018/05/29/announcing-the-may-2018-git-security-vulnerability/ * https://security-tracker.debian.org/tracker/CVE-2018-11235 * https://github.com/git/git/commit/10ecfa76491e4923988337b2e2243b05376b40de Signed-off-by: Joseph Vusich <jvusich@amazon.com>
| * | config: modules, Ignore submodules with dotdot '..' path components. Fixes ↵Joseph Vusich2018-05-303-12/+46
| |/ | | | | | | | | | | | | | | | | | | | | CVE-2018-11235 References: * https://blogs.msdn.microsoft.com/devops/2018/05/29/announcing-the-may-2018-git-security-vulnerability/ * https://security-tracker.debian.org/tracker/CVE-2018-11235 * https://github.com/git/git/commit/0383bbb9015898cbc79abd7b64316484d7713b44 Signed-off-by: Joseph Vusich <jvusich@amazon.com>
* | Merge pull request #854 from ajnavarro/dotgit-not-internalMáximo Cuadros2018-06-0619-10/+9
|\ \ | | | | | | dotgit: Move package outside internal.
| * | Remove printlnAntonio Jesus Navarro Perez2018-06-051-1/+0
| | | | | | | | | | | | Signed-off-by: Antonio Jesus Navarro Perez <antnavper@gmail.com>
| * | dotgit: Move package outside internal.Antonio Jesus Navarro Perez2018-06-0518-9/+9
|/ / | | | | | | Signed-off-by: Antonio Jesus Navarro Perez <antnavper@gmail.com>
* | Merge pull request #845 from dsymonds/masterMáximo Cuadros2018-06-051-4/+4
|\ \ | |/ |/| idxfile: optimise allocations in readObjectNames
| * idxfile: optimise allocations in readObjectNamesDavid Symonds2018-05-301-4/+4
|/ | | | | | | This makes all the required Entry allocations in one go, instead of huge amounts of small individual allocations. Signed-off-by: David Symonds <dsymonds@golang.org>
* Merge pull request #833 from jfontan/slow-reference-updatev4.4.0Máximo Cuadros2018-05-161-2/+22
|\ | | | | git: remote, Do not iterate all references on update.
| * 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>
* Worktree: Provide ability to add excludes (#825)Alan D. Cabrera2018-05-115-7/+285
| | | Worktree: Provide ability to add excludes
* travis: dropping 1.8.x support due to golang.org/x/crypto/ssh requirementMáximo Cuadros2018-05-021-1/+0
|
* Merge pull request #815 from kuba--/fix-worktree/814Máximo Cuadros2018-04-185-8/+62
|\ | | | | Fix for "Worktree Add function adds ".git" directory"
| * git: worktree, Skip special git directory. Fixes #814kuba--2018-04-185-8/+62
|/ | | | Signed-off-by: kuba-- <kuba@sourced.tech>
* Merge pull request #706 from antham/resolve-commit-sha1v4.3.1Máximo Cuadros2018-04-172-8/+33
|\ | | | | Resolve full commit sha
| * Resolve full commit sha to plumbing hashantham2018-04-162-8/+33
| | | | | | | | Signed-off-by: antham <hamonanth@gmail.com>
* | storage: filesystem, close shallow file when readMáximo Cuadros2018-04-171-0/+2
| | | | | | | | Signed-off-by: Máximo Cuadros <mcuadros@gmail.com>
* | Merge pull request #810 from jfontan/fix/update-shallowMáximo Cuadros2018-04-173-2/+132
|\ \ | | | | | | git: remote, Add shallow commits instead of substituting. Fixes #412
| * | git: remote, Add shallow commits instead of substituting. Fixes #412Javi Fontan2018-04-163-2/+132
| |/ | | | | | | | | | | | | | | | | | | 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>
* | Merge pull request #807 from keybase/strib/src-d-ignore-non-hash-filesMáximo Cuadros2018-04-172-3/+23
|\ \ | | | | | | dotgit: ignore filenames that don't match a hash
| * | dotgit: add test for bad file in pack directoryJeremy Stribling2018-04-161-1/+13
| | | | | | | | | | | | | | | | | | | | | Suggested by mcuadros. Issue: src-d/go-git#807 Signed-off-by: Jeremy Stribling <strib@alum.mit.edu>
| * | dotgit: ignore filenames that don't match a hashJeremy Stribling2018-04-131-2/+10
| |/ | | | | | | | | | | | | For both packfiles and object files. Issue: keybase/client#11366 Signed-off-by: Jeremy Stribling <strib@alum.mit.edu>
* | Merge pull request #808 from jfontan/fix/benchmark-fixturesMáximo Cuadros2018-04-161-0/+1
|\ \ | |/ |/| storage: dotgit, init fixtures in benchmark. Fixes #770
| * storage: dotgit, init fixtures in benchmark. Fixes #770Javi Fontan2018-04-161-0/+1
|/ | | | | | | fixtures is not initialized in BenchmarkRefMultipleTimes and caused panic. Signed-off-by: Javi Fontan <jfontan@gmail.com>
* Merge pull request #803 from TheHipbot/branch-tracking-on-clonev4.3.0Máximo Cuadros2018-04-116-7/+507
|\ | | | | config: adds branches to config for tracking branches against remotes…
| * config: adds branches to config for tracking branches against remotes, ↵Jeremy Chambers2018-04-106-7/+507
| | | | | | | | | | | | updates clone to track when cloning a branch. Fixes #313 Signed-off-by: Jeremy Chambers <jeremy@thehipbot.com>
* | Merge pull request #804 from wardn/masterMáximo Cuadros2018-04-111-0/+0
|\ \ | |/ |/| use bsd superset for conditional compilation
| * use bsd superset for conditional compilationwardn2018-04-101-0/+0
|/ | | | Signed-off-by: wardn <wardn@users.noreply.github.com>
* Merge pull request #784 from mvdan/open-detectMáximo Cuadros2018-04-043-6/+73
|\ | | | | add PlainOpen variant to find .git in parent dirs
| * add PlainOpen variant to find .git in parent dirsDaniel Martí2018-04-033-6/+73
|/ | | | | | | | | This is the git tool's behavior that people are used to; if one runs a git command in a repository's subdirectory, git still works. Fixes #765. Signed-off-by: Daniel Martí <mvdan@mvdan.cc>
* Merge pull request #797 from jvusich/fix/oversize-pkt-linev4.2.1Máximo Cuadros2018-04-033-2/+19
|\ | | | | plumbing: format: pktline, Accept oversized pkt-lines up to 65524 bytes
| * plumbing: format: pktline, Accept oversized pkt-lines up to 65524 bytesJoseph Vusich2018-04-023-2/+19
|/ | | | | | | | | | | | | | | | | | | | | | | | | The canonical Git client successfully decodes sideband packets up to 65524 bytes in length (4-byte header + 65520-byte payload). The Git protocol documentation was updated in August 2016 to reduce the maximum payload size to 65516 bytes, however old implementations still exist in the wild emitting 65520-byte payloads. As there is no technical difficulty with accepting (not emitting) larger payload sizes, this change adjusts the limit check to allow successful decoding of packets up to 65524 bytes. This change increases compatibility with the current canonical Git implementation. Doc changes from August 2016: https://github.com/git/git/commit/7841c4801ce51f1f62d376d164372e8677c6bc94#diff-52695c8fe91b78b70cea44562ae28297L67 Current packet buffer size is still LARGE_PACKET_MAX (+1 null): https://github.com/git/git/blob/468165c1d8a442994a825f3684528361727cd8c0/sideband.c#L24 https://github.com/git/git/blob/468165c1d8a442994a825f3684528361727cd8c0/sideband.c#L36 LARGE_PACKET_MAX definition: https://github.com/git/git/blob/468165c1d8a442994a825f3684528361727cd8c0/pkt-line.h#L100 Signed-off-by: Joseph Vusich <jvusich@amazon.com>
* Merge pull request #792 from ajnavarro/fix/support-no-symref-capabilityMáximo Cuadros2018-04-022-9/+172
|\ | | | | Resolve HEAD if symRefs capability is not supported
| * Resolve HEAD if symRefs capability is not supportedAntonio Jesus Navarro Perez2018-03-262-9/+172
| | | | | | | | Signed-off-by: Antonio Jesus Navarro Perez <antnavper@gmail.com>
* | Merge pull request #795 from shanedasilva/add_commit_hash_to_blame_resultMáximo Cuadros2018-04-022-2/+10
|\ \ | | | | | | Add commit hash to blame result
| * | Add commit hash to blame resultShane Da Silva2018-03-272-2/+10
| |/ | | | | | | Signed-off-by: Shane Da Silva <shanemichaeldasilva@gmail.com>
* | Merge pull request #794 from jfontan/fix/checkcloseMáximo Cuadros2018-04-0216-39/+59
|\ \ | |/ |/| Use CheckClose with named returns and fix tests
| * storage: filesystem/dotgit, fix typo in return paramJavi Fontan2018-03-281-1/+1
| | | | | | | | Signed-off-by: Javi Fontan <jfontan@gmail.com>
| * plumbing: transport, make target repo writeable in testsJavi Fontan2018-03-271-0/+21
| | | | | | | | | | | | | | | | | | Some tests write to an already existent repository retrieved from fixtures. The permissions of these files are read only and make receive pack fail. This was shadowed before as close errors were lost. Signed-off-by: Javi Fontan <jfontan@gmail.com>
| * *: Use CheckClose with named returnsJavi Fontan2018-03-2715-39/+38
|/ | | | | | | | 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>
* Merge pull request #786 from mcuadros/test-shortMáximo Cuadros2018-03-224-0/+48
|\ | | | | *: skip time consuming tests
| * *: skip time consuming testsMáximo Cuadros2018-03-214-0/+48
|/ | | | Signed-off-by: Máximo Cuadros <mcuadros@gmail.com>
* Merge pull request #783 from maguro/refspec-srcOri Rawlings2018-03-142-1/+26
|\ | | | | Fix RefSpec.Src()
| * Add more unit tests for RefSpecAlan Cabrera2018-03-141-0/+13
| | | | | | | | | | | | Need this to get better code coverage of the bug fix. Signed-off-by: Alan Cabrera <adc@toolazydogs.com>
| * Fix RefSpec.Src()Alan Cabrera2018-03-142-1/+13
| | | | | | | | | | | | | | | | | | Previously, the Src() function was assuming there are no “+” characters in the refspec src and erroneously used the strings.Index() function to compute the start index of src in the refspec. This change now uses the IsForceUpdate() method to decide how to elide the force update token. Signed-off-by: Alan Cabrera <adc@toolazydogs.com>
* | Merge pull request #778 from konsorten/fix-windows-symlink3Máximo Cuadros2018-03-124-0/+39
|\ \ | | | | | | Worktree.Checkout: handling of symlink on Windows
| * | Added support for non-symlink checkouts on Windows when elevated rights are ↵Felix Kollmann2018-03-124-0/+39
|/ / | | | | | | | | | | missing This implementation mimicks the behavior of Git on Windows Signed-off-by: Felix Kollmann <mail@fkollmann.de>
* | Merge pull request #771 from ilius/PR-log-orderv4.2.0Máximo Cuadros2018-03-126-3/+329
|\ \ | |/ |/| repository.Log: add alternatives for commit traversal order