From 394af52f9aa150f89092acf830d96b6fee27ba72 Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Wed, 03 Oct 2012 09:19:54 -0400 Subject: [PATCH] Hide some repository page header elements on phones and tablets --- src/com/gitblit/GitBlit.java | 67 +++++++++++++++++---------------- 1 files changed, 34 insertions(+), 33 deletions(-) diff --git a/src/com/gitblit/GitBlit.java b/src/com/gitblit/GitBlit.java index 51c44f6..1ebc4c7 100644 --- a/src/com/gitblit/GitBlit.java +++ b/src/com/gitblit/GitBlit.java @@ -1425,7 +1425,7 @@ private ForkModel getForkModel(String repository) { RepositoryModel model = repositoryListCache.get(repository); - ForkModel fork = new ForkModel(model.originRepository, model.name); + ForkModel fork = new ForkModel(model); if (!ArrayUtils.isEmpty(model.forks)) { for (String aFork : model.forks) { ForkModel fm = getForkModel(aFork); @@ -2637,44 +2637,45 @@ * * @param repository * @param user - * @return true, if successful + * @return the repository model of the fork, if successful + * @throws GitBlitException */ - public boolean fork(RepositoryModel repository, UserModel user) { + public RepositoryModel fork(RepositoryModel repository, UserModel user) throws GitBlitException { String cloneName = MessageFormat.format("~{0}/{1}.git", user.username, StringUtils.stripDotGit(StringUtils.getLastPathElement(repository.name))); String fromUrl = MessageFormat.format("file://{0}/{1}", repositoriesFolder.getAbsolutePath(), repository.name); + + // clone the repository try { - // clone the repository JGitUtils.cloneRepository(repositoriesFolder, cloneName, fromUrl, true, null); - - // create a Gitblit repository model for the clone - RepositoryModel cloneModel = repository.cloneAs(cloneName); - cloneModel.owner = user.username; - updateRepositoryModel(cloneName, cloneModel, false); - - if (AuthorizationControl.NAMED.equals(cloneModel.authorizationControl)) { - // add the owner of the source repository to the clone's access list - if (!StringUtils.isEmpty(repository.owner)) { - UserModel owner = getUserModel(repository.owner); - if (owner != null) { - owner.repositories.add(cloneName); - updateUserModel(owner.username, owner, false); - } - } - - // inherit origin's access lists - List<String> users = getRepositoryUsers(repository); - setRepositoryUsers(cloneModel, users); - - List<String> teams = getRepositoryTeams(repository); - setRepositoryTeams(cloneModel, teams); - } - - // add this clone to the cached model - addToCachedRepositoryList(cloneModel.name, cloneModel); - return true; } catch (Exception e) { - logger.error("failed to fork", e); + throw new GitBlitException(e); } - return false; + + // create a Gitblit repository model for the clone + RepositoryModel cloneModel = repository.cloneAs(cloneName); + cloneModel.owner = user.username; + updateRepositoryModel(cloneName, cloneModel, false); + + if (AuthorizationControl.NAMED.equals(cloneModel.authorizationControl)) { + // add the owner of the source repository to the clone's access list + if (!StringUtils.isEmpty(repository.owner)) { + UserModel owner = getUserModel(repository.owner); + if (owner != null) { + owner.repositories.add(cloneName); + updateUserModel(owner.username, owner, false); + } + } + + // inherit origin's access lists + List<String> users = getRepositoryUsers(repository); + setRepositoryUsers(cloneModel, users); + + List<String> teams = getRepositoryTeams(repository); + setRepositoryTeams(cloneModel, teams); + } + + // add this clone to the cached model + addToCachedRepositoryList(cloneModel.name, cloneModel); + return cloneModel; } } -- Gitblit v1.9.1