diff options
Diffstat (limited to 'src/main/java/com/gitblit')
6 files changed, 162 insertions, 9 deletions
diff --git a/src/main/java/com/gitblit/GitBlit.java b/src/main/java/com/gitblit/GitBlit.java index 301591f5..35ef7708 100644 --- a/src/main/java/com/gitblit/GitBlit.java +++ b/src/main/java/com/gitblit/GitBlit.java @@ -84,6 +84,7 @@ import org.slf4j.LoggerFactory; import com.gitblit.Constants.AccessPermission; import com.gitblit.Constants.AccessRestrictionType; +import com.gitblit.Constants.AccountType; import com.gitblit.Constants.AuthenticationType; import com.gitblit.Constants.AuthorizationControl; import com.gitblit.Constants.FederationRequest; @@ -695,12 +696,12 @@ public class GitBlit implements ServletContextListener { public boolean supportsCredentialChanges(UserModel user) { if (user == null) { return false; - } else if (!Constants.EXTERNAL_ACCOUNT.equals(user.password)) { - // credentials likely maintained by Gitblit - return userService.supportsCredentialChanges(); + } else if (AccountType.LOCAL.equals(user.accountType)) { + // local account, we can change credentials + return true; } else { - // credentials are externally maintained - return false; + // external account, ask user service + return userService.supportsCredentialChanges(); } } diff --git a/src/main/java/com/gitblit/git/ReceiveHook.java b/src/main/java/com/gitblit/git/ReceiveHook.java index e0b77987..d75a2385 100644 --- a/src/main/java/com/gitblit/git/ReceiveHook.java +++ b/src/main/java/com/gitblit/git/ReceiveHook.java @@ -36,6 +36,7 @@ import org.eclipse.jgit.transport.ReceivePack; import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import com.gitblit.Constants;
import com.gitblit.Constants.AccessRestrictionType;
import com.gitblit.GitBlit;
import com.gitblit.Keys;
@@ -44,6 +45,7 @@ import com.gitblit.models.RepositoryModel; import com.gitblit.models.UserModel;
import com.gitblit.utils.ArrayUtils;
import com.gitblit.utils.ClientLogger;
+import com.gitblit.utils.CommitCache;
import com.gitblit.utils.JGitUtils;
import com.gitblit.utils.RefLogUtils;
import com.gitblit.utils.StringUtils;
@@ -186,6 +188,21 @@ public class ReceiveHook implements PreReceiveHook, PostReceiveHook { return;
}
}
+
+ // reset branch commit cache on REWIND and DELETE
+ for (ReceiveCommand cmd : commands) {
+ String ref = cmd.getRefName();
+ if (ref.startsWith(Constants.R_HEADS)) {
+ switch (cmd.getType()) {
+ case UPDATE_NONFASTFORWARD:
+ case DELETE:
+ CommitCache.instance().clear(repository.name, ref);
+ break;
+ default:
+ break;
+ }
+ }
+ }
Set<String> scripts = new LinkedHashSet<String>();
scripts.addAll(GitBlit.self().getPreReceiveScriptsInherited(repository));
diff --git a/src/main/java/com/gitblit/utils/CommitCache.java b/src/main/java/com/gitblit/utils/CommitCache.java index 9db5f0c9..e84506ea 100644 --- a/src/main/java/com/gitblit/utils/CommitCache.java +++ b/src/main/java/com/gitblit/utils/CommitCache.java @@ -110,6 +110,23 @@ public class CommitCache { } /** + * Clears the commit cache for a specific branch of a specific repository. + * + * @param repositoryName + * @param branch + */ + public void clear(String repositoryName, String branch) { + String repoKey = repositoryName.toLowerCase(); + ObjectCache<List<RepositoryCommit>> repoCache = cache.get(repoKey); + if (repoCache != null) { + List<RepositoryCommit> commits = repoCache.remove(branch.toLowerCase()); + if (!ArrayUtils.isEmpty(commits)) { + logger.info(MessageFormat.format("{0}:{1} commit cache cleared", repositoryName, branch)); + } + } + } + + /** * Get all commits for the specified repository:branch that are in the cache. * * @param repositoryName diff --git a/src/main/java/com/gitblit/wicket/GitBlitWebApp_nl.properties b/src/main/java/com/gitblit/wicket/GitBlitWebApp_nl.properties index f1281e14..dac85a72 100644 --- a/src/main/java/com/gitblit/wicket/GitBlitWebApp_nl.properties +++ b/src/main/java/com/gitblit/wicket/GitBlitWebApp_nl.properties @@ -441,5 +441,64 @@ gb.validity = geldigheid gb.siteName = site naam
gb.siteNameDescription = korte, verduidelijkende naam van deze server
gb.excludeFromActivity = sluit uit van activiteitspagina
+gb.isSparkleshared = repository is Sparkleshared
+gb.owners = owners
gb.sessionEnded = Sessie is afgesloten
-gb.closeBrowser = Sluit de browser af om de sessie helemaal te beeindigen.
\ No newline at end of file +gb.closeBrowser = Sluit de browser af om de sessie helemaal te beeindigen.
+gb.doesNotExistInTree = {0} bestaat niet in de tree {1}
+gb.enableIncrementalPushTags = enable incrementele push tags
+gb.useIncrementalPushTagsDescription = bij een push, automatisch tag elke branch tip met een incrementeel revisie nummer
+gb.incrementalPushTagMessage = Auto-tagged [{0}] branch door een push
+gb.externalPermissions = {0} toegangsrechten worden exter beheert
+gb.viewAccess = U heeft geen Gitblit lees- of schrijfrechten
+gb.overview = overview
+gb.dashboard = dashboard
+gb.monthlyActivity = maandelijkse activiteit
+gb.myProfile = mijn profiel
+gb.compare = vergelijk
+gb.manual = manual
+gb.from = van
+gb.to = aan
+gb.at = op
+gb.of = van
+gb.in = in
+gb.moreChanges = alle wijzigingen...
+gb.pushedNCommitsTo = push {0} commits naar
+gb.pushedOneCommitTo = push 1 commit naar
+gb.commitsTo = {0} commits naar
+gb.oneCommitTo = 1 commit naar
+gb.byNAuthors = door {0} auteurs
+gb.byOneAuthor = door {0}
+gb.viewComparison = toon vergelijking van deze {0} commits \u00bb
+gb.nMoreCommits = {0} commits \u00bb
+gb.oneMoreCommit = 1 commit \u00bb
+gb.pushedNewTag = push nieuwe tag
+gb.createdNewTag = nieuww tag gemaakt
+gb.deletedTag = tag verwijderd
+gb.pushedNewBranch = push neuwe branch
+gb.createdNewBranch = nieuwe branch gemaakt
+gb.deletedBranch = branch verwijderd
+gb.createdNewPullRequest = pull verzoek gemaakt
+gb.mergedPullRequest = pull verzoek gemerged
+gb.rewind = REWIND
+gb.star = markeer
+gb.unstar = demarkeer
+gb.stargazers = sterrenkijkers
+gb.starredRepositories = repositories met een ster
+gb.failedToUpdateUser = Bijwerken gebruikersaccount niet gelukt!
+gb.myRepositories = mijn repositories
+gb.noActivity = er is geen activiteit geweest in de laatste {0} dagen
+gb.findSomeRepositories = vind repositories
+gb.metricAuthorExclusions = author metric exclusions
+gb.myDashboard = mijn dashboard
+gb.failedToFindAccount = kan gebruikersaccount ''{0}'' niet vinden
+gb.reflog = reflog
+gb.active = actief
+gb.starred = gemarkeerd
+gb.owned = eigendom
+gb.starredAndOwned = gemarkeerd & eigendom
+gb.reviewPatchset = review {0} patchset {1}
+gb.todaysActivityStats = vandaag / {1} commits door {2} auteurs
+gb.todaysActivityNone = vandaag / geen
+gb.noActivityToday = er is vandaag geen activiteit geweest
+gb.anonymousUser= anoniem diff --git a/src/main/java/com/gitblit/wicket/GitBlitWebApp_zh_CN.properties b/src/main/java/com/gitblit/wicket/GitBlitWebApp_zh_CN.properties index 96e2067b..3f1ab0d5 100644 --- a/src/main/java/com/gitblit/wicket/GitBlitWebApp_zh_CN.properties +++ b/src/main/java/com/gitblit/wicket/GitBlitWebApp_zh_CN.properties @@ -441,6 +441,64 @@ gb.validity = \u5408\u6cd5\u6027 gb.siteName = \u7f51\u7ad9\u540d\u79f0 gb.siteNameDescription = \u60a8\u7684\u670d\u52a1\u5668\u7684\u7b80\u8981\u63cf\u8ff0 gb.excludeFromActivity = \u4ece\u6d3b\u52a8\u9875\u9762\u6392\u9664 -gb.isSparkleshared = repository is Sparkleshared -gb.sessionEnded = Session has been closed -gb.closeBrowser = Please close the browser to properly end the session.
\ No newline at end of file +gb.isSparkleshared = \u7248\u672c\u5e93\u5df2\u901a\u8fc7Sparkleshare\u5b8c\u6210\u540c\u6b65 +gb.owners = \u62e5\u6709\u8005 +gb.sessionEnded = \u4f1a\u8bdd\u5df2\u5173\u95ed +gb.closeBrowser = \u8bf7\u5173\u95ed\u6d4f\u89c8\u5668\u4ee5\u4fbf\u6b63\u5e38\u5173\u95ed\u4f1a\u8bdd\u3002 +gb.doesNotExistInTree = {1} \u76ee\u5f55\u4e2d\u4e0d\u5b58\u5728 {0} +gb.enableIncrementalPushTags = \u5141\u8bb8\u9012\u589e\u5f0f\u63a8\u9001\u6807\u7b7e +gb.useIncrementalPushTagsDescription = \u6bcf\u6b21\u63a8\u9001\u65f6\uff0c\u81ea\u52a8\u4e3a\u6bcf\u4e2a\u5206\u652f\u6dfb\u52a0\u9012\u589e\u7684revision\u7f16\u53f7 +gb.incrementalPushTagMessage = \u63a8\u9001\u65f6\u81ea\u52a8\u4e3a\u5206\u652f [{0}] \u6dfb\u52a0\u6807\u7b7e +gb.externalPermissions = {0} \u7684\u8bbf\u95ee\u6743\u9650\u5c5e\u4e8e\u5916\u90e8\u63a7\u5236 +gb.viewAccess = \u60a8\u6ca1\u6709 Gitblit \u8bfb\u6216\u5199\u7684\u6743\u9650 +gb.overview = \u603b\u89c8 +gb.dashboard = \u516c\u544a\u677f +gb.monthlyActivity = \u6708\u5ea6\u6d3b\u52a8 +gb.myProfile = \u7528\u6237\u4e2d\u5fc3 +gb.compare = \u5bf9\u6bd4 +gb.manual = \u624b\u518c +gb.from = from +gb.to = to +gb.at = at +gb.of = of +gb.in = in +gb.moreChanges = \u6240\u6709\u53d8\u52a8... +gb.pushedNCommitsTo = \u5df2\u63a8\u9001 {0} \u6b21\u81f3 +gb.pushedOneCommitTo = \u5df2\u63a8\u9001 1 \u6b21\u81f3 +gb.commitsTo = {0} \u6b21\u63a8\u9001\u81f3 +gb.oneCommitTo = 1 \u6b21\u63a8\u9001\u81f3 +gb.byNAuthors = \u6765\u81ea {0} +gb.byOneAuthor = \u6765\u81ea {0} +gb.viewComparison = \u5bf9\u6bd4\u4ee5\u4e0b {0} \u6b21\u63d0\u4ea4\u5185\u5bb9 \xbb +gb.nMoreCommits = \u5176\u4ed6 {0} \u6b21\u63d0\u4ea4\xbb +gb.oneMoreCommit = \u5176\u4ed6 1 \u6b21\u63d0\u4ea4 \xbb +gb.pushedNewTag = \u63a8\u9001\u65b0\u6807\u7b7e +gb.createdNewTag = \u521b\u5efa\u65b0\u6807\u7b7e +gb.deletedTag = \u5220\u9664\u6807\u7b7e +gb.pushedNewBranch = \u63a8\u9001\u65b0\u5206\u652f +gb.createdNewBranch = \u521b\u5efa\u65b0\u5206\u652f +gb.deletedBranch = \u5df2\u5220\u9664\u5206\u652f +gb.createdNewPullRequest = \u521b\u5efa pull request +gb.mergedPullRequest = \u5408\u5e76 pull request +gb.rewind = REWIND +gb.star = \u5173\u6ce8 +gb.unstar = \u53d6\u6d88\u5173\u6ce8 +gb.stargazers = stargazers +gb.starredRepositories = \u5df2\u5173\u6ce8\u7248\u672c\u5e93 +gb.failedToUpdateUser = \u66f4\u65b0\u7528\u6237\u8d26\u6237\u4fe1\u606f\u5931\u8d25! +gb.myRepositories = \u6211\u7684\u7248\u672c\u5e93 +gb.noActivity = \u6700\u8fd1 {0} \u5929\u5185\u6ca1\u6709\u4efb\u4f55\u6d3b\u52a8 +gb.findSomeRepositories = \u5bfb\u627e\u7248\u672c\u5e93 +gb.metricAuthorExclusions = author metric exclusions +gb.myDashboard = \u6211\u7684\u516c\u544a\u677f +gb.failedToFindAccount = \u5bfb\u627e\u8d26\u6237 ''{0}'' \u5931\u8d25 +gb.reflog = reflog +gb.active = \u6d3b\u52a8 +gb.starred = \u5df2\u5173\u6ce8 +gb.owned = \u5c5e\u4e8e\u60a8 +gb.starredAndOwned = \u5df2\u5173\u6ce8 & \u5c5e\u4e8e\u60a8 +gb.reviewPatchset = review {0} patchset {1} +gb.todaysActivityStats = \u4eca\u5929 / \u6765\u81ea {2} \u7684 {1} \u6b21\u63d0\u4ea4 +gb.todaysActivityNone = \u4eca\u5929 / \u65e0 +gb.noActivityToday = \u4eca\u5929\u6ca1\u6709\u4efb\u4f55\u6d3b\u52a8 +gb.anonymousUser = \u533f\u540d diff --git a/src/main/java/com/gitblit/wicket/pages/BasePage.html b/src/main/java/com/gitblit/wicket/pages/BasePage.html index 0f96f343..e0840b28 100644 --- a/src/main/java/com/gitblit/wicket/pages/BasePage.html +++ b/src/main/java/com/gitblit/wicket/pages/BasePage.html @@ -8,6 +8,7 @@ <!-- Head -->
<wicket:head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
<title wicket:id="title">[page title]</title>
<link rel="icon" href="gitblt-favicon.png" type="image/png" />
|