aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--builtin-remote.c5
-rwxr-xr-xt/t5505-remote.sh10
2 files changed, 14 insertions, 1 deletions
diff --git a/builtin-remote.c b/builtin-remote.c
index 24e692953..9c1517303 100644
--- a/builtin-remote.c
+++ b/builtin-remote.c
@@ -207,7 +207,10 @@ static int handle_one_branch(const char *refname,
if (!remote_find_tracking(states->remote, &refspec)) {
struct path_list_item *item;
const char *name = skip_prefix(refspec.src, "refs/heads/");
- if (unsorted_path_list_has_path(&states->tracked, name) ||
+ /* symbolic refs pointing nowhere were handled already */
+ if ((flags & REF_ISSYMREF) ||
+ unsorted_path_list_has_path(&states->tracked,
+ name) ||
unsorted_path_list_has_path(&states->new,
name))
return 0;
diff --git a/t/t5505-remote.sh b/t/t5505-remote.sh
index ecfc999aa..004a8dc5e 100755
--- a/t/t5505-remote.sh
+++ b/t/t5505-remote.sh
@@ -237,4 +237,14 @@ test_expect_success 'update default (overridden, with funny whitespace)' '
'
+test_expect_success '"remote show" does not show symbolic refs' '
+
+ git clone one three &&
+ (cd three &&
+ git remote show origin > output &&
+ ! grep HEAD < output &&
+ ! grep -i stale < output)
+
+'
+
test_done