1 files added
16 files modified
| | |
| | | public static final String ZIP_SERVLET_PATH = "/zip/";
|
| | |
|
| | | public static final String BORDER = "***********************************************************";
|
| | | |
| | |
|
| | | public static enum AccessRestrictionType {
|
| | | NONE, PUSH, CLONE, VIEW;
|
| | |
|
| | |
| | | private final Logger logger = LoggerFactory.getLogger(FileSettings.class);
|
| | |
|
| | | private final File propertiesFile;
|
| | | |
| | |
|
| | | private Properties properties = new Properties();
|
| | |
|
| | | private long lastread;
|
| | |
| | | public FileSettings(String file) {
|
| | | this.propertiesFile = new File(file);
|
| | | }
|
| | | |
| | |
|
| | | @Override
|
| | | public List<String> getAllKeys(String startingWith) {
|
| | | startingWith = startingWith.toLowerCase();
|
| | |
| | | return strings;
|
| | | }
|
| | |
|
| | | private synchronized Properties read() { |
| | | private synchronized Properties read() {
|
| | | if (propertiesFile.exists() && (propertiesFile.lastModified() > lastread)) {
|
| | | FileInputStream is = null;
|
| | | try {
|
| | |
| | | handler = rootContext;
|
| | | }
|
| | |
|
| | | logger.info("Git repositories folder " + new File(params.repositoriesFolder).getAbsolutePath());
|
| | | |
| | | logger.info("Git repositories folder "
|
| | | + new File(params.repositoriesFolder).getAbsolutePath());
|
| | |
|
| | | // Set the server's contexts
|
| | | server.setHandler(handler);
|
| | |
|
| | |
| | | private final ServerSocket socket;
|
| | |
|
| | | private final Server server;
|
| | | |
| | |
|
| | | private final Logger logger = LoggerFactory.getLogger(ShutdownMonitorThread.class);
|
| | |
|
| | | public ShutdownMonitorThread(Server server, Params params) {
|
| | |
| | |
|
| | | @Parameters(separators = " ")
|
| | | private static class Params {
|
| | | |
| | |
|
| | | private static final FileSettings FILESETTINGS = new FileSettings(Constants.PROPERTIES_FILE);
|
| | |
|
| | | /*
|
| | |
| | | import com.gitblit.utils.TimeUtils;
|
| | |
|
| | | public class MakeCertificate {
|
| | | |
| | |
|
| | | private static final String BC = org.bouncycastle.jce.provider.BouncyCastleProvider.PROVIDER_NAME;
|
| | |
|
| | | public static void main(String... args) {
|
| | |
| | | private static class Params {
|
| | |
|
| | | private static final FileSettings FILESETTINGS = new FileSettings(Constants.PROPERTIES_FILE);
|
| | | |
| | |
|
| | | @Parameter(names = { "--alias" }, description = "Server alias", required = true)
|
| | | public String alias;
|
| | |
|
| | |
| | | |
| | | public ByteFormat() { |
| | | } |
| | | |
| | | |
| | | public String format(long value) { |
| | | return format(new Long(value)); |
| | | } |
| | |
| | | } |
| | | return buf; |
| | | } |
| | | |
| | | |
| | | public Object parseObject(String source, ParsePosition pos) { |
| | | return null; |
| | | } |
| | |
| | | public class DiffUtils {
|
| | |
|
| | | private static final Logger LOGGER = LoggerFactory.getLogger(DiffUtils.class);
|
| | | |
| | |
|
| | | public static String getCommitDiff(Repository r, RevCommit commit, DiffOutputType outputType) {
|
| | | return getCommitDiff(r, null, commit, null, outputType);
|
| | | return getDiff(r, null, commit, null, outputType);
|
| | | }
|
| | |
|
| | | public static String getCommitDiff(Repository r, RevCommit commit, String path,
|
| | | public static String getDiff(Repository r, RevCommit commit, String path,
|
| | | DiffOutputType outputType) {
|
| | | return getCommitDiff(r, null, commit, path, outputType);
|
| | | return getDiff(r, null, commit, path, outputType);
|
| | | }
|
| | |
|
| | | public static String getCommitDiff(Repository r, RevCommit baseCommit, RevCommit commit,
|
| | | public static String getDiff(Repository r, RevCommit baseCommit, RevCommit commit,
|
| | | DiffOutputType outputType) {
|
| | | return getCommitDiff(r, baseCommit, commit, null, outputType);
|
| | | return getDiff(r, baseCommit, commit, null, outputType);
|
| | | }
|
| | |
|
| | | public static String getCommitDiff(Repository r, RevCommit baseCommit, RevCommit commit,
|
| | | String path, DiffOutputType outputType) {
|
| | | public static String getDiff(Repository r, RevCommit baseCommit, RevCommit commit, String path,
|
| | | DiffOutputType outputType) {
|
| | | try {
|
| | | RevTree baseTree;
|
| | | if (baseCommit == null) {
|
| | |
| | | if (r != null && r.getDirectory().exists()) {
|
| | | return new File(r.getDirectory(), Constants.R_HEADS).list().length > 0;
|
| | | }
|
| | | return false; |
| | | return false;
|
| | | }
|
| | |
|
| | | public static Date getLastChange(Repository r) {
|
| | |
| | | String diff;
|
| | | if (StringUtils.isEmpty(baseObjectId)) {
|
| | | // use first parent
|
| | | diff = DiffUtils.getCommitDiff(r, commit, blobPath, diffType);
|
| | | diff = DiffUtils.getDiff(r, commit, blobPath, diffType);
|
| | | add(new BookmarkablePageLink<Void>("patchLink", PatchPage.class,
|
| | | WicketUtils.newPathParameter(repositoryName, objectId, blobPath)));
|
| | | } else {
|
| | | // base commit specified
|
| | | RevCommit baseCommit = JGitUtils.getCommit(r, baseObjectId);
|
| | | diff = DiffUtils.getCommitDiff(r, baseCommit, commit, blobPath, diffType);
|
| | | diff = DiffUtils.getDiff(r, baseCommit, commit, blobPath, diffType);
|
| | | add(new BookmarkablePageLink<Void>("patchLink", PatchPage.class,
|
| | | WicketUtils.newBlobDiffParameter(repositoryName, baseObjectId, objectId,
|
| | | blobPath)));
|
| | |
| | | repos.add(selectedRepositories.next().toLowerCase());
|
| | | }
|
| | | userModel.repositories.clear();
|
| | | userModel.repositories.addAll(repos); |
| | | userModel.repositories.addAll(repos);
|
| | | try {
|
| | | GitBlit.self().editUserModel(oldName, userModel, isCreate);
|
| | | } catch (GitBlitException e) {
|
| | |
| | | setRedirect(true);
|
| | | setResponsePage(getApplication().getHomePage());
|
| | | }
|
| | | |
| | |
|
| | | add(new Label("title", GitBlit.getString(Keys.web.siteName, Constants.NAME)));
|
| | | add(new Label("name", Constants.NAME));
|
| | |
|
| | | StatelessForm<Void> loginForm = new StatelessForm<Void>("loginForm") {
|
| | | |
| | |
|
| | | private static final long serialVersionUID = 1L;
|
| | |
|
| | | @Override
|
| | |
| | | this.name = name;
|
| | | this.path = path;
|
| | | this.isLeaf = isLeaf;
|
| | | } |
| | | }
|
| | | }
|
| | | } |
| | |
| | | public void testByteFormat() throws Exception {
|
| | | ByteFormat format = new ByteFormat();
|
| | | assertTrue(format.format(10).equals("10 b"));
|
| | | assertTrue(format.format(1024*10).equals("10.0 KB"));
|
| | | assertTrue(format.format(1024*1000).equals("1,000.0 KB"));
|
| | | assertTrue(format.format(2*1024*1000).equals("2.0 MB"));
|
| | | assertTrue(format.format(1024*1024*1000).equals("1,000.0 MB"));
|
| | | assertTrue(format.format(2*1024*1024*1000).equals("2.0 GB"));
|
| | | assertTrue(format.format(1024 * 10).equals("10.0 KB"));
|
| | | assertTrue(format.format(1024 * 1000).equals("1,000.0 KB"));
|
| | | assertTrue(format.format(2 * 1024 * 1000).equals("2.0 MB"));
|
| | | assertTrue(format.format(1024 * 1024 * 1000).equals("1,000.0 MB"));
|
| | | assertTrue(format.format(2 * 1024 * 1024 * 1000).equals("2.0 GB"));
|
| | | }
|
| | | }
|
New file |
| | |
| | | /*
|
| | | * Copyright 2011 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 junit.framework.TestCase;
|
| | |
|
| | | import org.eclipse.jgit.lib.Repository;
|
| | | import org.eclipse.jgit.revwalk.RevCommit;
|
| | |
|
| | | import com.gitblit.utils.DiffUtils;
|
| | | import com.gitblit.utils.JGitUtils;
|
| | | import com.gitblit.utils.JGitUtils.DiffOutputType;
|
| | |
|
| | | public class DiffUtilsTest extends TestCase {
|
| | |
|
| | | public void testParentCommitDiff() throws Exception {
|
| | | Repository repository = GitBlitSuite.getHelloworldRepository();
|
| | | RevCommit commit = JGitUtils.getCommit(repository,
|
| | | "1d0c2933a4ae69c362f76797d42d6bd182d05176");
|
| | | String diff = DiffUtils.getCommitDiff(repository, commit, DiffOutputType.PLAIN);
|
| | | repository.close();
|
| | | assertTrue(diff != null && diff.length() > 0);
|
| | | String expected = "- system.out.println(\"Hello World\");\n+ System.out.println(\"Hello World\"";
|
| | | assertTrue(diff.indexOf(expected) > -1);
|
| | | }
|
| | |
|
| | | public void testArbitraryCommitDiff() throws Exception {
|
| | | Repository repository = GitBlitSuite.getHelloworldRepository();
|
| | | RevCommit baseCommit = JGitUtils.getCommit(repository,
|
| | | "8baf6a833b5579384d9b9ceb8a16b5d0ea2ec4ca");
|
| | | RevCommit commit = JGitUtils.getCommit(repository,
|
| | | "1d0c2933a4ae69c362f76797d42d6bd182d05176");
|
| | | String diff = DiffUtils.getDiff(repository, baseCommit, commit, DiffOutputType.PLAIN);
|
| | | repository.close();
|
| | | assertTrue(diff != null && diff.length() > 0);
|
| | | String expected = "- system.out.println(\"Hello World\");\n+ System.out.println(\"Hello World\"";
|
| | | assertTrue(diff.indexOf(expected) > -1);
|
| | | }
|
| | |
|
| | | public void testPlainFileDiff() throws Exception {
|
| | | Repository repository = GitBlitSuite.getHelloworldRepository();
|
| | | RevCommit commit = JGitUtils.getCommit(repository,
|
| | | "1d0c2933a4ae69c362f76797d42d6bd182d05176");
|
| | | String diff = DiffUtils.getDiff(repository, commit, "java.java", DiffOutputType.PLAIN);
|
| | | repository.close();
|
| | | assertTrue(diff != null && diff.length() > 0);
|
| | | String expected = "- system.out.println(\"Hello World\");\n+ System.out.println(\"Hello World\"";
|
| | | assertTrue(diff.indexOf(expected) > -1);
|
| | | }
|
| | |
|
| | | public void testFilePatch() throws Exception {
|
| | | Repository repository = GitBlitSuite.getHelloworldRepository();
|
| | | RevCommit commit = JGitUtils.getCommit(repository,
|
| | | "1d0c2933a4ae69c362f76797d42d6bd182d05176");
|
| | | String patch = DiffUtils.getCommitPatch(repository, null, commit, "java.java");
|
| | | repository.close();
|
| | | assertTrue(patch != null && patch.length() > 0);
|
| | | String expected = "- system.out.println(\"Hello World\");\n+ System.out.println(\"Hello World\"";
|
| | | assertTrue(patch.indexOf(expected) > -1);
|
| | | }
|
| | |
|
| | | public void testArbitraryFilePatch() throws Exception {
|
| | | Repository repository = GitBlitSuite.getHelloworldRepository();
|
| | | RevCommit baseCommit = JGitUtils.getCommit(repository,
|
| | | "8baf6a833b5579384d9b9ceb8a16b5d0ea2ec4ca");
|
| | | RevCommit commit = JGitUtils.getCommit(repository,
|
| | | "1d0c2933a4ae69c362f76797d42d6bd182d05176");
|
| | | String patch = DiffUtils.getCommitPatch(repository, baseCommit, commit, "java.java");
|
| | | repository.close();
|
| | | assertTrue(patch != null && patch.length() > 0);
|
| | | String expected = "- system.out.println(\"Hello World\");\n+ System.out.println(\"Hello World\"";
|
| | | assertTrue(patch.indexOf(expected) > -1);
|
| | | }
|
| | |
|
| | | public void testArbitraryCommitPatch() throws Exception {
|
| | | Repository repository = GitBlitSuite.getHelloworldRepository();
|
| | | RevCommit baseCommit = JGitUtils.getCommit(repository,
|
| | | "8baf6a833b5579384d9b9ceb8a16b5d0ea2ec4ca");
|
| | | RevCommit commit = JGitUtils.getCommit(repository,
|
| | | "1d0c2933a4ae69c362f76797d42d6bd182d05176");
|
| | | String patch = DiffUtils.getCommitPatch(repository, baseCommit, commit, null);
|
| | | repository.close();
|
| | | assertTrue(patch != null && patch.length() > 0);
|
| | | String expected = "- system.out.println(\"Hello World\");\n+ System.out.println(\"Hello World\"";
|
| | | assertTrue(patch.indexOf(expected) > -1);
|
| | | }
|
| | | }
|
| | |
| | | suite.addTestSuite(StringUtilsTest.class);
|
| | | suite.addTestSuite(ByteFormatTest.class);
|
| | | suite.addTestSuite(JGitUtilsTest.class);
|
| | | suite.addTestSuite(DiffUtilsTest.class);
|
| | | suite.addTestSuite(GitBlitTest.class);
|
| | | return new GitBlitSuite(suite);
|
| | | }
|
| | |
| | | public void testRepositoryModel() throws Exception {
|
| | | List<String> repositories = GitBlit.self().getRepositoryList();
|
| | | assertTrue("Repository list is empty!", repositories.size() > 0);
|
| | | assertTrue("Missing Helloworld repository!", repositories.contains(GitBlitSuite.getHelloworldRepository().getDirectory().getName()));
|
| | | RepositoryModel model = GitBlit.self().getRepositoryModel(GitBlitSuite.getHelloworldRepository().getDirectory().getName());
|
| | | assertTrue(
|
| | | "Missing Helloworld repository!",
|
| | | repositories.contains(GitBlitSuite.getHelloworldRepository().getDirectory()
|
| | | .getName()));
|
| | | RepositoryModel model = GitBlit.self().getRepositoryModel(
|
| | | GitBlitSuite.getHelloworldRepository().getDirectory().getName());
|
| | | assertTrue("Helloworld model is null!", model != null);
|
| | | assertTrue(model.toString().equals(GitBlitSuite.getHelloworldRepository().getDirectory().getName()));
|
| | | assertTrue(model.toString().equals(
|
| | | GitBlitSuite.getHelloworldRepository().getDirectory().getName()));
|
| | | }
|
| | | |
| | |
|
| | | public void testUserModel() throws Exception {
|
| | | List<String> users = GitBlit.self().getAllUsernames();
|
| | | assertTrue("No users found!", users.size() > 0);
|
| | |
| | | import com.gitblit.models.RefModel;
|
| | | import com.gitblit.models.TicketModel;
|
| | | import com.gitblit.models.TicketModel.Comment;
|
| | | import com.gitblit.utils.DiffUtils;
|
| | | import com.gitblit.utils.JGitUtils;
|
| | | import com.gitblit.utils.JGitUtils.DiffOutputType;
|
| | |
|
| | | public class JGitUtilsTest extends TestCase {
|
| | |
|
| | |
| | | public void testFirstCommit() throws Exception {
|
| | | Repository repository = GitBlitSuite.getHelloworldRepository();
|
| | | RevCommit commit = JGitUtils.getFirstCommit(repository, null);
|
| | | Date firstChange = JGitUtils.getFirstChange(repository, null);
|
| | | repository.close();
|
| | | assertTrue("Could not get first commit!", commit != null);
|
| | | assertTrue("Incorrect first commit!",
|
| | | commit.getName().equals("f554664a346629dc2b839f7292d06bad2db4aece"));
|
| | | assertTrue(firstChange.equals(new Date(commit.getCommitTime() * 1000L)));
|
| | | }
|
| | |
|
| | | public void testRefs() throws Exception {
|
| | |
| | | assertTrue("PathChangeModel equals itself failed!", path.equals(path));
|
| | | assertFalse("PathChangeModel equals string failed!", path.equals(""));
|
| | | }
|
| | | }
|
| | |
|
| | | public void testCommitDiff() throws Exception {
|
| | | Repository repository = GitBlitSuite.getHelloworldRepository();
|
| | | RevCommit commit = JGitUtils.getCommit(repository,
|
| | | "1d0c2933a4ae69c362f76797d42d6bd182d05176");
|
| | | String diff = DiffUtils.getCommitDiff(repository, commit, DiffOutputType.PLAIN);
|
| | | repository.close();
|
| | | assertTrue("Failed to generate diff!", diff != null && diff.length() > 0);
|
| | | String expected = "- system.out.println(\"Hello World\");\n+ System.out.println(\"Hello World\"";
|
| | | assertTrue("Diff content mismatch!", diff.indexOf(expected) > -1);
|
| | | }
|
| | |
|
| | | public void testZip() throws Exception {
|
| | |
| | | String output = "this<br/>is<br/>a<br/>test<br/><br/>of<br/><br/>line<br/><br/>breaking";
|
| | | assertTrue(StringUtils.breakLinesForHtml(input).equals(output));
|
| | | }
|
| | | |
| | |
|
| | | public void testEscapeForHtml() throws Exception {
|
| | | String input = "& < > \" \t";
|
| | | String output_nochange = "& < > " \t";
|
| | |
| | | assertTrue(StringUtils.leftPad(input, input.length(), ' ').equals(input));
|
| | | assertTrue(StringUtils.rightPad(input, input.length(), ' ').equals(input));
|
| | | }
|
| | | |
| | |
|
| | | public void testSHA1() throws Exception {
|
| | | assertTrue(StringUtils.getSHA1("blob 16\000what is up, doc?").equals("bd9dbf5aae1a3862dd1526723246b20206e5fc37"));
|
| | | assertTrue(StringUtils.getSHA1("blob 16\000what is up, doc?").equals(
|
| | | "bd9dbf5aae1a3862dd1526723246b20206e5fc37"));
|
| | | }
|
| | | |
| | |
|
| | | public void testRootPath() throws Exception {
|
| | | String input = "/nested/path/to/repository";
|
| | | String output = "/nested/path/to";
|