| | |
| | | import org.apache.wicket.markup.html.basic.Label;
|
| | | import org.slf4j.LoggerFactory;
|
| | |
|
| | | import com.gitblit.GitBlit;
|
| | | import com.gitblit.models.RepositoryModel;
|
| | | import com.gitblit.models.UserModel;
|
| | | import com.gitblit.wicket.GitBlitWebApp;
|
| | | import com.gitblit.wicket.GitBlitWebSession;
|
| | | import com.gitblit.wicket.GitblitRedirectException;
|
| | | import com.gitblit.wicket.WicketUtils;
|
| | |
| | | super(params);
|
| | |
|
| | | setVersioned(false);
|
| | | |
| | |
|
| | | GitBlitWebSession session = GitBlitWebSession.get();
|
| | |
|
| | | RepositoryModel repository = getRepositoryModel();
|
| | |
| | | throw new GitblitRedirectException(SummaryPage.class, WicketUtils.newRepositoryParameter(repository.name));
|
| | | }
|
| | |
|
| | | String fork = GitBlit.self().getFork(user.username, repository.name);
|
| | | String fork = app().repositories().getFork(user.username, repository.name);
|
| | | if (fork != null) {
|
| | | // redirect to user's fork
|
| | | throw new GitblitRedirectException(SummaryPage.class, WicketUtils.newRepositoryParameter(fork));
|
| | |
| | | session.isForking(true);
|
| | |
|
| | | // fork it
|
| | | ForkThread forker = new ForkThread(repository, session);
|
| | | ForkThread forker = new ForkThread(app(), repository, session);
|
| | | forker.start();
|
| | | }
|
| | | }
|
| | |
| | | */
|
| | | private static class ForkThread extends Thread {
|
| | |
|
| | | private final GitBlitWebApp app;
|
| | | private final RepositoryModel repository;
|
| | | private final GitBlitWebSession session;
|
| | |
|
| | | public ForkThread(RepositoryModel repository, GitBlitWebSession session) {
|
| | | public ForkThread(GitBlitWebApp app, RepositoryModel repository, GitBlitWebSession session) {
|
| | | this.app = app;
|
| | | this.repository = repository;
|
| | | this.session = session;
|
| | | }
|
| | |
| | | public void run() {
|
| | | UserModel user = session.getUser();
|
| | | try {
|
| | | GitBlit.self().fork(repository, user);
|
| | | app.gitblit().fork(repository, user);
|
| | | } catch (Exception e) {
|
| | | LoggerFactory.getLogger(ForkPage.class).error(MessageFormat.format("Failed to fork {0} for {1}", repository.name, user.username), e);
|
| | | } finally {
|