Florian Zschocke
2013-08-20 9d83a080fc0c24770a079c02b83b8141ddbb6534
src/main/java/com/gitblit/GitBlit.java
@@ -1985,6 +1985,14 @@
      boolean hasOrigin = !StringUtils.isEmpty(config.getString("remote", "origin", "url"));
      
      if (config != null) {
         // Initialize description from description file
         if (getConfig(config,"description", null) == null) {
            File descFile = new File(r.getDirectory(), "description");
            if (descFile.exists()) {
               config.setString(Constants.CONFIG_GITBLIT, null, "description",
                     com.gitblit.utils.FileUtils.readContent(descFile, System.getProperty("line.separator")));
            }
         }
         model.description = getConfig(config, "description", "");
         model.originRepository = getConfig(config, "originRepository", null);
         model.addOwners(ArrayUtils.fromString(getConfig(config, "owner", "")));
@@ -2418,7 +2426,8 @@
         }
         // create repository
         logger.info("create repository " + repository.name);
         r = JGitUtils.createRepository(repositoriesFolder, repository.name);
         String shared = getString(Keys.git.createRepositoriesShared, "FALSE");
         r = JGitUtils.createRepository(repositoriesFolder, repository.name, shared);
      } else {
         // rename repository
         if (!repositoryName.equalsIgnoreCase(repository.name)) {
@@ -2497,6 +2506,15 @@
      // update settings
      if (r != null) {
         updateConfiguration(r, repository);
         // Update the description file
         File descFile = new File(r.getDirectory(), "description");
         if (repository.description != null)
         {
            com.gitblit.utils.FileUtils.writeContent(descFile, repository.description);
         }
         else if (descFile.exists() && !descFile.isDirectory()) {
            descFile.delete();
         }
         // only update symbolic head if it changes
         String currentRef = JGitUtils.getHEADRef(r);
         if (!StringUtils.isEmpty(repository.HEAD) && !repository.HEAD.equals(currentRef)) {
@@ -2511,7 +2529,13 @@
         // close the repository object
         r.close();
      }
      // Adjust permissions in case we updated the config files
      JGitUtils.adjustSharedPerm(new File(r.getDirectory().getAbsolutePath(), "config"),
            getString(Keys.git.createRepositoriesShared, "FALSE"));
      JGitUtils.adjustSharedPerm(new File(r.getDirectory().getAbsolutePath(), "HEAD"),
            getString(Keys.git.createRepositoriesShared, "FALSE"));
      // update repository cache
      removeFromCachedRepositoryList(repositoryName);
      // model will actually be replaced on next load because config is stale