summaryrefslogtreecommitdiff
path: root/Documentation/git.txt
AgeCommit message (Collapse)Author
2015-09-28Git 2.5.4v2.5.4Junio C Hamano
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-09-28Sync with 2.4.10Junio C Hamano
2015-09-28Git 2.4.10v2.4.10Junio C Hamano
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-09-28Sync with 2.3.10Junio C Hamano
2015-09-28Git 2.3.10v2.3.10Junio C Hamano
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-09-28Git 2.6v2.6.0Junio C Hamano
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-09-25http: limit redirection to protocol-whitelistBlake Burkhart
Previously, libcurl would follow redirection to any protocol it was compiled for support with. This is desirable to allow redirection from HTTP to HTTPS. However, it would even successfully allow redirection from HTTP to SFTP, a protocol that git does not otherwise support at all. Furthermore git's new protocol-whitelisting could be bypassed by following a redirect within the remote helper, as it was only enforced at transport selection time. This patch limits redirects within libcurl to HTTP, HTTPS, FTP and FTPS. If there is a protocol-whitelist present, this list is limited to those also allowed by the whitelist. As redirection happens from within libcurl, it is impossible for an HTTP redirect to a protocol implemented within another remote helper. When the curl version git was compiled with is too old to support restrictions on protocol redirection, we warn the user if GIT_ALLOW_PROTOCOL restrictions were requested. This is a little inaccurate, as even without that variable in the environment, we would still restrict SFTP, etc, and we do not warn in that case. But anything else means we would literally warn every time git accesses an http remote. This commit includes a test, but it is not as robust as we would hope. It redirects an http request to ftp, and checks that curl complained about the protocol, which means that we are relying on curl's specific error message to know what happened. Ideally we would redirect to a working ftp server and confirm that we can clone without protocol restrictions, and not with them. But we do not have a portable way of providing an ftp server, nor any other protocol that curl supports (https is the closest, but we would have to deal with certificates). [jk: added test and version warning] Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-09-23transport: add a protocol-whitelist environment variableJeff King
If we are cloning an untrusted remote repository into a sandbox, we may also want to fetch remote submodules in order to get the complete view as intended by the other side. However, that opens us up to attacks where a malicious user gets us to clone something they would not otherwise have access to (this is not necessarily a problem by itself, but we may then act on the cloned contents in a way that exposes them to the attacker). Ideally such a setup would sandbox git entirely away from high-value items, but this is not always practical or easy to set up (e.g., OS network controls may block multiple protocols, and we would want to enable some but not others). We can help this case by providing a way to restrict particular protocols. We use a whitelist in the environment. This is more annoying to set up than a blacklist, but defaults to safety if the set of protocols git supports grows). If no whitelist is specified, we continue to default to allowing all protocols (this is an "unsafe" default, but since the minority of users will want this sandboxing effect, it is the only sensible one). A note on the tests: ideally these would all be in a single test file, but the git-daemon and httpd test infrastructure is an all-or-nothing proposition rather than a test-by-test prerequisite. By putting them all together, we would be unable to test the file-local code on machines without apache. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-09-17Sync with 2.5.3Junio C Hamano
* maint: Git 2.5.3
2015-09-17Git 2.5.3v2.5.3Junio C Hamano
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-09-09Sync with 2.5.2Junio C Hamano
2015-09-04Git 2.5.2v2.5.2Junio C Hamano
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-09-04Sync with 2.4.9Junio C Hamano
2015-09-04Git 2.4.9v2.4.9Junio C Hamano
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-09-04Sync with 2.3.9Junio C Hamano
2015-09-04Git 2.3.9v2.3.9Junio C Hamano
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-09-04Sync with 2.2.3Junio C Hamano
2015-09-04Git 2.2.3v2.2.3Junio C Hamano
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-08-28Sync with 2.5.1Junio C Hamano
2015-08-28Git 2.5.1v2.5.1Junio C Hamano
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-08-19Merge branch 'es/doc-clean-outdated-tools' into maintJunio C Hamano
* es/doc-clean-outdated-tools: Documentation/git-tools: retire manually-maintained list Documentation/git-tools: drop references to defunct tools Documentation/git-tools: fix item text formatting Documentation/git-tools: improve discoverability of Git wiki Documentation/git: drop outdated Cogito reference
2015-08-03Sync with maintJunio C Hamano
* maint: Git 2.4.8
2015-08-03Merge branch 'es/doc-clean-outdated-tools'Junio C Hamano
* es/doc-clean-outdated-tools: Documentation/git-tools: retire manually-maintained list Documentation/git-tools: drop references to defunct tools Documentation/git-tools: fix item text formatting Documentation/git-tools: improve discoverability of Git wiki Documentation/git: drop outdated Cogito reference
2015-08-03Merge branch 'jk/pkt-log-pack'Junio C Hamano
Enhance packet tracing machinery to allow capturing an incoming pack data to a file for debugging. * jk/pkt-log-pack: pkt-line: support tracing verbatim pack contents pkt-line: tighten sideband PACK check when tracing pkt-line: simplify starts_with checks in packet tracing
2015-08-03Sync with 2.4.8Junio C Hamano
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-08-03Git 2.4.8v2.4.8Junio C Hamano
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-07-27Git 2.5v2.5.0Junio C Hamano
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-07-27Sync with 2.4.7Junio C Hamano
2015-07-27Git 2.4.7v2.4.7Junio C Hamano
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-07-25Documentation/git: drop outdated Cogito referenceEric Sunshine
Cogito hasn't been maintained since late 2006, so drop the reference to it. The warning that SCMS front-ends might override listed environment variables, however, may still be valuable, so keep it but generalize the wording. Suggested-by: Junio C Hamano <gitster@pobox.com> Signed-off-by: Eric Sunshine <sunshine@sunshineco.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-07-17Merge branch 'es/worktree-add'Junio C Hamano
Update to the "linked checkout" in 2.5.0-rc1. Instead of "checkout --to" that does not do what "checkout" normally does, move the functionality to "git worktree add". As this makes the end-user experience of the "worktree add" more or less complete, I am tempted to say we should cook the other topic that removes the internal "new-worktree-mode" hack from "checkout" a bit longer in 'next', and release 2.5 final without that one. * es/worktree-add: Documentation/git: fix stale "MULTIPLE CHECKOUT MODE" reference worktree: caution that this is still experimental Documentation/git-worktree: fix stale "git checkout --to" references
2015-07-17Documentation/git: fix stale "MULTIPLE CHECKOUT MODE" referenceEric Sunshine
This should have been changed by 93a3649 (Documentation: move linked worktree description from checkout to worktree, 2015-07-06). Signed-off-by: Eric Sunshine <sunshine@sunshineco.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-07-15Sync with 2.4.6Junio C Hamano
2015-07-15Git 2.4.6v2.4.6Junio C Hamano
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-06-25Sync with 2.4.5Junio C Hamano
2015-06-25Git 2.4.5v2.4.5Junio C Hamano
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-06-16Sync with 2.4.4Junio C Hamano
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-06-16Git 2.4.4v2.4.4Junio C Hamano
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-06-16pkt-line: support tracing verbatim pack contentsJeff King
When debugging the pack protocol, it is sometimes useful to store the verbatim pack that we sent or received on the wire. Looking at the on-disk result is often not helpful for a few reasons: 1. If the operation is a clone, we destroy the repo on failure, leaving nothing on disk. 2. If the pack is small, we unpack it immediately, and the full pack never hits the disk. 3. If we feed the pack to "index-pack --fix-thin", the resulting pack has the extra delta bases added to it. We already have a GIT_TRACE_PACKET mechanism for tracing packets. Let's extend it with GIT_TRACE_PACKFILE to dump the verbatim packfile. There are a few other positive fallouts that come from rearranging this code: - We currently disable the packet trace after seeing the PACK header, even though we may get human-readable lines on other sidebands; now we include them in the trace. - We currently try to print "PACK ..." in the trace to indicate that the packfile has started. But because we disable packet tracing, we never printed this line. We will now do so. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-06-05Sync with 2.4.3Junio C Hamano
2015-06-05Git 2.4.3v2.4.3Junio C Hamano
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-05-26Sync with 2.4.2Junio C Hamano
2015-05-26Git 2.4.2v2.4.2Junio C Hamano
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-05-13Sync with 2.4.1Junio C Hamano
* maint: Git 2.4.1
2015-05-13Git 2.4.1v2.4.1Junio C Hamano
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-05-11Merge branch 'maint'Junio C Hamano
* maint: Git 2.3.8
2015-05-11Sync with 2.3.8Junio C Hamano
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-05-11Git 2.3.8v2.3.8Junio C Hamano
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-05-11Merge branch 'nd/multiple-work-trees'Junio C Hamano
A replacement for contrib/workdir/git-new-workdir that does not rely on symbolic links and make sharing of objects and refs safer by making the borrowee and borrowers aware of each other. * nd/multiple-work-trees: (41 commits) prune --worktrees: fix expire vs worktree existence condition t1501: fix test with split index t2026: fix broken &&-chain t2026 needs procondition SANITY git-checkout.txt: a note about multiple checkout support for submodules checkout: add --ignore-other-wortrees checkout: pass whole struct to parse_branchname_arg instead of individual flags git-common-dir: make "modules/" per-working-directory directory checkout: do not fail if target is an empty directory t2025: add a test to make sure grafts is working from a linked checkout checkout: don't require a work tree when checking out into a new one git_path(): keep "info/sparse-checkout" per work-tree count-objects: report unused files in $GIT_DIR/worktrees/... gc: support prune --worktrees gc: factor out gc.pruneexpire parsing code gc: style change -- no SP before closing parenthesis checkout: clean up half-prepared directories in --to mode checkout: reject if the branch is already checked out elsewhere prune: strategies for linked checkouts checkout: support checking out into a new working directory ...
2015-04-30Git 2.4v2.4.0Junio C Hamano
Signed-off-by: Junio C Hamano <gitster@pobox.com>