Staging
v0.5.1
v0.5.1
https://github.com/git/git
Revision 9a7bbd1dd1db45b474576ca328aa7056cdd081e0 authored by Jeff King on 16 June 2008, 16:15:02 UTC, committed by Junio C Hamano on 18 June 2008, 19:39:13 UTC
match_explicit is called for each push refspec to try to fully resolve the source and destination sides of the refspec. Currently, we look at each refspec and report errors on both the source and the dest side before aborting. It makes sense to report errors for each refspec, since an error in one is independent of an error in the other. However, reporting errors on the 'dst' side of a refspec if there has been an error on the 'src' side does not necessarily make sense, since the interpretation of the 'dst' side depends on the 'src' side (for example, when creating a new unqualified remote ref, we use the same type as the src ref). This patch lets match_explicit return early when the src side of the refspec is bogus. We still look at all of the refspecs before aborting the push, though. At the same time, we clean up the call signature, which previously took an extra "errs" flag. This was pointless, as we didn't act on that flag, but rather just passed it back to the caller. Instead, we now use the more traditional "return -1" to signal an error, and the caller aggregates the error count. This change fixes two bugs, as well: - the early return avoids a segfault when passing a NULL matched_src to guess_ref() - the check for multiple sources pointing to a single dest aborted if the "err" flag was set. Presumably the intent was not to bother with the check if we had no matched_src. However, since the err flag was passed in from the caller, we might abort the check just because a previous refspec had a problem, which doesn't make sense. In practice, this didn't matter, since due to the error flag we end up aborting the push anyway. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
1 parent 8c6b578
Tip revision: 9a7bbd1dd1db45b474576ca328aa7056cdd081e0 authored by Jeff King on 16 June 2008, 16:15:02 UTC
clean up error conventions of remote.c:match_explicit
clean up error conventions of remote.c:match_explicit
Tip revision: 9a7bbd1
File | Mode | Size |
---|---|---|
Documentation | ||
arm | ||
compat | ||
contrib | ||
git-gui | ||
gitk-git | ||
gitweb | ||
mozilla-sha1 | ||
perl | ||
ppc | ||
t | ||
templates | ||
xdiff | ||
.gitattributes | -rw-r--r-- | 51 bytes |
.gitignore | -rw-r--r-- | 2.3 KB |
.mailmap | -rw-r--r-- | 2.1 KB |
COPYING | -rw-r--r-- | 18.3 KB |
GIT-VERSION-GEN | -rwxr-xr-x | 703 bytes |
INSTALL | -rw-r--r-- | 4.9 KB |
Makefile | -rw-r--r-- | 39.6 KB |
README | -rw-r--r-- | 2.1 KB |
RelNotes | l--------- | 32 bytes |
alias.c | -rw-r--r-- | 439 bytes |
alloc.c | -rw-r--r-- | 1.7 KB |
archive-tar.c | -rw-r--r-- | 7.6 KB |
archive-zip.c | -rw-r--r-- | 9.1 KB |
archive.c | -rw-r--r-- | 2.0 KB |
archive.h | -rw-r--r-- | 1.3 KB |
attr.c | -rw-r--r-- | 14.7 KB |
attr.h | -rw-r--r-- | 816 bytes |
base85.c | -rw-r--r-- | 2.9 KB |
blob.c | -rw-r--r-- | 1.1 KB |
blob.h | -rw-r--r-- | 311 bytes |
branch.c | -rw-r--r-- | 4.1 KB |
branch.h | -rw-r--r-- | 809 bytes |
builtin-add.c | -rw-r--r-- | 7.1 KB |
builtin-annotate.c | -rw-r--r-- | 446 bytes |
builtin-apply.c | -rw-r--r-- | 77.3 KB |
builtin-archive.c | -rw-r--r-- | 5.7 KB |
builtin-blame.c | -rw-r--r-- | 61.4 KB |
builtin-branch.c | -rw-r--r-- | 13.1 KB |
builtin-bundle.c | -rw-r--r-- | 1.7 KB |
builtin-cat-file.c | -rw-r--r-- | 5.6 KB |
builtin-check-attr.c | -rw-r--r-- | 1.4 KB |
builtin-check-ref-format.c | -rw-r--r-- | 282 bytes |
builtin-checkout-index.c | -rw-r--r-- | 7.5 KB |
builtin-checkout.c | -rw-r--r-- | 15.1 KB |
builtin-clean.c | -rw-r--r-- | 4.2 KB |
builtin-clone.c | -rw-r--r-- | 13.7 KB |
builtin-commit-tree.c | -rw-r--r-- | 3.3 KB |
builtin-commit.c | -rw-r--r-- | 27.3 KB |
builtin-config.c | -rw-r--r-- | 10.7 KB |
builtin-count-objects.c | -rw-r--r-- | 2.9 KB |
builtin-describe.c | -rw-r--r-- | 8.9 KB |
builtin-diff-files.c | -rw-r--r-- | 1.6 KB |
builtin-diff-index.c | -rw-r--r-- | 1.1 KB |
builtin-diff-tree.c | -rw-r--r-- | 3.2 KB |
builtin-diff.c | -rw-r--r-- | 9.9 KB |
builtin-fast-export.c | -rw-r--r-- | 10.1 KB |
builtin-fetch--tool.c | -rw-r--r-- | 12.7 KB |
builtin-fetch-pack.c | -rw-r--r-- | 18.7 KB |
builtin-fetch.c | -rw-r--r-- | 16.9 KB |
builtin-fmt-merge-msg.c | -rw-r--r-- | 8.0 KB |
builtin-for-each-ref.c | -rw-r--r-- | 21.1 KB |
builtin-fsck.c | -rw-r--r-- | 15.0 KB |
builtin-gc.c | -rw-r--r-- | 6.6 KB |
builtin-grep.c | -rw-r--r-- | 18.3 KB |
builtin-http-fetch.c | -rw-r--r-- | 2.1 KB |
builtin-init-db.c | -rw-r--r-- | 11.8 KB |
builtin-log.c | -rw-r--r-- | 29.3 KB |
builtin-ls-files.c | -rw-r--r-- | 14.6 KB |
builtin-ls-remote.c | -rw-r--r-- | 2.4 KB |
builtin-ls-tree.c | -rw-r--r-- | 4.4 KB |
builtin-mailinfo.c | -rw-r--r-- | 20.3 KB |
builtin-mailsplit.c | -rw-r--r-- | 6.4 KB |
builtin-merge-base.c | -rw-r--r-- | 1.2 KB |
builtin-merge-file.c | -rw-r--r-- | 1.7 KB |
builtin-merge-ours.c | -rw-r--r-- | 751 bytes |
builtin-merge-recursive.c | -rw-r--r-- | 36.8 KB |
builtin-mv.c | -rw-r--r-- | 7.2 KB |
builtin-name-rev.c | -rw-r--r-- | 7.0 KB |
builtin-pack-objects.c | -rw-r--r-- | 56.7 KB |
builtin-pack-refs.c | -rw-r--r-- | 3.4 KB |
builtin-prune-packed.c | -rw-r--r-- | 1.9 KB |
builtin-prune.c | -rw-r--r-- | 3.4 KB |
builtin-push.c | -rw-r--r-- | 3.6 KB |
builtin-read-tree.c | -rw-r--r-- | 6.2 KB |
builtin-reflog.c | -rw-r--r-- | 13.3 KB |
builtin-remote.c | -rw-r--r-- | 17.0 KB |
builtin-rerere.c | -rw-r--r-- | 10.3 KB |
builtin-reset.c | -rw-r--r-- | 7.0 KB |
builtin-rev-list.c | -rw-r--r-- | 16.4 KB |
builtin-rev-parse.c | -rw-r--r-- | 12.7 KB |
builtin-revert.c | -rw-r--r-- | 11.2 KB |
builtin-rm.c | -rw-r--r-- | 6.3 KB |
builtin-send-pack.c | -rw-r--r-- | 15.1 KB |
builtin-shortlog.c | -rw-r--r-- | 7.3 KB |
builtin-show-branch.c | -rw-r--r-- | 21.2 KB |
builtin-show-ref.c | -rw-r--r-- | 5.9 KB |
builtin-stripspace.c | -rw-r--r-- | 1.9 KB |
builtin-symbolic-ref.c | -rw-r--r-- | 1.2 KB |
builtin-tag.c | -rw-r--r-- | 10.8 KB |
builtin-tar-tree.c | -rw-r--r-- | 2.1 KB |
builtin-unpack-objects.c | -rw-r--r-- | 12.7 KB |
builtin-update-index.c | -rw-r--r-- | 19.0 KB |
builtin-update-ref.c | -rw-r--r-- | 1.4 KB |
builtin-upload-archive.c | -rw-r--r-- | 4.1 KB |
builtin-verify-pack.c | -rw-r--r-- | 1.7 KB |
builtin-verify-tag.c | -rw-r--r-- | 2.5 KB |
builtin-write-tree.c | -rw-r--r-- | 1.2 KB |
builtin.h | -rw-r--r-- | 6.7 KB |
bundle.c | -rw-r--r-- | 9.3 KB |
bundle.h | -rw-r--r-- | 627 bytes |
cache-tree.c | -rw-r--r-- | 13.4 KB |
cache-tree.h | -rw-r--r-- | 1.1 KB |
cache.h | -rw-r--r-- | 28.4 KB |
check-builtins.sh | -rwxr-xr-x | 588 bytes |
check-racy.c | -rw-r--r-- | 538 bytes |
color.c | -rw-r--r-- | 3.7 KB |
color.h | -rw-r--r-- | 667 bytes |
combine-diff.c | -rw-r--r-- | 26.4 KB |
command-list.txt | -rw-r--r-- | 7.5 KB |
commit.c | -rw-r--r-- | 14.7 KB |
commit.h | -rw-r--r-- | 4.2 KB |
config.c | -rw-r--r-- | 25.7 KB |
config.mak.in | -rw-r--r-- | 1.2 KB |
configure.ac | -rw-r--r-- | 16.2 KB |
connect.c | -rw-r--r-- | 13.5 KB |
convert.c | -rw-r--r-- | 14.0 KB |
copy.c | -rw-r--r-- | 1.1 KB |
csum-file.c | -rw-r--r-- | 2.4 KB |
csum-file.h | -rw-r--r-- | 714 bytes |
ctype.c | -rw-r--r-- | 889 bytes |
daemon.c | -rw-r--r-- | 26.9 KB |
date.c | -rw-r--r-- | 18.5 KB |
decorate.c | -rw-r--r-- | 1.8 KB |
decorate.h | -rw-r--r-- | 382 bytes |
delta.h | -rw-r--r-- | 3.4 KB |
diff-delta.c | -rw-r--r-- | 15.3 KB |
diff-lib.c | -rw-r--r-- | 13.0 KB |
diff-no-index.c | -rw-r--r-- | 5.8 KB |
diff.c | -rw-r--r-- | 87.1 KB |
diff.h | -rw-r--r-- | 8.4 KB |
diffcore-break.c | -rw-r--r-- | 8.7 KB |
diffcore-delta.c | -rw-r--r-- | 5.3 KB |
diffcore-order.c | -rw-r--r-- | 2.2 KB |
diffcore-pickaxe.c | -rw-r--r-- | 3.3 KB |
diffcore-rename.c | -rw-r--r-- | 16.6 KB |
diffcore.h | -rw-r--r-- | 4.0 KB |
dir.c | -rw-r--r-- | 19.9 KB |
dir.h | -rw-r--r-- | 2.2 KB |
dump-cache-tree.c | -rw-r--r-- | 1.5 KB |
entry.c | -rw-r--r-- | 5.8 KB |
environment.c | -rw-r--r-- | 4.4 KB |
exec_cmd.c | -rw-r--r-- | 2.2 KB |
exec_cmd.h | -rw-r--r-- | 329 bytes |
fast-import.c | -rw-r--r-- | 62.0 KB |
fetch-pack.h | -rw-r--r-- | 460 bytes |
fixup-builtins | -rwxr-xr-x | 326 bytes |
fsck.c | -rw-r--r-- | 8.1 KB |
fsck.h | -rw-r--r-- | 1022 bytes |
generate-cmdlist.sh | -rwxr-xr-x | 442 bytes |
git-add--interactive.perl | -rwxr-xr-x | 23.0 KB |
git-am.sh | -rwxr-xr-x | 11.8 KB |
git-archimport.perl | -rwxr-xr-x | 36.0 KB |
git-bisect.sh | -rwxr-xr-x | 11.3 KB |
git-compat-util.h | -rw-r--r-- | 10.9 KB |
git-cvsexportcommit.perl | -rwxr-xr-x | 11.0 KB |
git-cvsimport.perl | -rwxr-xr-x | 26.3 KB |
git-cvsserver.perl | -rwxr-xr-x | 112.9 KB |
git-filter-branch.sh | -rwxr-xr-x | 10.3 KB |
git-instaweb.sh | -rwxr-xr-x | 6.4 KB |
git-lost-found.sh | -rwxr-xr-x | 563 bytes |
git-merge-octopus.sh | -rwxr-xr-x | 2.4 KB |
git-merge-one-file.sh | -rwxr-xr-x | 3.4 KB |
git-merge-resolve.sh | -rwxr-xr-x | 954 bytes |
git-merge-stupid.sh | -rwxr-xr-x | 1.4 KB |
git-merge.sh | -rwxr-xr-x | 12.3 KB |
git-mergetool.sh | -rwxr-xr-x | 9.7 KB |
git-parse-remote.sh | -rwxr-xr-x | 5.8 KB |
git-pull.sh | -rwxr-xr-x | 5.0 KB |
git-quiltimport.sh | -rwxr-xr-x | 3.2 KB |
git-rebase--interactive.sh | -rwxr-xr-x | 12.8 KB |
git-rebase.sh | -rwxr-xr-x | 10.5 KB |
git-relink.perl | -rwxr-xr-x | 4.0 KB |
git-repack.sh | -rwxr-xr-x | 3.4 KB |
git-request-pull.sh | -rwxr-xr-x | 1.3 KB |
git-send-email.perl | -rwxr-xr-x | 25.6 KB |
git-sh-setup.sh | -rwxr-xr-x | 3.1 KB |
git-stash.sh | -rwxr-xr-x | 5.8 KB |
git-submodule.sh | -rwxr-xr-x | 12.8 KB |
git-svn.perl | -rwxr-xr-x | 137.7 KB |
git-web--browse.sh | -rwxr-xr-x | 3.6 KB |
git.c | -rw-r--r-- | 12.9 KB |
git.spec.in | -rw-r--r-- | 9.1 KB |
graph.c | -rw-r--r-- | 28.0 KB |
graph.h | -rw-r--r-- | 4.1 KB |
grep.c | -rw-r--r-- | 12.7 KB |
grep.h | -rw-r--r-- | 1.6 KB |
hash-object.c | -rw-r--r-- | 3.2 KB |
hash.c | -rw-r--r-- | 2.5 KB |
hash.h | -rw-r--r-- | 1.1 KB |
help.c | -rw-r--r-- | 15.5 KB |
http-push.c | -rw-r--r-- | 64.0 KB |
http-walker.c | -rw-r--r-- | 23.7 KB |
http.c | -rw-r--r-- | 14.4 KB |
http.h | -rw-r--r-- | 2.7 KB |
ident.c | -rw-r--r-- | 5.9 KB |
imap-send.c | -rw-r--r-- | 28.5 KB |
index-pack.c | -rw-r--r-- | 24.2 KB |
interpolate.c | -rw-r--r-- | 2.1 KB |
interpolate.h | -rw-r--r-- | 601 bytes |
list-objects.c | -rw-r--r-- | 4.7 KB |
list-objects.h | -rw-r--r-- | 382 bytes |
ll-merge.c | -rw-r--r-- | 8.7 KB |
ll-merge.h | -rw-r--r-- | 304 bytes |
lockfile.c | -rw-r--r-- | 5.4 KB |
log-tree.c | -rw-r--r-- | 12.0 KB |
log-tree.h | -rw-r--r-- | 585 bytes |
mailmap.c | -rw-r--r-- | 2.2 KB |
mailmap.h | -rw-r--r-- | 213 bytes |
match-trees.c | -rw-r--r-- | 7.1 KB |
merge-file.c | -rw-r--r-- | 2.4 KB |
merge-index.c | -rw-r--r-- | 2.4 KB |
merge-recursive.h | -rw-r--r-- | 443 bytes |
merge-tree.c | -rw-r--r-- | 8.0 KB |
mktag.c | -rw-r--r-- | 5.1 KB |
mktree.c | -rw-r--r-- | 3.0 KB |
name-hash.c | -rw-r--r-- | 2.5 KB |
object.c | -rw-r--r-- | 5.6 KB |
object.h | -rw-r--r-- | 2.1 KB |
pack-check.c | -rw-r--r-- | 5.2 KB |
pack-redundant.c | -rw-r--r-- | 14.9 KB |
pack-revindex.c | -rw-r--r-- | 3.7 KB |
pack-revindex.h | -rw-r--r-- | 225 bytes |
pack-write.c | -rw-r--r-- | 5.4 KB |
pack.h | -rw-r--r-- | 2.0 KB |
pager.c | -rw-r--r-- | 1.4 KB |
parse-options.c | -rw-r--r-- | 10.1 KB |
parse-options.h | -rw-r--r-- | 4.1 KB |
patch-delta.c | -rw-r--r-- | 2.2 KB |
patch-id.c | -rw-r--r-- | 1.6 KB |
patch-ids.c | -rw-r--r-- | 4.7 KB |
patch-ids.h | -rw-r--r-- | 490 bytes |
path-list.c | -rw-r--r-- | 3.0 KB |
path-list.h | -rw-r--r-- | 898 bytes |
path.c | -rw-r--r-- | 8.5 KB |
pkt-line.c | -rw-r--r-- | 2.4 KB |
pkt-line.h | -rw-r--r-- | 348 bytes |
pretty.c | -rw-r--r-- | 20.0 KB |
progress.c | -rw-r--r-- | 6.3 KB |
progress.h | -rw-r--r-- | 504 bytes |
quote.c | -rw-r--r-- | 9.6 KB |
quote.h | -rw-r--r-- | 2.2 KB |
reachable.c | -rw-r--r-- | 5.6 KB |
reachable.h | -rw-r--r-- | 127 bytes |
read-cache.c | -rw-r--r-- | 35.4 KB |
receive-pack.c | -rw-r--r-- | 12.1 KB |
reflog-walk.c | -rw-r--r-- | 6.7 KB |
reflog-walk.h | -rw-r--r-- | 383 bytes |
refs.c | -rw-r--r-- | 36.5 KB |
refs.h | -rw-r--r-- | 3.2 KB |
remote.c | -rw-r--r-- | 28.3 KB |
remote.h | -rw-r--r-- | 3.0 KB |
revision.c | -rw-r--r-- | 42.1 KB |
revision.h | -rw-r--r-- | 3.5 KB |
run-command.c | -rw-r--r-- | 4.8 KB |
run-command.h | -rw-r--r-- | 2.6 KB |
send-pack.h | -rw-r--r-- | 338 bytes |
server-info.c | -rw-r--r-- | 5.2 KB |
setup.c | -rw-r--r-- | 13.3 KB |
sha1-lookup.c | -rw-r--r-- | 5.2 KB |
sha1-lookup.h | -rw-r--r-- | 220 bytes |
sha1_file.c | -rw-r--r-- | 58.7 KB |
sha1_name.c | -rw-r--r-- | 16.5 KB |
shallow.c | -rw-r--r-- | 2.3 KB |
shell.c | -rw-r--r-- | 1.5 KB |
shortlog.h | -rw-r--r-- | 426 bytes |
show-index.c | -rw-r--r-- | 2.1 KB |
sideband.c | -rw-r--r-- | 3.0 KB |
sideband.h | -rw-r--r-- | 335 bytes |
strbuf.c | -rw-r--r-- | 4.8 KB |
strbuf.h | -rw-r--r-- | 4.2 KB |
symlinks.c | -rw-r--r-- | 1.3 KB |
tag.c | -rw-r--r-- | 2.7 KB |
tag.h | -rw-r--r-- | 471 bytes |
tar.h | -rw-r--r-- | 644 bytes |
test-absolute-path.c | -rw-r--r-- | 147 bytes |
test-chmtime.c | -rw-r--r-- | 1.2 KB |
test-date.c | -rw-r--r-- | 378 bytes |
test-delta.c | -rw-r--r-- | 1.8 KB |
test-genrandom.c | -rw-r--r-- | 731 bytes |
test-match-trees.c | -rw-r--r-- | 588 bytes |
test-parse-options.c | -rw-r--r-- | 1.1 KB |
test-sha1.c | -rw-r--r-- | 815 bytes |
test-sha1.sh | -rwxr-xr-x | 1.9 KB |
thread-utils.c | -rw-r--r-- | 1.0 KB |
thread-utils.h | -rw-r--r-- | 109 bytes |
trace.c | -rw-r--r-- | 3.5 KB |
transport.c | -rw-r--r-- | 19.8 KB |
transport.h | -rw-r--r-- | 2.2 KB |
tree-diff.c | -rw-r--r-- | 11.1 KB |
tree-walk.c | -rw-r--r-- | 5.3 KB |
tree-walk.h | -rw-r--r-- | 1.7 KB |
tree.c | -rw-r--r-- | 6.0 KB |
tree.h | -rw-r--r-- | 860 bytes |
unpack-file.c | -rw-r--r-- | 778 bytes |
unpack-trees.c | -rw-r--r-- | 24.2 KB |
unpack-trees.h | -rw-r--r-- | 1.3 KB |
update-server-info.c | -rw-r--r-- | 457 bytes |
upload-pack.c | -rw-r--r-- | 15.5 KB |
usage.c | -rw-r--r-- | 2.0 KB |
utf8.c | -rw-r--r-- | 11.1 KB |
utf8.h | -rw-r--r-- | 541 bytes |
var.c | -rw-r--r-- | 1.4 KB |
walker.c | -rw-r--r-- | 7.2 KB |
walker.h | -rw-r--r-- | 1.1 KB |
write_or_die.c | -rw-r--r-- | 2.4 KB |
ws.c | -rw-r--r-- | 7.2 KB |
wt-status.c | -rw-r--r-- | 10.7 KB |
wt-status.h | -rw-r--r-- | 756 bytes |
xdiff-interface.c | -rw-r--r-- | 5.3 KB |
xdiff-interface.h | -rw-r--r-- | 742 bytes |
Computing file changes ...