From c658df9e87d65b08d5482cf04489cb0532ff83dd Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Sat, 13 Oct 2012 10:50:35 -0400 Subject: [PATCH] Merge branch 'master' of https://github.com/Mrbytes/gitblit --- src/com/gitblit/utils/JGitUtils.java | 19 ++++++++++++++++--- 1 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/com/gitblit/utils/JGitUtils.java b/src/com/gitblit/utils/JGitUtils.java index c5cd1c3..231b935 100644 --- a/src/com/gitblit/utils/JGitUtils.java +++ b/src/com/gitblit/utils/JGitUtils.java @@ -210,11 +210,10 @@ if (credentialsProvider != null) { clone.setCredentialsProvider(credentialsProvider); } - clone.call(); + Repository repository = clone.call().getRepository(); + // Now we have to fetch because CloneCommand doesn't fetch // refs/notes nor does it allow manual RefSpec. - File gitDir = FileKey.resolve(new File(repositoriesFolder, name), FS.DETECTED); - FileRepository repository = new FileRepository(gitDir); result.createdRepository = true; result.fetchResult = fetchRepository(credentialsProvider, repository); repository.close(); @@ -1369,9 +1368,23 @@ * @return all refs grouped by their referenced object id */ public static Map<ObjectId, List<RefModel>> getAllRefs(Repository repository) { + return getAllRefs(repository, true); + } + + /** + * Returns all refs grouped by their associated object id. + * + * @param repository + * @param includeRemoteRefs + * @return all refs grouped by their referenced object id + */ + public static Map<ObjectId, List<RefModel>> getAllRefs(Repository repository, boolean includeRemoteRefs) { List<RefModel> list = getRefs(repository, org.eclipse.jgit.lib.RefDatabase.ALL, true, -1); Map<ObjectId, List<RefModel>> refs = new HashMap<ObjectId, List<RefModel>>(); for (RefModel ref : list) { + if (!includeRemoteRefs && ref.getName().startsWith(Constants.R_REMOTES)) { + continue; + } ObjectId objectid = ref.getReferencedObjectId(); if (!refs.containsKey(objectid)) { refs.put(objectid, new ArrayList<RefModel>()); -- Gitblit v1.9.1