diff options
author | Johannes Schindelin <Johannes.Schindelin@gmx.de> | 2008-03-08 23:40:42 +0100 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2008-03-08 21:30:22 -0800 |
commit | 3b9dcff5df97ab642de48bc1ce781961686081aa (patch) | |
tree | a539a42e510a5edba6fba57b073219b964b1aaff | |
parent | 84521ed6f2ccfd8dfe001806f83bb28e6a8934be (diff) | |
download | git-3b9dcff5df97ab642de48bc1ce781961686081aa.tar.gz git-3b9dcff5df97ab642de48bc1ce781961686081aa.tar.xz |
builtin remote rm: remove symbolic refs, too
"git remote add" can add a symbolic ref "HEAD", and "rm" should delete
it, too.
Noticed by Teemu Likonen.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | builtin-remote.c | 5 | ||||
-rwxr-xr-x | t/t5505-remote.sh | 1 |
2 files changed, 6 insertions, 0 deletions
diff --git a/builtin-remote.c b/builtin-remote.c index ca3bf265a..637b90425 100644 --- a/builtin-remote.c +++ b/builtin-remote.c @@ -264,6 +264,11 @@ static int add_branch_for_removal(const char *refname, if (!prefixcmp(refname, branches->prefix)) { struct path_list_item *item; + + /* make sure that symrefs are deleted */ + if (flags & REF_ISSYMREF) + return unlink(git_path(refname)); + item = path_list_append(refname, branches->branches); item->util = xmalloc(20); hashcpy(item->util, sha1); diff --git a/t/t5505-remote.sh b/t/t5505-remote.sh index f45ea68f6..2822a651b 100755 --- a/t/t5505-remote.sh +++ b/t/t5505-remote.sh @@ -80,6 +80,7 @@ test_expect_success 'add another remote' ' test_expect_success 'remove remote' ' ( cd test && + git symbolic-ref refs/remotes/second/HEAD refs/remotes/second/master && git remote rm second ) ' |