From de21c58d03d9f54e0a80d358948517d3ea518312 Mon Sep 17 00:00:00 2001 From: Thomas Wolf Date: Thu, 24 May 2018 16:26:36 +0200 Subject: Don't prune symbolic refs when fetch.prune = true The canonical implementation also doesn't. Compare current code in remote.c, function get_stale_heads_cb.[1] Not handling symrefs in this case was introduced in canonical git in [2] in 2008. [1] https://github.com/git/git/blob/v2.17.0/remote.c#L2259 [2] https://github.com/git/git/commit/740fdd27f0 Bug: 533549 Change-Id: If348d56bb4a96b8aa7141f7e7b5a0d3dd4e7808b Signed-off-by: Thomas Wolf --- org.eclipse.jgit/src/org/eclipse/jgit/transport/FetchProcess.java | 3 +++ 1 file changed, 3 insertions(+) (limited to 'org.eclipse.jgit/src/org/eclipse') diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/transport/FetchProcess.java b/org.eclipse.jgit/src/org/eclipse/jgit/transport/FetchProcess.java index 51f900b246..ff183c8974 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/transport/FetchProcess.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/transport/FetchProcess.java @@ -480,6 +480,9 @@ class FetchProcess { private void deleteStaleTrackingRefs(FetchResult result, BatchRefUpdate batch) throws IOException { for (Ref ref : localRefs().values()) { + if (ref.isSymbolic()) { + continue; + } final String refname = ref.getName(); for (RefSpec spec : toFetch) { if (spec.matchDestination(refname)) { -- cgit v1.2.3