src/com/gitblit/GitBlit.java | ●●●●● patch | view | raw | blame | history | |
src/com/gitblit/GitServlet.java | ●●●●● patch | view | raw | blame | history | |
src/com/gitblit/LuceneExecutor.java | ●●●●● patch | view | raw | blame | history | |
src/com/gitblit/utils/LuceneUtils.java | ●●●●● patch | view | raw | blame | history |
src/com/gitblit/GitBlit.java
@@ -1697,6 +1697,15 @@ } /** * Update the Lucene index of a repository. * * @param repository */ public void updateLuceneIndex(RepositoryModel repository) { luceneExecutor.queue(repository); } /** * Returns the descriptions/comments of the Gitblit config settings. * * @return SettingsModel @@ -1892,5 +1901,6 @@ public void contextDestroyed(ServletContextEvent contextEvent) { logger.info("Gitblit context destroyed by servlet container."); scheduledExecutor.shutdownNow(); luceneExecutor.close(); } } src/com/gitblit/GitServlet.java
@@ -197,6 +197,9 @@ // Experimental // runNativeScript(rp, "hooks/post-receive", commands); // Update the Lucene search index GitBlit.self().updateLuceneIndex(repository); } /** src/com/gitblit/LuceneExecutor.java
@@ -173,5 +173,13 @@ } catch (Throwable t) { logger.error(MessageFormat.format("Lucene indexing failure for {0}", repositoryName), t); } } /** * Close all Lucene indexers. * */ public void close() { LuceneUtils.close(); } } src/com/gitblit/utils/LuceneUtils.java
@@ -473,13 +473,24 @@ tags.get(tag.getReferencedObjectId().getName()).add(tag.displayName); } List<RefModel> branches = JGitUtils.getLocalBranches(repository, true, -1); // TODO detect branch deletion // detect branch deletion // first assume all branches are deleted and then remove each // existing branch from deletedBranches during indexing Set<String> deletedBranches = new TreeSet<String>(); for (String alias : config.getNames(CONF_ALIAS)) { String branch = config.getString(CONF_ALIAS, null, alias); deletedBranches.add(branch); } // walk through each branch // walk through each branches List<RefModel> branches = JGitUtils.getLocalBranches(repository, true, -1); for (RefModel branch : branches) { // determine last commit String branchName = branch.getName(); // remove this branch from the deletedBranches set deletedBranches.remove(branchName); // determine last commit String keyName = getBranchKey(branchName); String lastCommit = config.getString(CONF_BRANCH, null, keyName); @@ -504,6 +515,16 @@ config.setString(CONF_BRANCH, null, keyName, branch.getObjectId().getName()); config.save(); } // the deletedBranches set will normally be empty by this point // unless a branch really was deleted and no longer exists if (deletedBranches.size() > 0) { for (String branch : deletedBranches) { IndexWriter writer = getIndexWriter(repository, false); writer.deleteDocuments(new Term(FIELD_BRANCH, branch)); writer.commit(); } } success = true; } catch (Throwable t) { t.printStackTrace();