bin/refs: Disallow aliases to remote refs

It can't really work in general; the client and server would
have to agree on the name of the remote.

Closes: https://github.com/ostreedev/ostree/issues/1342

Closes: #1381
Approved by: jlebon
This commit is contained in:
Colin Walters 2017-12-14 13:13:42 -05:00 committed by Atomic Bot
parent 85f388e058
commit b822f337b5
2 changed files with 10 additions and 1 deletions

View File

@ -223,6 +223,8 @@ static gboolean do_ref (OstreeRepo *repo, const char *refspec_prefix, GCancellab
if (opt_alias) if (opt_alias)
{ {
if (remote)
return glnx_throw (error, "Cannot create alias to remote ref: %s", remote);
if (!ostree_repo_set_alias_ref_immediate (repo, remote, ref, refspec_prefix, if (!ostree_repo_set_alias_ref_immediate (repo, remote, ref, refspec_prefix,
cancellable, error)) cancellable, error))
goto out; goto out;

View File

@ -23,7 +23,7 @@ set -euo pipefail
setup_fake_remote_repo1 "archive" setup_fake_remote_repo1 "archive"
echo '1..5' echo '1..6'
cd ${test_tmpdir} cd ${test_tmpdir}
mkdir repo mkdir repo
@ -186,3 +186,10 @@ assert_file_has_content_literal refs.txt 'exampleos/x86_64/stable/server -> exam
${CMD_PREFIX} ostree --repo=repo summary -u ${CMD_PREFIX} ostree --repo=repo summary -u
echo "ok ref symlink" echo "ok ref symlink"
# https://github.com/ostreedev/ostree/issues/1342
if ${CMD_PREFIX} ostree --repo=repo refs -A exampleos/x86_64/27/server --create=exampleos:exampleos/x86_64/stable/server 2>err.txt; then
fatal "Created alias ref to remote?"
fi
assert_file_has_content_literal err.txt 'Cannot create alias to remote ref'
echo "ok ref no alias remote"