swh:1:snp:87728f882295b5ba27035837248a04c5be121c53
Revision 8e27391a5fdc9194c4ed3ed6c64ec4750a1a08b5 authored by Jonathan Tan on 28 February 2017, 02:53:11 UTC, committed by Junio C Hamano on 28 February 2017, 19:35:53 UTC
http.c supports HTTP redirects of the form http://foo/info/refs?service=git-upload-pack -> http://anything -> http://bar/info/refs?service=git-upload-pack (that is to say, as long as the Git part of the path and the query string is preserved in the final redirect destination, the intermediate steps can have any URL). However, if one of the intermediate steps results in an HTTP exception, a confusing "unable to update url base from redirection" message is printed instead of a Curl error message with the HTTP exception code. This was introduced by 2 commits. Commit c93c92f ("http: update base URLs when we see redirects", 2013-09-28) introduced a best-effort optimization that required checking if only the "base" part of the URL differed between the initial request and the final redirect destination, but it performed the check before any HTTP status checking was done. If something went wrong, the normal code path was still followed, so this did not cause any confusing error messages until commit 6628eb4 ("http: always update the base URL for redirects", 2016-12-06), which taught http to die if the non-"base" part of the URL differed. Therefore, teach http to check the HTTP status before attempting to check if only the "base" part of the URL differed. This commit teaches http_request_reauth to return early without updating options->base_url upon an error; the only invoker of this function that passes a non-NULL "options" is remote-curl.c (through "http_get_strbuf"), which only uses options->base_url for an informational message in the situations that this commit cares about (that is, when the return value is not HTTP_OK). The included test checks that the redirect scheme at the beginning of this commit message works, and that returning a 502 in the middle of the redirect scheme produces the correct result. Note that this is different from the test in commit 6628eb4 ("http: always update the base URL for redirects", 2016-12-06) in that this commit tests that a Git-shaped URL (http://.../info/refs?service=git-upload-pack) works, whereas commit 6628eb4 tests that a non-Git-shaped URL (http://.../info/refs/foo?service=git-upload-pack) does not work (even though Git is processing that URL) and is an error that is fatal, not silently swallowed. Signed-off-by: Jonathan Tan <jonathantanmy@google.com> Acked-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
1 parent e7e07d5
Tip revision: 6c40894d2466d4e7fddc047a05116aa9d14712ee authored by Junio C Hamano on 30 August 2021, 23:06:22 UTC
The second batch
The second batch
Tip revision: 6c40894
File | Mode | Size |
---|---|---|
Documentation | ||
block-sha1 | ||
builtin | ||
ci | ||
compat | ||
contrib | ||
ewah | ||
git-gui | ||
gitk-git | ||
gitweb | ||
mergetools | ||
perl | ||
po | ||
ppc | ||
refs | ||
t | ||
templates | ||
vcs-svn | ||
xdiff | ||
.gitattributes | -rw-r--r-- | 114 bytes |
.gitignore | -rw-r--r-- | 3.1 KB |
.mailmap | -rw-r--r-- | 14.3 KB |
.travis.yml | -rw-r--r-- | 3.1 KB |
COPYING | -rw-r--r-- | 18.3 KB |
GIT-VERSION-GEN | -rwxr-xr-x | 752 bytes |
INSTALL | -rw-r--r-- | 8.9 KB |
LGPL-2.1 | -rw-r--r-- | 26.2 KB |
Makefile | -rw-r--r-- | 78.0 KB |
README.md | -rw-r--r-- | 2.9 KB |
RelNotes | l--------- | 33 bytes |
abspath.c | -rw-r--r-- | 7.0 KB |
aclocal.m4 | -rw-r--r-- | 1.4 KB |
advice.c | -rw-r--r-- | 4.0 KB |
advice.h | -rw-r--r-- | 967 bytes |
alias.c | -rw-r--r-- | 1.5 KB |
alloc.c | -rw-r--r-- | 2.6 KB |
apply.c | -rw-r--r-- | 128.0 KB |
apply.h | -rw-r--r-- | 3.9 KB |
archive-tar.c | -rw-r--r-- | 12.3 KB |
archive-zip.c | -rw-r--r-- | 15.4 KB |
archive.c | -rw-r--r-- | 14.6 KB |
archive.h | -rw-r--r-- | 1.3 KB |
argv-array.c | -rw-r--r-- | 1.7 KB |
argv-array.h | -rw-r--r-- | 689 bytes |
attr.c | -rw-r--r-- | 19.8 KB |
attr.h | -rw-r--r-- | 1.6 KB |
base85.c | -rw-r--r-- | 2.8 KB |
bisect.c | -rw-r--r-- | 25.0 KB |
bisect.h | -rw-r--r-- | 713 bytes |
blob.c | -rw-r--r-- | 389 bytes |
blob.h | -rw-r--r-- | 664 bytes |
branch.c | -rw-r--r-- | 9.2 KB |
branch.h | -rw-r--r-- | 2.4 KB |
builtin.h | -rw-r--r-- | 9.0 KB |
bulk-checkin.c | -rw-r--r-- | 7.0 KB |
bulk-checkin.h | -rw-r--r-- | 323 bytes |
bundle.c | -rw-r--r-- | 12.3 KB |
bundle.h | -rw-r--r-- | 707 bytes |
cache-tree.c | -rw-r--r-- | 17.4 KB |
cache-tree.h | -rw-r--r-- | 1.6 KB |
cache.h | -rw-r--r-- | 72.0 KB |
check-builtins.sh | -rwxr-xr-x | 596 bytes |
check-racy.c | -rw-r--r-- | 523 bytes |
check_bindir | -rwxr-xr-x | 374 bytes |
color.c | -rw-r--r-- | 8.5 KB |
color.h | -rw-r--r-- | 3.2 KB |
column.c | -rw-r--r-- | 9.7 KB |
column.h | -rw-r--r-- | 1.4 KB |
combine-diff.c | -rw-r--r-- | 40.2 KB |
command-list.txt | -rw-r--r-- | 8.8 KB |
commit-slab.h | -rw-r--r-- | 4.7 KB |
commit.c | -rw-r--r-- | 40.7 KB |
commit.h | -rw-r--r-- | 13.4 KB |
common-main.c | -rw-r--r-- | 1.1 KB |
config.c | -rw-r--r-- | 62.2 KB |
config.mak.in | -rw-r--r-- | 540 bytes |
config.mak.uname | -rw-r--r-- | 16.6 KB |
configure.ac | -rw-r--r-- | 35.2 KB |
connect.c | -rw-r--r-- | 20.5 KB |
connect.h | -rw-r--r-- | 676 bytes |
connected.c | -rw-r--r-- | 3.0 KB |
connected.h | -rw-r--r-- | 1.5 KB |
convert.c | -rw-r--r-- | 40.5 KB |
convert.h | -rw-r--r-- | 2.6 KB |
copy.c | -rw-r--r-- | 1.3 KB |
credential-cache--daemon.c | -rw-r--r-- | 6.9 KB |
credential-cache.c | -rw-r--r-- | 2.9 KB |
credential-store.c | -rw-r--r-- | 5.0 KB |
credential.c | -rw-r--r-- | 7.8 KB |
credential.h | -rw-r--r-- | 833 bytes |
csum-file.c | -rw-r--r-- | 4.0 KB |
csum-file.h | -rw-r--r-- | 1.3 KB |
ctype.c | -rw-r--r-- | 2.6 KB |
daemon.c | -rw-r--r-- | 32.1 KB |
date.c | -rw-r--r-- | 27.1 KB |
decorate.c | -rw-r--r-- | 1.8 KB |
decorate.h | -rw-r--r-- | 400 bytes |
delta.h | -rw-r--r-- | 3.4 KB |
diff-delta.c | -rw-r--r-- | 15.4 KB |
diff-lib.c | -rw-r--r-- | 14.6 KB |
diff-no-index.c | -rw-r--r-- | 6.9 KB |
diff.c | -rw-r--r-- | 141.6 KB |
diff.h | -rw-r--r-- | 12.9 KB |
diffcore-break.c | -rw-r--r-- | 9.0 KB |
diffcore-delta.c | -rw-r--r-- | 5.3 KB |
diffcore-order.c | -rw-r--r-- | 2.4 KB |
diffcore-pickaxe.c | -rw-r--r-- | 6.1 KB |
diffcore-rename.c | -rw-r--r-- | 17.6 KB |
diffcore.h | -rw-r--r-- | 4.7 KB |
dir-iterator.c | -rw-r--r-- | 4.8 KB |
dir-iterator.h | -rw-r--r-- | 2.7 KB |
dir.c | -rw-r--r-- | 71.6 KB |
dir.h | -rw-r--r-- | 10.6 KB |
editor.c | -rw-r--r-- | 1.5 KB |
entry.c | -rw-r--r-- | 7.4 KB |
environment.c | -rw-r--r-- | 9.7 KB |
exec_cmd.c | -rw-r--r-- | 3.0 KB |
exec_cmd.h | -rw-r--r-- | 540 bytes |
fast-import.c | -rw-r--r-- | 88.8 KB |
fetch-pack.c | -rw-r--r-- | 28.0 KB |
fetch-pack.h | -rw-r--r-- | 1.1 KB |
fmt-merge-msg.h | -rw-r--r-- | 187 bytes |
fsck.c | -rw-r--r-- | 24.2 KB |
fsck.h | -rw-r--r-- | 1.8 KB |
generate-cmdlist.sh | -rwxr-xr-x | 929 bytes |
gettext.c | -rw-r--r-- | 5.1 KB |
gettext.h | -rw-r--r-- | 2.2 KB |
git-add--interactive.perl | -rwxr-xr-x | 41.3 KB |
git-archimport.perl | -rwxr-xr-x | 36.0 KB |
git-bisect.sh | -rwxr-xr-x | 15.6 KB |
git-compat-util.h | -rw-r--r-- | 29.4 KB |
git-cvsexportcommit.perl | -rwxr-xr-x | 12.6 KB |
git-cvsimport.perl | -rwxr-xr-x | 31.3 KB |
git-cvsserver.perl | -rwxr-xr-x | 158.5 KB |
git-difftool--helper.sh | -rwxr-xr-x | 2.2 KB |
git-filter-branch.sh | -rwxr-xr-x | 12.5 KB |
git-instaweb.sh | -rwxr-xr-x | 18.1 KB |
git-merge-octopus.sh | -rwxr-xr-x | 2.4 KB |
git-merge-one-file.sh | -rwxr-xr-x | 3.6 KB |
git-merge-resolve.sh | -rwxr-xr-x | 944 bytes |
git-mergetool--lib.sh | -rw-r--r-- | 8.7 KB |
git-mergetool.sh | -rwxr-xr-x | 10.1 KB |
git-p4.py | -rwxr-xr-x | 139.2 KB |
git-parse-remote.sh | -rw-r--r-- | 2.6 KB |
git-quiltimport.sh | -rwxr-xr-x | 3.5 KB |
git-rebase--am.sh | -rw-r--r-- | 2.4 KB |
git-rebase--interactive.sh | -rw-r--r-- | 34.5 KB |
git-rebase--merge.sh | -rw-r--r-- | 3.8 KB |
git-rebase.sh | -rwxr-xr-x | 15.8 KB |
git-remote-testgit.sh | -rwxr-xr-x | 2.9 KB |
git-request-pull.sh | -rwxr-xr-x | 3.6 KB |
git-send-email.perl | -rwxr-xr-x | 50.4 KB |
git-sh-i18n.sh | -rw-r--r-- | 2.3 KB |
git-sh-setup.sh | -rw-r--r-- | 9.1 KB |
git-stash.sh | -rwxr-xr-x | 13.9 KB |
git-submodule.sh | -rwxr-xr-x | 27.0 KB |
git-svn.perl | -rwxr-xr-x | 62.6 KB |
git-web--browse.sh | -rwxr-xr-x | 4.3 KB |
git.c | -rw-r--r-- | 20.1 KB |
git.rc | -rw-r--r-- | 566 bytes |
gpg-interface.c | -rw-r--r-- | 6.3 KB |
gpg-interface.h | -rw-r--r-- | 1.2 KB |
graph.c | -rw-r--r-- | 36.3 KB |
graph.h | -rw-r--r-- | 4.9 KB |
grep.c | -rw-r--r-- | 43.6 KB |
grep.h | -rw-r--r-- | 4.8 KB |
hashmap.c | -rw-r--r-- | 6.3 KB |
hashmap.h | -rw-r--r-- | 2.5 KB |
help.c | -rw-r--r-- | 11.9 KB |
help.h | -rw-r--r-- | 1.1 KB |
hex.c | -rw-r--r-- | 2.5 KB |
http-backend.c | -rw-r--r-- | 16.6 KB |
http-fetch.c | -rw-r--r-- | 2.2 KB |
http-push.c | -rw-r--r-- | 49.7 KB |
http-walker.c | -rw-r--r-- | 14.6 KB |
http.c | -rw-r--r-- | 58.0 KB |
http.h | -rw-r--r-- | 6.5 KB |
ident.c | -rw-r--r-- | 12.2 KB |
imap-send.c | -rw-r--r-- | 35.7 KB |
iterator.h | -rw-r--r-- | 2.1 KB |
khash.h | -rw-r--r-- | 12.6 KB |
kwset.c | -rw-r--r-- | 20.5 KB |
kwset.h | -rw-r--r-- | 2.6 KB |
levenshtein.c | -rw-r--r-- | 2.5 KB |
levenshtein.h | -rw-r--r-- | 203 bytes |
line-log.c | -rw-r--r-- | 30.6 KB |
line-log.h | -rw-r--r-- | 1.8 KB |
line-range.c | -rw-r--r-- | 6.5 KB |
line-range.h | -rw-r--r-- | 1.3 KB |
list-objects.c | -rw-r--r-- | 6.0 KB |
list-objects.h | -rw-r--r-- | 381 bytes |
list.h | -rw-r--r-- | 4.6 KB |
ll-merge.c | -rw-r--r-- | 10.6 KB |
ll-merge.h | -rw-r--r-- | 567 bytes |
lockfile.c | -rw-r--r-- | 5.6 KB |
lockfile.h | -rw-r--r-- | 10.3 KB |
log-tree.c | -rw-r--r-- | 24.9 KB |
log-tree.h | -rw-r--r-- | 1.2 KB |
mailinfo.c | -rw-r--r-- | 26.0 KB |
mailinfo.h | -rw-r--r-- | 991 bytes |
mailmap.c | -rw-r--r-- | 8.9 KB |
mailmap.h | -rw-r--r-- | 271 bytes |
match-trees.c | -rw-r--r-- | 8.1 KB |
merge-blobs.c | -rw-r--r-- | 1.9 KB |
merge-blobs.h | -rw-r--r-- | 194 bytes |
merge-recursive.c | -rw-r--r-- | 61.0 KB |
merge-recursive.h | -rw-r--r-- | 1.6 KB |
merge.c | -rw-r--r-- | 2.5 KB |
mergesort.c | -rw-r--r-- | 1.5 KB |
mergesort.h | -rw-r--r-- | 574 bytes |
mru.c | -rw-r--r-- | 968 bytes |
mru.h | -rw-r--r-- | 1.0 KB |
name-hash.c | -rw-r--r-- | 5.9 KB |
notes-cache.c | -rw-r--r-- | 2.2 KB |
notes-cache.h | -rw-r--r-- | 500 bytes |
notes-merge.c | -rw-r--r-- | 22.7 KB |
notes-merge.h | -rw-r--r-- | 2.8 KB |
notes-utils.c | -rw-r--r-- | 4.9 KB |
notes-utils.h | -rw-r--r-- | 1.4 KB |
notes.c | -rw-r--r-- | 36.7 KB |
notes.h | -rw-r--r-- | 11.7 KB |
object.c | -rw-r--r-- | 9.5 KB |
object.h | -rw-r--r-- | 4.5 KB |
pack-bitmap-write.c | -rw-r--r-- | 12.3 KB |
pack-bitmap.c | -rw-r--r-- | 24.9 KB |
pack-bitmap.h | -rw-r--r-- | 1.7 KB |
pack-check.c | -rw-r--r-- | 5.2 KB |
pack-objects.c | -rw-r--r-- | 2.1 KB |
pack-objects.h | -rw-r--r-- | 2.0 KB |
pack-revindex.c | -rw-r--r-- | 5.6 KB |
pack-revindex.h | -rw-r--r-- | 323 bytes |
pack-write.c | -rw-r--r-- | 10.2 KB |
pack.h | -rw-r--r-- | 3.2 KB |
pager.c | -rw-r--r-- | 5.7 KB |
parse-options-cb.c | -rw-r--r-- | 5.2 KB |
parse-options.c | -rw-r--r-- | 17.4 KB |
parse-options.h | -rw-r--r-- | 9.9 KB |
patch-delta.c | -rw-r--r-- | 2.2 KB |
patch-ids.c | -rw-r--r-- | 3.1 KB |
patch-ids.h | -rw-r--r-- | 596 bytes |
path.c | -rw-r--r-- | 30.2 KB |
pathspec.c | -rw-r--r-- | 14.7 KB |
pathspec.h | -rw-r--r-- | 3.0 KB |
pkt-line.c | -rw-r--r-- | 8.2 KB |
pkt-line.h | -rw-r--r-- | 3.5 KB |
preload-index.c | -rw-r--r-- | 2.5 KB |
pretty.c | -rw-r--r-- | 45.2 KB |
prio-queue.c | -rw-r--r-- | 1.9 KB |
prio-queue.h | -rw-r--r-- | 1.5 KB |
progress.c | -rw-r--r-- | 6.3 KB |
progress.h | -rw-r--r-- | 504 bytes |
prompt.c | -rw-r--r-- | 1.4 KB |
prompt.h | -rw-r--r-- | 168 bytes |
quote.c | -rw-r--r-- | 10.6 KB |
quote.h | -rw-r--r-- | 2.8 KB |
reachable.c | -rw-r--r-- | 4.8 KB |
reachable.h | -rw-r--r-- | 304 bytes |
read-cache.c | -rw-r--r-- | 62.1 KB |
ref-filter.c | -rw-r--r-- | 45.3 KB |
ref-filter.h | -rw-r--r-- | 3.6 KB |
reflog-walk.c | -rw-r--r-- | 8.5 KB |
reflog-walk.h | -rw-r--r-- | 792 bytes |
refs.c | -rw-r--r-- | 37.7 KB |
refs.h | -rw-r--r-- | 20.1 KB |
remote-curl.c | -rw-r--r-- | 26.7 KB |
remote-testsvn.c | -rw-r--r-- | 8.3 KB |
remote.c | -rw-r--r-- | 58.7 KB |
remote.h | -rw-r--r-- | 8.1 KB |
replace_object.c | -rw-r--r-- | 3.0 KB |
rerere.c | -rw-r--r-- | 31.0 KB |
rerere.h | -rw-r--r-- | 1.2 KB |
resolve-undo.c | -rw-r--r-- | 4.3 KB |
resolve-undo.h | -rw-r--r-- | 612 bytes |
revision.c | -rw-r--r-- | 91.6 KB |
revision.h | -rw-r--r-- | 7.8 KB |
run-command.c | -rw-r--r-- | 29.1 KB |
run-command.h | -rw-r--r-- | 7.6 KB |
send-pack.c | -rw-r--r-- | 14.8 KB |
send-pack.h | -rw-r--r-- | 841 bytes |
sequencer.c | -rw-r--r-- | 65.5 KB |
sequencer.h | -rw-r--r-- | 1.0 KB |
server-info.c | -rw-r--r-- | 5.7 KB |
setup.c | -rw-r--r-- | 27.6 KB |
sh-i18n--envsubst.c | -rw-r--r-- | 10.3 KB |
sha1-array.c | -rw-r--r-- | 1.3 KB |
sha1-array.h | -rw-r--r-- | 592 bytes |
sha1-lookup.c | -rw-r--r-- | 9.2 KB |
sha1-lookup.h | -rw-r--r-- | 403 bytes |
sha1_file.c | -rw-r--r-- | 97.5 KB |
sha1_name.c | -rw-r--r-- | 39.8 KB |
shallow.c | -rw-r--r-- | 19.4 KB |
shell.c | -rw-r--r-- | 4.8 KB |
shortlog.h | -rw-r--r-- | 492 bytes |
show-index.c | -rw-r--r-- | 2.2 KB |
sideband.c | -rw-r--r-- | 3.1 KB |
sideband.h | -rw-r--r-- | 259 bytes |
sigchain.c | -rw-r--r-- | 1.1 KB |
sigchain.h | -rw-r--r-- | 247 bytes |
split-index.c | -rw-r--r-- | 9.0 KB |
split-index.h | -rw-r--r-- | 1.1 KB |
strbuf.c | -rw-r--r-- | 18.6 KB |
strbuf.h | -rw-r--r-- | 19.3 KB |
streaming.c | -rw-r--r-- | 11.8 KB |
streaming.h | -rw-r--r-- | 507 bytes |
string-list.c | -rw-r--r-- | 7.2 KB |
string-list.h | -rw-r--r-- | 5.1 KB |
submodule-config.c | -rw-r--r-- | 13.5 KB |
submodule-config.h | -rw-r--r-- | 1.1 KB |
submodule.c | -rw-r--r-- | 41.3 KB |
submodule.h | -rw-r--r-- | 3.7 KB |
symlinks.c | -rw-r--r-- | 9.3 KB |
tag.c | -rw-r--r-- | 4.4 KB |
tag.h | -rw-r--r-- | 608 bytes |
tar.h | -rw-r--r-- | 644 bytes |
tempfile.c | -rw-r--r-- | 8.1 KB |
tempfile.h | -rw-r--r-- | 9.5 KB |
thread-utils.c | -rw-r--r-- | 1.7 KB |
thread-utils.h | -rw-r--r-- | 241 bytes |
tmp-objdir.c | -rw-r--r-- | 6.4 KB |
tmp-objdir.h | -rw-r--r-- | 1.5 KB |
trace.c | -rw-r--r-- | 10.8 KB |
trace.h | -rw-r--r-- | 3.6 KB |
trailer.c | -rw-r--r-- | 25.9 KB |
trailer.h | -rw-r--r-- | 737 bytes |
transport-helper.c | -rw-r--r-- | 36.0 KB |
transport.c | -rw-r--r-- | 32.5 KB |
transport.h | -rw-r--r-- | 8.3 KB |
tree-diff.c | -rw-r--r-- | 17.9 KB |
tree-walk.c | -rw-r--r-- | 29.0 KB |
tree-walk.h | -rw-r--r-- | 3.1 KB |
tree.c | -rw-r--r-- | 6.2 KB |
tree.h | -rw-r--r-- | 1.0 KB |
unicode_width.h | -rw-r--r-- | 8.2 KB |
unimplemented.sh | -rw-r--r-- | 101 bytes |
unix-socket.c | -rw-r--r-- | 2.4 KB |
unix-socket.h | -rw-r--r-- | 158 bytes |
unpack-trees.c | -rw-r--r-- | 52.4 KB |
unpack-trees.h | -rw-r--r-- | 2.2 KB |
upload-pack.c | -rw-r--r-- | 26.9 KB |
url.c | -rw-r--r-- | 2.4 KB |
url.h | -rw-r--r-- | 492 bytes |
urlmatch.c | -rw-r--r-- | 16.5 KB |
urlmatch.h | -rw-r--r-- | 1.9 KB |
usage.c | -rw-r--r-- | 4.0 KB |
userdiff.c | -rw-r--r-- | 9.6 KB |
userdiff.h | -rw-r--r-- | 780 bytes |
utf8.c | -rw-r--r-- | 16.1 KB |
utf8.h | -rw-r--r-- | 2.2 KB |
varint.c | -rw-r--r-- | 660 bytes |
varint.h | -rw-r--r-- | 168 bytes |
version.c | -rw-r--r-- | 651 bytes |
version.h | -rw-r--r-- | 180 bytes |
versioncmp.c | -rw-r--r-- | 5.2 KB |
walker.c | -rw-r--r-- | 7.4 KB |
walker.h | -rw-r--r-- | 1.1 KB |
wildmatch.c | -rw-r--r-- | 7.8 KB |
wildmatch.h | -rw-r--r-- | 346 bytes |
worktree.c | -rw-r--r-- | 10.2 KB |
worktree.h | -rw-r--r-- | 2.3 KB |
wrap-for-bin.sh | -rw-r--r-- | 819 bytes |
wrapper.c | -rw-r--r-- | 14.5 KB |
write_or_die.c | -rw-r--r-- | 1.5 KB |
ws.c | -rw-r--r-- | 9.6 KB |
wt-status.c | -rw-r--r-- | 62.2 KB |
wt-status.h | -rw-r--r-- | 3.5 KB |
xdiff-interface.c | -rw-r--r-- | 7.0 KB |
xdiff-interface.h | -rw-r--r-- | 1.2 KB |
zlib.c | -rw-r--r-- | 6.1 KB |
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...