Update to 1.7.3
This commit is contained in:
parent
d5dd393b9a
commit
6d000faf2c
@ -1,86 +0,0 @@
|
|||||||
commit 730220de8be669257287e9a1f5dde349ace5426a
|
|
||||||
Author: Thomas Rast <trast@student.ethz.ch>
|
|
||||||
Date: Sat Jul 24 16:49:04 2010 +0200
|
|
||||||
|
|
||||||
Do not unquote + into ' ' in URLs
|
|
||||||
|
|
||||||
Since 9d2e942 (decode file:// and ssh:// URLs, 2010-05-23) the URL
|
|
||||||
logic unquotes escaped URLs. For the %2B type of escape, this is
|
|
||||||
conformant with RFC 2396. However, it also unquotes + into a space
|
|
||||||
character, which is only appropriate for the query strings in HTTP.
|
|
||||||
This notably broke fetching from the gtk+ repository.
|
|
||||||
|
|
||||||
We cannot just remove the corresponding code since the same
|
|
||||||
url_decode_internal() is also used by the HTTP backend to decode query
|
|
||||||
parameters. Introduce a new argument that controls whether the +
|
|
||||||
decoding happens, and use it only in the (client-side) url_decode().
|
|
||||||
|
|
||||||
Reported-by: Jasper St. Pierre <jstpierre@mecheye.net>
|
|
||||||
Signed-off-by: Thomas Rast <trast@student.ethz.ch>
|
|
||||||
Signed-off-by: Junio C Hamano <gitster@pobox.com>
|
|
||||||
|
|
||||||
diff --git a/t/t5601-clone.sh b/t/t5601-clone.sh
|
|
||||||
index 8abb71a..4431dfd 100755
|
|
||||||
--- a/t/t5601-clone.sh
|
|
||||||
+++ b/t/t5601-clone.sh
|
|
||||||
@@ -178,8 +178,14 @@ test_expect_success 'clone respects global branch.autosetuprebase' '
|
|
||||||
|
|
||||||
test_expect_success 'respect url-encoding of file://' '
|
|
||||||
git init x+y &&
|
|
||||||
- test_must_fail git clone "file://$PWD/x+y" xy-url &&
|
|
||||||
- git clone "file://$PWD/x%2By" xy-url
|
|
||||||
+ git clone "file://$PWD/x+y" xy-url-1 &&
|
|
||||||
+ git clone "file://$PWD/x%2By" xy-url-2
|
|
||||||
+'
|
|
||||||
+
|
|
||||||
+test_expect_success 'do not query-string-decode + in URLs' '
|
|
||||||
+ rm -rf x+y &&
|
|
||||||
+ git init "x y" &&
|
|
||||||
+ test_must_fail git clone "file://$PWD/x+y" xy-no-plus
|
|
||||||
'
|
|
||||||
|
|
||||||
test_expect_success 'do not respect url-encoding of non-url path' '
|
|
||||||
diff --git a/url.c b/url.c
|
|
||||||
index 2306236..cd8f74f 100644
|
|
||||||
--- a/url.c
|
|
||||||
+++ b/url.c
|
|
||||||
@@ -67,7 +67,8 @@ static int url_decode_char(const char *q)
|
|
||||||
return val;
|
|
||||||
}
|
|
||||||
|
|
||||||
-static char *url_decode_internal(const char **query, const char *stop_at, struct strbuf *out)
|
|
||||||
+static char *url_decode_internal(const char **query, const char *stop_at,
|
|
||||||
+ struct strbuf *out, int decode_plus)
|
|
||||||
{
|
|
||||||
const char *q = *query;
|
|
||||||
|
|
||||||
@@ -90,7 +91,7 @@ static char *url_decode_internal(const char **query, const char *stop_at, struct
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- if (c == '+')
|
|
||||||
+ if (decode_plus && c == '+')
|
|
||||||
strbuf_addch(out, ' ');
|
|
||||||
else
|
|
||||||
strbuf_addch(out, c);
|
|
||||||
@@ -110,17 +111,17 @@ char *url_decode(const char *url)
|
|
||||||
strbuf_add(&out, url, colon - url);
|
|
||||||
url = colon;
|
|
||||||
}
|
|
||||||
- return url_decode_internal(&url, NULL, &out);
|
|
||||||
+ return url_decode_internal(&url, NULL, &out, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
char *url_decode_parameter_name(const char **query)
|
|
||||||
{
|
|
||||||
struct strbuf out = STRBUF_INIT;
|
|
||||||
- return url_decode_internal(query, "&=", &out);
|
|
||||||
+ return url_decode_internal(query, "&=", &out, 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
char *url_decode_parameter_value(const char **query)
|
|
||||||
{
|
|
||||||
struct strbuf out = STRBUF_INIT;
|
|
||||||
- return url_decode_internal(query, "&", &out);
|
|
||||||
+ return url_decode_internal(query, "&", &out, 1);
|
|
||||||
}
|
|
9
git.spec
9
git.spec
@ -6,7 +6,7 @@
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
Name: git
|
Name: git
|
||||||
Version: 1.7.2.3
|
Version: 1.7.3
|
||||||
Release: 1%{?dist}
|
Release: 1%{?dist}
|
||||||
Summary: Fast Version Control System
|
Summary: Fast Version Control System
|
||||||
License: GPLv2
|
License: GPLv2
|
||||||
@ -23,9 +23,6 @@ Patch0: git-1.5-gitweb-home-link.patch
|
|||||||
Patch1: git-cvsimport-Ignore-cvsps-2.2b1-Branches-output.patch
|
Patch1: git-cvsimport-Ignore-cvsps-2.2b1-Branches-output.patch
|
||||||
# https://bugzilla.redhat.com/500137
|
# https://bugzilla.redhat.com/500137
|
||||||
Patch2: git-1.6-update-contrib-hooks-path.patch
|
Patch2: git-1.6-update-contrib-hooks-path.patch
|
||||||
# Do not unquote + into ' ' in URLs
|
|
||||||
# cherry-picked from upstream
|
|
||||||
Patch3: git-1.7.2.1-730220de.patch
|
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||||
|
|
||||||
BuildRequires: desktop-file-utils
|
BuildRequires: desktop-file-utils
|
||||||
@ -230,7 +227,6 @@ Requires: emacs-git = %{version}-%{release}
|
|||||||
%patch0 -p1
|
%patch0 -p1
|
||||||
%patch1 -p1
|
%patch1 -p1
|
||||||
%patch2 -p1
|
%patch2 -p1
|
||||||
%patch3 -p1
|
|
||||||
|
|
||||||
# Use these same options for every invocation of 'make'.
|
# Use these same options for every invocation of 'make'.
|
||||||
# Otherwise it will rebuild in %%install due to flags changes.
|
# Otherwise it will rebuild in %%install due to flags changes.
|
||||||
@ -458,6 +454,9 @@ rm -rf %{buildroot}
|
|||||||
# No files for you!
|
# No files for you!
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Sun Sep 19 2010 Todd Zullinger <tmz@pobox.com> - 1.7.3-1
|
||||||
|
- Update to 1.7.3
|
||||||
|
|
||||||
* Tue Sep 07 2010 Adam Tkac <atkac redhat com> - 1.7.2.3-1
|
* Tue Sep 07 2010 Adam Tkac <atkac redhat com> - 1.7.2.3-1
|
||||||
- update to 1.7.2.3
|
- update to 1.7.2.3
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user