From b170c59085538953c95eebe444a839249f25bff8 Mon Sep 17 00:00:00 2001 From: mrbytes <eguervos@msn.com> Date: Mon, 13 Aug 2012 15:52:59 -0400 Subject: [PATCH] GitBlitWebApp_es.properties: up-to date with the last changes --- src/com/gitblit/GitBlit.java | 87 ++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 80 insertions(+), 7 deletions(-) diff --git a/src/com/gitblit/GitBlit.java b/src/com/gitblit/GitBlit.java index 969dc53..f52f229 100644 --- a/src/com/gitblit/GitBlit.java +++ b/src/com/gitblit/GitBlit.java @@ -56,6 +56,9 @@ import org.eclipse.jgit.lib.Repository; import org.eclipse.jgit.lib.RepositoryCache.FileKey; import org.eclipse.jgit.lib.StoredConfig; +import org.eclipse.jgit.storage.file.WindowCache; +import org.eclipse.jgit.storage.file.WindowCacheConfig; +import org.eclipse.jgit.transport.ServiceMayNotContinueException; import org.eclipse.jgit.transport.resolver.FileResolver; import org.eclipse.jgit.transport.resolver.RepositoryResolver; import org.eclipse.jgit.transport.resolver.ServiceNotAuthorizedException; @@ -66,6 +69,7 @@ import org.slf4j.LoggerFactory; import com.gitblit.Constants.AccessRestrictionType; +import com.gitblit.Constants.AuthorizationControl; import com.gitblit.Constants.FederationRequest; import com.gitblit.Constants.FederationStrategy; import com.gitblit.Constants.FederationToken; @@ -185,6 +189,15 @@ self().timezone = TimeZone.getTimeZone(tzid); } return self().timezone; + } + + /** + * Returns the user-defined blob encodings. + * + * @return an array of encodings, may be empty + */ + public static String [] getEncodings() { + return getStrings(Keys.web.blobEncodings).toArray(new String[0]); } @@ -501,9 +514,15 @@ userCookie = new Cookie(Constants.NAME, ""); } else { // set cookie for login - char[] cookie = userService.getCookie(user); - userCookie = new Cookie(Constants.NAME, new String(cookie)); - userCookie.setMaxAge(Integer.MAX_VALUE); + String cookie = userService.getCookie(user); + if (StringUtils.isEmpty(cookie)) { + // create empty cookie + userCookie = new Cookie(Constants.NAME, ""); + } else { + // create real cookie + userCookie = new Cookie(Constants.NAME, cookie); + userCookie.setMaxAge(Integer.MAX_VALUE); + } } userCookie.setPath("/"); response.addCookie(userCookie); @@ -724,7 +743,9 @@ public List<String> getRepositoryList() { return JGitUtils.getRepositoryList(repositoriesFolder, settings.getBoolean(Keys.git.onlyAccessBareRepositories, false), - settings.getBoolean(Keys.git.searchRepositoriesSubfolders, true)); + settings.getBoolean(Keys.git.searchRepositoriesSubfolders, true), + settings.getInteger(Keys.git.searchRecursionDepth, -1), + settings.getStrings(Keys.git.searchExclusions)); } /** @@ -761,6 +782,12 @@ + new File(repositoriesFolder, repositoryName).getAbsolutePath(), e); } } catch (ServiceNotEnabledException e) { + r = null; + if (logError) { + logger.error("GitBlit.getRepository(String) failed to find " + + new File(repositoriesFolder, repositoryName).getAbsolutePath(), e); + } + } catch (ServiceMayNotContinueException e) { r = null; if (logError) { logger.error("GitBlit.getRepository(String) failed to find " @@ -850,6 +877,8 @@ model.useDocs = getConfig(config, "useDocs", false); model.accessRestriction = AccessRestrictionType.fromName(getConfig(config, "accessRestriction", settings.getString(Keys.git.defaultAccessRestriction, null))); + model.authorizationControl = AuthorizationControl.fromName(getConfig(config, + "authorizationControl", settings.getString(Keys.git.defaultAuthorizationControl, null))); model.showRemoteBranches = getConfig(config, "showRemoteBranches", false); model.isFrozen = getConfig(config, "isFrozen", false); model.showReadme = getConfig(config, "showReadme", false); @@ -880,6 +909,21 @@ model.availableRefs = JGitUtils.getAvailableHeadTargets(r); r.close(); return model; + } + + /** + * Determines if this server has the requested repository. + * + * @param name + * @return true if the repository exists + */ + public boolean hasRepository(String repositoryName) { + Repository r = getRepository(repositoryName, false); + if (r == null) { + return false; + } + r.close(); + return true; } /** @@ -1070,6 +1114,8 @@ logger.error("Service not authorized", e); } catch (ServiceNotEnabledException e) { logger.error("Service not enabled", e); + } catch (ServiceMayNotContinueException e) { + logger.error("Service may not continue", e); } } @@ -1107,6 +1153,7 @@ config.setBoolean(Constants.CONFIG_GITBLIT, null, "useTickets", repository.useTickets); config.setBoolean(Constants.CONFIG_GITBLIT, null, "useDocs", repository.useDocs); config.setString(Constants.CONFIG_GITBLIT, null, "accessRestriction", repository.accessRestriction.name()); + config.setString(Constants.CONFIG_GITBLIT, null, "authorizationControl", repository.authorizationControl.name()); config.setBoolean(Constants.CONFIG_GITBLIT, null, "showRemoteBranches", repository.showRemoteBranches); config.setBoolean(Constants.CONFIG_GITBLIT, null, "isFrozen", repository.isFrozen); config.setBoolean(Constants.CONFIG_GITBLIT, null, "showReadme", repository.showReadme); @@ -1812,9 +1859,13 @@ // ensure that the current values are updated in the setting models for (String key : settings.getAllKeys(null)) { SettingModel setting = settingsModel.get(key); - if (setting != null) { - setting.currentValue = settings.getString(key, ""); + if (setting == null) { + // unreferenced setting, create a setting model + setting = new SettingModel(); + setting.name = key; + settingsModel.add(setting); } + setting.currentValue = settings.getString(key, ""); } settingsModel.pushScripts = getAllScripts(); return settingsModel; @@ -1929,7 +1980,29 @@ scheduledExecutor.scheduleAtFixedRate(luceneExecutor, 1, 2, TimeUnit.MINUTES); if (startFederation) { configureFederation(); - } + } + + // Configure JGit + WindowCacheConfig cfg = new WindowCacheConfig(); + + cfg.setPackedGitWindowSize(settings.getFilesize(Keys.git.packedGitWindowSize, cfg.getPackedGitWindowSize())); + cfg.setPackedGitLimit(settings.getFilesize(Keys.git.packedGitLimit, cfg.getPackedGitLimit())); + cfg.setDeltaBaseCacheLimit(settings.getFilesize(Keys.git.deltaBaseCacheLimit, cfg.getDeltaBaseCacheLimit())); + cfg.setPackedGitOpenFiles(settings.getFilesize(Keys.git.packedGitOpenFiles, cfg.getPackedGitOpenFiles())); + cfg.setStreamFileThreshold(settings.getFilesize(Keys.git.streamFileThreshold, cfg.getStreamFileThreshold())); + cfg.setPackedGitMMAP(settings.getBoolean(Keys.git.packedGitMmap, cfg.isPackedGitMMAP())); + + try { + WindowCache.reconfigure(cfg); + logger.debug(MessageFormat.format("{0} = {1,number,0}", Keys.git.packedGitWindowSize, cfg.getPackedGitWindowSize())); + logger.debug(MessageFormat.format("{0} = {1,number,0}", Keys.git.packedGitLimit, cfg.getPackedGitLimit())); + logger.debug(MessageFormat.format("{0} = {1,number,0}", Keys.git.deltaBaseCacheLimit, cfg.getDeltaBaseCacheLimit())); + logger.debug(MessageFormat.format("{0} = {1,number,0}", Keys.git.packedGitOpenFiles, cfg.getPackedGitOpenFiles())); + logger.debug(MessageFormat.format("{0} = {1,number,0}", Keys.git.streamFileThreshold, cfg.getStreamFileThreshold())); + logger.debug(MessageFormat.format("{0} = {1}", Keys.git.packedGitMmap, cfg.isPackedGitMMAP())); + } catch (IllegalArgumentException e) { + logger.error("Failed to configure JGit parameters!", e); + } } private void logTimezone(String type, TimeZone zone) { -- Gitblit v1.9.1