summaryrefslogtreecommitdiffstats
path: root/src/main/java/com/gitblit
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/gitblit')
-rw-r--r--src/main/java/com/gitblit/GitBlit.java11
-rw-r--r--src/main/java/com/gitblit/git/ReceiveHook.java17
-rw-r--r--src/main/java/com/gitblit/utils/CommitCache.java17
-rw-r--r--src/main/java/com/gitblit/wicket/GitBlitWebApp_nl.properties61
-rw-r--r--src/main/java/com/gitblit/wicket/GitBlitWebApp_zh_CN.properties64
-rw-r--r--src/main/java/com/gitblit/wicket/pages/BasePage.html1
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" />