James Moger
2012-02-02 df02920703f6fe191b80fc679e01e95a6b1831c0
src/com/gitblit/GitBlit.java
@@ -69,7 +69,6 @@
import com.gitblit.models.FederationProposal;
import com.gitblit.models.FederationSet;
import com.gitblit.models.Metric;
import com.gitblit.models.RefModel;
import com.gitblit.models.RepositoryModel;
import com.gitblit.models.ServerSettings;
import com.gitblit.models.ServerStatus;
@@ -787,10 +786,8 @@
         model.mailingLists = new ArrayList<String>(Arrays.asList(config.getStringList(
               "gitblit", null, "mailingList")));
      }
      model.defaultHead = JGitUtils.getDefaultHead(r);
      model.availableHeads = new ArrayList<RefModel>();
      model.availableHeads.addAll(JGitUtils.getLocalBranches(r, true, -1));
      model.availableHeads.addAll(JGitUtils.getTags(r, true, -1));
      model.defaultHead = JGitUtils.getSymbolicHeadTarget(r);
      model.availableHeads = JGitUtils.getAvailableHeadTargets(r);
      r.close();
      return model;
   }
@@ -986,9 +983,19 @@
      // update settings
      if (r != null) {
         updateConfiguration(r, repository);
         if (repository.defaultHead != null) {
            JGitUtils.setDefaultHead(r, repository.defaultHead.reference);
         // only update symbolic head if it changes
         String currentHead = JGitUtils.getSymbolicHeadTarget(r);
         if (!StringUtils.isEmpty(repository.defaultHead)  &&
               !repository.defaultHead.equals(currentHead)) {
            logger.info(MessageFormat.format("Relinking {0} HEAD from {1} to {2}",
                  repository.name, currentHead, repository.defaultHead));
            JGitUtils.setSymbolicHeadTarget(r, repository.defaultHead);
            // clear the cache
            clearRepositoryCache(repository.name);
         }
         // close the repository object
         r.close();
      }
   }