Commit Graph

645 Commits

Author SHA1 Message Date
Junio C Hamano
90f7b16b3a Git 2.8
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2016-03-28 12:19:45 -07:00
Junio C Hamano
5cee349370 Revert "Merge branch 'nd/exclusion-regression-fix'"
This reverts commit 5e57f9c3df, reversing
changes made to e79112d210.

We will be postponing nd/exclusion-regression-fix topic to later
cycle.
2016-03-18 11:06:15 -07:00
Junio C Hamano
44915db935 Sync with Git 2.7.4
* maint:
  Git 2.7.4
  Git 2.6.6
  Git 2.5.5
  Git 2.4.11
2016-03-17 12:54:17 -07:00
Junio C Hamano
8e9cc5f3e2 Sync with Git 2.6.6
* maint-2.6:
  Git 2.6.6
  Git 2.5.5
  Git 2.4.11
2016-03-17 11:28:52 -07:00
Junio C Hamano
e46579643d Git 2.6.6
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2016-03-17 11:26:41 -07:00
Junio C Hamano
ce4d4e763c Merge branch 'maint-2.5' into maint-2.6
* maint-2.5:
  Git 2.5.5
  Git 2.4.11
  list-objects: pass full pathname to callbacks
  list-objects: drop name_path entirely
  list-objects: convert name_path to a strbuf
  show_object_with_name: simplify by using path_name()
  http-push: stop using name_path
  tree-diff: catch integer overflow in combine_diff_path allocation
  add helpers for detecting size_t overflow
2016-03-17 11:26:18 -07:00
Junio C Hamano
e568e563ad Git 2.5.5
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2016-03-17 11:24:59 -07:00
Junio C Hamano
c638f3e4d5 Merge branch 'maint-2.4' into maint-2.5
* maint-2.4:
  Git 2.4.11
  list-objects: pass full pathname to callbacks
  list-objects: drop name_path entirely
  list-objects: convert name_path to a strbuf
  show_object_with_name: simplify by using path_name()
  http-push: stop using name_path
  tree-diff: catch integer overflow in combine_diff_path allocation
  add helpers for detecting size_t overflow
2016-03-17 11:24:14 -07:00
Junio C Hamano
765428699a Git 2.4.11
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2016-03-17 11:23:05 -07:00
Junio C Hamano
9e689802e3 Merge branch 'cn/deprecate-ssh-git-url'
The two alternative ways to spell "ssh://" transport have been
deprecated for a long time.  The last mention of them has finally
removed from the documentation.

* cn/deprecate-ssh-git-url:
  Disown ssh+git and git+ssh
2016-03-16 13:16:40 -07:00
Junio C Hamano
5d1847b760 Sync with 2.7.3 2016-03-10 11:15:50 -08:00
Junio C Hamano
594730e980 Git 2.7.3
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2016-03-10 11:14:08 -08:00
Carlos Martín Nieto
07c7782cc8 Disown ssh+git and git+ssh
Some people argue that these were silly from the beginning (see
http://thread.gmane.org/gmane.comp.version-control.git/285590/focus=285601
for example), but we have to support them for compatibility.

That doesn't mean we have to show them in the documentation.  These
were already left out of the main list, but a reference in the main
manpage was left, so remove that.

Also add a note to discourage their use if anybody goes looking for them
in the source code.

Signed-off-by: Carlos Martín Nieto <cmn@dwim.me>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2016-03-09 13:54:38 -08:00
Junio C Hamano
5e57f9c3df Merge branch 'nd/exclusion-regression-fix'
Another try to add support to the ignore mechanism that lets you
say "this is excluded" and then later say "oh, no, this part (that
is a subset of the previous part) is not excluded".

* nd/exclusion-regression-fix:
  dir.c: don't exclude whole dir prematurely
  dir.c: support marking some patterns already matched
  dir.c: support tracing exclude
  dir.c: fix match_pathname()
