Kaynağa Gözat

Merge branch 'master' of https://github.com/gitblit/gitblit

tags/v1.3.1
mrbytes 11 yıl önce
ebeveyn
işleme
1c5a45ebe6

+ 4
- 0
build.xml Dosyayı Görüntüle

@@ -280,6 +280,7 @@
<mx:genjar destfile="${webinf}/lib/gitblit.jar" includeresources="false" excludeclasspathjars="true">
<!-- Specify all web.xml servlets and filters -->
<class name="com.gitblit.GitBlit" />
<class name="com.gitblit.Keys" />
<class name="com.gitblit.DownloadZipFilter" />
<class name="com.gitblit.DownloadZipServlet" />
<class name="com.gitblit.EnforceAuthenticationFilter" />
@@ -335,6 +336,7 @@
<mx:genjar tag="" includeresources="false" excludeClasspathJars="true"
destfile="${project.targetDirectory}/fedclient.jar">
<mainclass name="com.gitblit.FederationClient" />
<class name="com.gitblit.Keys" />
<launcher paths="ext" />
<resource file="${project.compileOutputDirectory}/log4j.properties" />
</mx:genjar>
@@ -395,6 +397,7 @@
<!-- Gitblit classes -->
<mx:genjar destfile="${webinf}/lib/gitblit.jar" includeresources="false" excludeclasspathjars="true">
<class name="com.gitblit.Keys" />
<!-- Specify all web.xml servlets and filters -->
<class name="com.gitblit.GitBlit" />
<class name="com.gitblit.DownloadZipFilter" />
@@ -552,6 +555,7 @@
</resource>
<mainclass name="com.gitblit.authority.Launcher" />
<class name="com.gitblit.Keys" />
<manifest>
<attribute name="SplashScreen-Image" value="splash.png" />
</manifest>

+ 15
- 3
releases.moxie Dosyayı Görüntüle

@@ -5,17 +5,29 @@ r18: {
title: ${project.name} ${project.version} released
id: ${project.version}
date: ${project.buildDate}
note: ~
note: ''
If you have forked repositories and your are upgrading from 1.2.x to 1.3.x, please DO NOT RELOCATE your repositories folder when running 1.3.x the first time. Gitblit will update forked repository configs on the first execution and it is critical that ${git.repositoriesFolder} points to the same location used by 1.2.x.
''
html: ~
text: ~
security: ~
fixes:
- Gitblit-as-viewer with no repository urls failed to display summary page (issue 269)
- Fixed missing model class dependencies in Gitblit Manager build
changes: ~
- Fix for IE10 compatability mode
- Reset dashboard and activity commit cache on branch REWIND or DELETE
- Fixed bug with adding new local users with external authentication
changes:
- updated Chinese translation
- updated Dutch translation
additions: ~
dependencyChanges: ~
contributors: ~
contributors:
- Rainer Alföldi
- Liyu Wang
- Jeroen Baten
- James Moger
- Stardrad Yin
}

#

+ 6
- 5
src/main/java/com/gitblit/GitBlit.java Dosyayı Görüntüle

@@ -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();
}
}


+ 17
- 0
src/main/java/com/gitblit/git/ReceiveHook.java Dosyayı Görüntüle

@@ -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));

+ 17
- 0
src/main/java/com/gitblit/utils/CommitCache.java Dosyayı Görüntüle

@@ -109,6 +109,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.
*

+ 60
- 1
src/main/java/com/gitblit/wicket/GitBlitWebApp_nl.properties Dosyayı Görüntüle

@@ -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.
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

+ 61
- 3
src/main/java/com/gitblit/wicket/GitBlitWebApp_zh_CN.properties Dosyayı Görüntüle

@@ -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.
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

+ 1
- 0
src/main/java/com/gitblit/wicket/pages/BasePage.html Dosyayı Görüntüle

@@ -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" />

+ 1
- 1
src/test/java/com/gitblit/tests/GitBlitSuite.java Dosyayı Görüntüle

@@ -60,7 +60,7 @@ import com.gitblit.utils.JGitUtils;
DiffUtilsTest.class, MetricUtilsTest.class, TicgitUtilsTest.class, X509UtilsTest.class,
GitBlitTest.class, FederationTests.class, RpcTests.class, GitServletTest.class, GitDaemonTest.class,
GroovyScriptTest.class, LuceneExecutorTest.class, IssuesTest.class, RepositoryModelTest.class,
FanoutServiceTest.class, Issue0259Test.class })
FanoutServiceTest.class, Issue0259Test.class, Issue0271Test.class })
public class GitBlitSuite {
public static final File REPOSITORIES = new File("data/git");

+ 76
- 0
src/test/java/com/gitblit/tests/Issue0271Test.java Dosyayı Görüntüle

@@ -0,0 +1,76 @@
/*
* Copyright 2013 gitblit.com.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.gitblit.tests;
import java.io.File;
import org.junit.Assert;
import org.junit.Test;
import com.gitblit.ConfigUserService;
import com.gitblit.Constants.AccessPermission;
import com.gitblit.Constants.AccessRestrictionType;
import com.gitblit.models.RepositoryModel;
import com.gitblit.models.UserModel;
/**
* https://code.google.com/p/gitblit/issues/detail?id=271
*
* Reported Problem:
* Inherited team permissions are incorrect.
*
* @see src/test/resources/issue0270.conf
*
* @author James Moger
*
*/
public class Issue0271Test extends Assert {
RepositoryModel repo(String name, AccessRestrictionType restriction) {
RepositoryModel repo = new RepositoryModel();
repo.name = name;
repo.accessRestriction = restriction;
return repo;
}
/**
* Test the provided users.conf file for expected access permissions.
*
* @throws Exception
*/
@Test
public void testFile() throws Exception {
File realmFile = new File("src/test/resources/issue0271.conf");
ConfigUserService service = new ConfigUserService(realmFile);
RepositoryModel test = repo("test.git", AccessRestrictionType.VIEW);
RepositoryModel teama_test = repo("teama/test.git", AccessRestrictionType.VIEW);
UserModel a = service.getUserModel("a");
UserModel b = service.getUserModel("b");
UserModel c = service.getUserModel("c");
// assert V for test.git
assertEquals(AccessPermission.VIEW, a.getRepositoryPermission(test).permission);
assertEquals(AccessPermission.VIEW, b.getRepositoryPermission(test).permission);
assertEquals(AccessPermission.VIEW, c.getRepositoryPermission(test).permission);
// assert expected permissions for teama/test.git
assertEquals(AccessPermission.VIEW, a.getRepositoryPermission(teama_test).permission);
assertEquals(AccessPermission.PUSH, b.getRepositoryPermission(teama_test).permission);
assertEquals(AccessPermission.CREATE, c.getRepositoryPermission(teama_test).permission);
}
}

+ 20
- 0
src/test/resources/issue0271.conf Dosyayı Görüntüle

@@ -0,0 +1,20 @@
[user "A"]
password = apassword
role = "#none"
[user "B"]
password = apassword
role = "#none"
[user "C"]
password = apassword
role = "#none"
repository = RWC:teama/.*
[team "developers"]
role = "#none"
repository = V:.*
user = A
user = B
user = C
[team "teama"]
repository = RW:teama/.*
user = B
user = C

Loading…
İptal
Kaydet