2016-02-24 13:25:59 -08:00
Junio C Hamano
70bd996071 Git 2.7.2
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABAgAGBQJWy3nfAAoJELC16IaWr+bLaA0QAMkWQiqb1ptDO8/dBxoibYSy
 jxYE9vLDjgd+fuX7NkB6ezGv0WtZ2DJI2klXvPf/uZe2f5orFOEQ0TlHJxeJFFJ0
 tR8mwCQcYIR0SuK/RxvEUNrs3iC3F6bs3iP9DPesginIyzL3DMpJCHNifkbF4uXG
 veapEUiQbW09+Ye3/k24meK6hLHCFVfH8sEQail6hGDAP0hMbv28FMn6RlzgTzvj
 83yn3Negy7p76ILQhC/PZDxTSMFt++2ppUnK7f6hERFXIQq9GXoV2vx7vW2aF1Yq
 MxuvMKNON6B8wBRYP0e8FXxdUlJDtlLyWo/dhOQCq2fyPyGAa39Y3xHRziLpGPgW
 ad5FBDuphQkujFDkJghvo7LR0WfYLiJiFIztlb6WBvQj38GP323JbGExzkVXjUal
 n9on42puk8Zzf0MnaKBtEMPb69rAfX7yFIbt2q4z/c7U7obwtmZHiXc8H2GJnUyj
 IWT5estJQrpQ+HglNO+yrfuFgUm2L4TciN9Gq9pD4TSKvmDFHSevVefX5Qz+2eeV
 nSltULr94l1PqWkQJ1Szg9JUC8eembLxdpFtiS+o5RWWHrbBBbXXuG/jbRFw8d7H
 Gy1cP3/YkJlMw0v4zcN/W1SfLPAk2MOsYJCkdVRoXSWctLISq8WQ7Fp+W5vMcsR+
 t0hA5/uTsOH2bEsaXWTE
 =DkAI
 -----END PGP SIGNATURE-----

Sync with 2.7.2
2016-02-22 13:16:12 -08:00
Junio C Hamano
326e5bc91e Git 2.7.2
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2016-02-22 13:12:56 -08:00
Junio C Hamano
9f03176ef6 Merge branch 'jk/drop-rsync-transport'
It turns out "git clone" over rsync transport has been broken when
the source repository has packed references for a long time, and
nobody noticed nor complained about it.

* jk/drop-rsync-transport:
  transport: drop support for git-over-rsync
2016-02-17 10:13:28 -08:00
Nguyễn Thái Ngọc Duy
bac65a2be5 dir.c: support tracing exclude
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2016-02-15 15:32:32 -08:00
Junio C Hamano
a08595f761 Git 2.7.1
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2016-02-05 14:54:56 -08:00
Jeff King
0d0bac67ce transport: drop support for git-over-rsync
The git-over-rsync protocol is inefficient and broken, and
has been for a long time. It transfers way more objects than
it needs (grabbing all of the remote's "objects/",
regardless of which objects we need). It does its own ad-hoc
parsing of loose and packed refs from the remote, but
doesn't properly override packed refs with loose ones,
leading to garbage results (e.g., expecting the other side
to have an object pointed to by a stale packed-refs entry,
or complaining that the other side has two copies of the
refs[1]).

This latter breakage means that nobody could have
successfully pulled from a moderately active repository
since cd547b4 (fetch/push: readd rsync support, 2007-10-01).

We never made an official deprecation notice in the release
notes for git's rsync protocol, but the tutorial has marked
it as such since 914328a (Update tutorial., 2005-08-30).
And on the mailing list as far back as Oct 2005, we can find
Junio mentioning it as having "been deprecated for quite
some time."[2,3,4]. So it was old news then; cogito had
deprecated the transport in July of 2005[5] (though it did
come back briefly when Linus broke git-http-pull!).

Of course some people professed their love of rsync through
2006, but Linus clarified in his usual gentle manner[6]:

  > Thanks!  This is why I still use rsync, even though
  > everybody and their mother tells me "Linus says rsync is
  > deprecated."

  No. You're using rsync because you're actively doing
  something _wrong_.

The deprecation sentiment was reinforced in 2008, with a
mention that cloning via rsync is broken (with no fix)[7].

Even the commit porting rsync over to C from shell (cd547b4)
lists it as deprecated! So between the 10 years of informal
warnings, and the fact that it has been severely broken
since 2007, it's probably safe to simply remove it without
further deprecation warnings.

[1] http://article.gmane.org/gmane.comp.version-control.git/285101
[2] http://article.gmane.org/gmane.comp.version-control.git/10093
[3] http://article.gmane.org/gmane.comp.version-control.git/17734
[4] http://article.gmane.org/gmane.comp.version-control.git/18911
[5] http://article.gmane.org/gmane.comp.version-control.git/5617
[6] http://article.gmane.org/gmane.comp.version-control.git/19354
[7] http://article.gmane.org/gmane.comp.version-control.git/103635

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2016-02-01 13:07:41 -08:00
Junio C Hamano
754884255b Git 2.7
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2016-01-04 14:08:04 -08:00
Junio C Hamano
833e48259e Git 2.6.5
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2016-01-04 14:06:00 -08:00
Junio C Hamano
bdfc6b364a Git 2.6.4
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-12-08 14:12:45 -08:00
Андрей Рыбак
6dedd8001b Documentation: make environment variable formatting more consistent
Documentation/git.txt is not consistent in the way it
stylizes mentions of Environment Variables. Most of them are
enclosed in single quotes, some are enclosed in backticks,
some are not enclosed.

Signed-off-by: Andrey Rybak <rybak.a.v@gmail.com>
Signed-off-by: Jeff King <peff@peff.net>
2015-11-11 16:46:34 -05:00
Junio C Hamano
af40944bda Git 2.6.3
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-11-05 12:20:34 -08:00
Junio C Hamano
3c3d3f629a Git 2.6.2
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-10-16 14:40:05 -07:00
Junio C Hamano
22f698cb18 Git 2.6.1
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-09-28 19:19:34 -07:00
Junio C Hamano
3adc4ec7b9 Sync with v2.5.4 2015-09-28 19:16:54 -07:00
Junio C Hamano
24358560c3 Git 2.5.4
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-09-28 15:34:28 -07:00
Junio C Hamano
11a458befc Sync with 2.4.10 2015-09-28 15:33:56 -07:00
Junio C Hamano
a2558fb8e1 Git 2.4.10
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-09-28 15:30:30 -07:00
Junio C Hamano
6343e2f6f2 Sync with 2.3.10 2015-09-28 15:28:31 -07:00
Junio C Hamano
18b58f707f Git 2.3.10
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-09-28 15:26:52 -07:00
Junio C Hamano
be08dee973 Git 2.6
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-09-28 13:18:19 -07:00
Blake Burkhart
f4113cac0c http: limit redirection to protocol-whitelist
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-25 15:30:39 -07:00
Jeff King
a5adaced2e transport: add a protocol-whitelist environment variable
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-23 11:35:48 -07:00
Junio C Hamano
4d8002429f Sync with 2.5.3
* maint:
  Git 2.5.3
2015-09-17 12:29:49 -07:00
Junio C Hamano
ee6ad5f4d5 Git 2.5.3
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-09-17 12:16:17 -07:00
Junio C Hamano
f0bc854623 Sync with 2.5.2 2015-09-09 14:30:35 -07:00
Junio C Hamano
27ea6f85be Git 2.5.2
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-09-04 10:46:07 -07:00
Junio C Hamano
3d3caf0b78 Sync with 2.4.9 2015-09-04 10:43:23 -07:00
Junio C Hamano
74b6763816 Git 2.4.9
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-09-04 10:36:14 -07:00
Junio C Hamano
ef0e938a1a Sync with 2.3.9 2015-09-04 10:34:19 -07:00
Junio C Hamano
ecad27cf98 Git 2.3.9
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-09-04 10:32:15 -07:00
Junio C Hamano
8267cd11d6 Sync with 2.2.3 2015-09-04 10:29:28 -07:00
Junio C Hamano
441c4a4017 Git 2.2.3
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-09-04 10:26:23 -07:00
Junio C Hamano
aecce6d0ef Sync with 2.5.1 2015-08-28 12:32:45 -07:00
Junio C Hamano
c415fb791b Git 2.5.1
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-08-28 11:19:57 -07:00
Junio C Hamano
cacee08cd2 Merge branch 'es/doc-clean-outdated-tools' into maint
* 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-19 14:41:31 -07:00
Junio C Hamano
efc8a625e9 Sync with maint
* maint:
  Git 2.4.8
2015-08-03 11:20:07 -07:00