Package org.eclipse.egit.core

Examples of org.eclipse.egit.core.RepositoryUtil


        "refs/heads/master", "origin", 0);
    op.run(null);

    clonedRepositoryFile = new File(workdir, Constants.DOT_GIT);

    RepositoryUtil repositoryUtil = Activator.getDefault()
        .getRepositoryUtil();
    repositoryUtil.addConfiguredRepository(repositoryFile);
    repositoryUtil.addConfiguredRepository(remoteRepositoryFile);
    repositoryUtil.addConfiguredRepository(clonedRepositoryFile);
  }
View Full Code Here


    setImageDescriptor(UIIcons.WIZBAN_CONNECT_REPO);
    this.myWizard = w;
  }

  public void createControl(Composite parent) {
    final RepositoryUtil util = Activator.getDefault().getRepositoryUtil();
    Composite main = new Composite(parent, SWT.NONE);
    // use zero spacing to save some real estate here
    GridLayoutFactory.fillDefaults().spacing(0, 0).applyTo(main);

    final Button internalModeButton = new Button(main, SWT.CHECK);
    internalModeButton
        .setText(UIText.ExistingOrNewPage_InternalModeCheckbox);
    internalModeButton
        .setToolTipText(UIText.ExistingOrNewPage_CreationInWorkspaceWarningTooltip);
    internalModeButton.addSelectionListener(new SelectionAdapter() {
      @Override
      public void widgetSelected(SelectionEvent e) {
        internalMode = internalModeButton.getSelection();
        updateControls();
      }
    });

    externalComposite = new Composite(main, SWT.NONE);
    GridDataFactory.fillDefaults().grab(true, true)
        .applyTo(externalComposite);
    externalComposite.setLayout(new GridLayout(3, false));

    new Label(externalComposite, SWT.NONE)
        .setText(UIText.ExistingOrNewPage_ExistingRepositoryLabel);
    final Combo existingRepoCombo = new Combo(externalComposite,
        SWT.READ_ONLY);
    GridDataFactory.fillDefaults().grab(true, false)
        .applyTo(existingRepoCombo);
    final ComboViewer v = new ComboViewer(existingRepoCombo);
    v.setContentProvider(new RepoComboContentProvider());
    v.setLabelProvider(new RepoComboLabelProvider());
    v.setInput(new Object());
    // the default ViewerSorter seems to do the right thing
    // i.e. sort as String
    v.setSorter(new ViewerSorter());

    existingRepoCombo.addSelectionListener(new SelectionAdapter() {
      @Override
      public void widgetSelected(SelectionEvent e) {
        selectedRepository = null;
        IStructuredSelection sel = (IStructuredSelection) v
            .getSelection();
        setRepository((Repository) sel.getFirstElement());
        updateControls();
      }
    });

    Button createRepoWizard = new Button(externalComposite, SWT.PUSH);
    createRepoWizard.setText(UIText.ExistingOrNewPage_CreateRepositoryButton);
    createRepoWizard.addSelectionListener(new SelectionAdapter() {
      @Override
      public void widgetSelected(SelectionEvent e) {
        NewRepositoryWizard wiz = new NewRepositoryWizard(true);
        if (new WizardDialog(getShell(), wiz).open() == Window.OK) {
          v.refresh();
          selectedRepository = wiz.getCreatedRepository();
          v.setSelection(new StructuredSelection(selectedRepository));
          updateControls();
        }
      }
    });

    new Label(externalComposite, SWT.NONE)
        .setText(UIText.ExistingOrNewPage_WorkingDirectoryLabel);
    workDir = new Text(externalComposite, SWT.BORDER | SWT.READ_ONLY);
    GridDataFactory.fillDefaults().grab(true, false).applyTo(workDir);
    GridDataFactory.fillDefaults().applyTo(workDir);
    // leave the space between the "Create" and "Browse" buttons empty (i.e.
    // do not fill to the right border
    new Label(externalComposite, SWT.NONE);

    new Label(externalComposite, SWT.NONE)
        .setText(UIText.ExistingOrNewPage_RelativePathLabel);
    relPath = new Text(externalComposite, SWT.BORDER);
    relPath.addModifyListener(new ModifyListener() {
      public void modifyText(ModifyEvent e) {
        updateControls();
      }
    });

    GridDataFactory.fillDefaults().grab(true, false).applyTo(relPath);
    browseRepository = new Button(externalComposite, SWT.PUSH);
    browseRepository.setEnabled(false);
    browseRepository
        .setText(UIText.ExistingOrNewPage_BrowseRepositoryButton);
    browseRepository.addSelectionListener(new SelectionAdapter() {
      @Override
      public void widgetSelected(SelectionEvent e) {
        DirectoryDialog dlg = new DirectoryDialog(getShell());
        dlg.setFilterPath(selectedRepository.getWorkTree().getPath());
        String directory = dlg.open();
        if (directory != null) {
          setRelativePath(directory);
          updateControls();
        }
      }
    });

    Table projectMoveTable = new Table(externalComposite, SWT.MULTI
        | SWT.FULL_SELECTION | SWT.CHECK | SWT.BORDER);
    projectMoveViewer = new CheckboxTableViewer(projectMoveTable);
    GridDataFactory.fillDefaults().span(3, 1).grab(true, true)
        .applyTo(projectMoveTable);

    TableColumn tc;
    tc = new TableColumn(projectMoveTable, SWT.NONE);
    tc.setText(UIText.ExistingOrNewPage_ProjectNameColumnHeader);
    tc.setWidth(100);

    tc = new TableColumn(projectMoveTable, SWT.NONE);
    tc.setText(UIText.ExistingOrNewPage_CurrentLocationColumnHeader);
    tc.setWidth(250);

    tc = new TableColumn(projectMoveTable, SWT.NONE);
    tc.setText(UIText.ExistingOrNewPage_NewLocationTargetHeader);
    tc.setWidth(350);

    projectMoveTable.setHeaderVisible(true);
    projectMoveViewer
        .setContentProvider(ArrayContentProvider.getInstance());
    projectMoveViewer.setLabelProvider(moveProjectsLabelProvider);
    projectMoveViewer.setInput(myWizard.projects);
    projectMoveViewer.addCheckStateListener(new ICheckStateListener() {
      public void checkStateChanged(CheckStateChangedEvent event) {
        updateControls();
      }
    });
    TableItem[] children = projectMoveViewer.getTable().getItems();
    for (int i = 0; i < children.length; i++) {
      TableItem item = children[i];
      IProject data = (IProject) item.getData();
      RepositoryFinder repositoryFinder = new RepositoryFinder(data);
      repositoryFinder.setFindInChildren(false);
      try {
        Collection<RepositoryMapping> find = repositoryFinder
            .find(new NullProgressMonitor());
        if (find.size() != 1)
          item.setChecked(true);
      } catch (CoreException e1) {
        item.setText(2, e1.getMessage());
      }
    }

    parentRepoComposite = new Composite(main, SWT.NONE);
    parentRepoComposite.setLayout(new GridLayout(3, false));
    GridDataFactory.fillDefaults().grab(true, true)
        .applyTo(parentRepoComposite);

    tree = new Tree(parentRepoComposite, SWT.BORDER | SWT.MULTI
        | SWT.FULL_SELECTION | SWT.CHECK);
    viewer = new CheckboxTreeViewer(tree);
    tree.setHeaderVisible(true);
    tree.setLayout(new GridLayout());
    tree.setLayoutData(GridDataFactory.fillDefaults().grab(true, true)
        .span(3, 1).create());
    viewer.addCheckStateListener(new ICheckStateListener() {

      public void checkStateChanged(CheckStateChangedEvent event) {
        if (event.getChecked()) {
          ProjectAndRepo checkable = (ProjectAndRepo) event
              .getElement();
          for (TreeItem ti : tree.getItems()) {
            if (ti.getItemCount() > 0
                || ((ProjectAndRepo) ti.getData()).getRepo()
                    .equals("")) //$NON-NLS-1$
              ti.setChecked(false);
            for (TreeItem subTi : ti.getItems()) {
              IProject project = ((ProjectAndRepo) subTi
                  .getData()).getProject();
              if (checkable.getProject() != null
                  && !subTi.getData().equals(checkable)
                  && checkable.getProject().equals(project))
                subTi.setChecked(false);
            }
          }
        }
      }
    });
    TreeColumn c1 = new TreeColumn(tree, SWT.NONE);
    c1.setText(UIText.ExistingOrNewPage_HeaderProject);
    c1.setWidth(100);
    TreeColumn c2 = new TreeColumn(tree, SWT.NONE);
    c2.setText(UIText.ExistingOrNewPage_HeaderLocation);
    c2.setWidth(400);
    TreeColumn c3 = new TreeColumn(tree, SWT.NONE);
    c3.setText(UIText.ExistingOrNewPage_HeaderRepository);
    c3.setWidth(200);
    boolean allProjectsInExistingRepos = true;
    for (IProject project : myWizard.projects) {
      RepositoryFinder repositoryFinder = new RepositoryFinder(project);
      repositoryFinder.setFindInChildren(false);
      try {
        Collection<RepositoryMapping> mappings;
        mappings = repositoryFinder.find(new NullProgressMonitor());
        Iterator<RepositoryMapping> mi = mappings.iterator();
        RepositoryMapping m = mi.hasNext() ? mi.next() : null;
        if (m == null) {
          // no mapping found, enable repository creation
          TreeItem treeItem = new TreeItem(tree, SWT.NONE);
          updateProjectTreeItem(treeItem, project);
          treeItem.setText(1, project.getLocation().toOSString());
          treeItem.setText(2, ""); //$NON-NLS-1$
          treeItem.setData(new ProjectAndRepo(project, "")); //$NON-NLS-1$
          allProjectsInExistingRepos = false;
        } else if (!mi.hasNext()) {
          // exactly one mapping found
          TreeItem treeItem = new TreeItem(tree, SWT.NONE);
          updateProjectTreeItem(treeItem, project);
          treeItem.setText(1, project.getLocation().toOSString());
          fillTreeItemWithGitDirectory(m, treeItem, false);
          treeItem.setData(new ProjectAndRepo(project, m
              .getGitDirAbsolutePath().toOSString()));
          treeItem.setChecked(true);
        }

        else {
          TreeItem treeItem = new TreeItem(tree, SWT.NONE);
          updateProjectTreeItem(treeItem, project);
          treeItem.setText(1, project.getLocation().toOSString());
          treeItem.setData(new ProjectAndRepo(project, "")); //$NON-NLS-1$

          TreeItem treeItem2 = new TreeItem(treeItem, SWT.NONE);
          updateProjectTreeItem(treeItem2, project);
          fillTreeItemWithGitDirectory(m, treeItem2, true);
          treeItem2.setData(new ProjectAndRepo(project, m
              .getGitDirAbsolutePath().toOSString()));
          while (mi.hasNext()) { // fill in additional mappings
            m = mi.next();
            treeItem2 = new TreeItem(treeItem, SWT.NONE);
            updateProjectTreeItem(treeItem2, project);
            fillTreeItemWithGitDirectory(m, treeItem2, true);
            treeItem2.setData(new ProjectAndRepo(m.getContainer()
                .getProject(), m.getGitDirAbsolutePath()
                .toOSString()));
          }
          treeItem.setExpanded(true);
          allProjectsInExistingRepos = false;
        }
      } catch (CoreException e) {
        TreeItem treeItem2 = new TreeItem(tree, SWT.BOLD | SWT.ITALIC);
        treeItem2.setText(e.getMessage());
      }
    }

    createRepo = new Button(parentRepoComposite, SWT.PUSH);
    createRepo.setLayoutData(GridDataFactory.fillDefaults().create());
    createRepo.setText(UIText.ExistingOrNewPage_CreateButton);
    createRepo.addSelectionListener(new SelectionAdapter() {
      public void widgetSelected(SelectionEvent e) {
        File gitDir = new File(repositoryToCreate.getText(),
            Constants.DOT_GIT);
        try {
          Repository repository = FileRepositoryBuilder
              .create(gitDir);
          repository.create();
          for (IProject project : getProjects(false).keySet()) {
            // If we don't refresh the project directories right
            // now we won't later know that a .git directory
            // exists within it and we won't mark the .git
            // directory as a team-private member. Failure
            // to do so might allow someone to delete
            // the .git directory without us stopping them.
            // (Half lie, we should optimize so we do not
            // refresh when the .git is not within the project)
            //
            if (!gitDir.toString().contains("..")) //$NON-NLS-1$
              project.refreshLocal(IResource.DEPTH_ONE,
                  new NullProgressMonitor());
          }
          util.addConfiguredRepository(gitDir);
        } catch (IOException e1) {
          String msg = NLS
              .bind(UIText.ExistingOrNewPage_ErrorFailedToCreateRepository,
                  gitDir.toString());
          org.eclipse.egit.ui.Activator.handleError(msg, e1, true);
View Full Code Here

    }

    final PersonIdent committerIdent = new PersonIdent(enteredCommitter, commitDate, timeZone);

    if (amending) {
      RepositoryUtil repoUtil = Activator.getDefault().getRepositoryUtil();
      RevCommit headCommit = repoUtil.parseHeadCommit(repo);
      if (headCommit != null) {
        final PersonIdent headAuthor = headCommit.getAuthorIdent();
        authorIdent = new PersonIdent(enteredAuthor,
            headAuthor.getWhen(), headAuthor.getTimeZone());
      }
View Full Code Here

  private IStatus executeCloneOperation(final CloneOperation op,
      final GitRepositoryInfo repositoryInfo,
      final IProgressMonitor monitor) throws InvocationTargetException,
      InterruptedException {

    final RepositoryUtil util = Activator.getDefault().getRepositoryUtil();

    op.run(monitor);
    util.addConfiguredRepository(op.getGitDir());
    try {
      if (repositoryInfo.shouldSaveCredentialsInSecureStore())
        SecureStoreUtils.storeCredentials(repositoryInfo.getCredentials(),
            new URIish(repositoryInfo.getCloneUri()));
    } catch (Exception e) {
View Full Code Here

    File file = new File(uri.getPath());

    if (!file.exists())
      return null;

    RepositoryUtil config = Activator.getDefault().getRepositoryUtil();

    List<String> repos = config.getConfiguredRepositories();
    for (String repo : repos) {
      Repository repository;
      try {
        repository = FileRepositoryBuilder.create(new File(repo));
      } catch (IOException e) {
View Full Code Here

  @SuppressWarnings("unchecked")
  public Object[] getElements(Object inputElement) {

    List<RepositoryTreeNode> nodes = new ArrayList<RepositoryTreeNode>();
    List<String> directories = new ArrayList<String>();
    RepositoryUtil repositoryUtil = Activator.getDefault()
        .getRepositoryUtil();

    if (inputElement instanceof Collection) {
      for (Iterator it = ((Collection) inputElement).iterator(); it
          .hasNext();) {
        Object next = it.next();
        if (next instanceof RepositoryTreeNode)
          nodes.add((RepositoryTreeNode) next);
        else if (next instanceof String)
          directories.add((String) next);
      }
    } else if (inputElement instanceof IWorkspaceRoot) {
      directories.addAll(repositoryUtil.getConfiguredRepositories());
    }

    for (String directory : directories) {
      try {
        File gitDir = new File(directory);
        if (gitDir.exists()) {
          RepositoryNode rNode = new RepositoryNode(null,
              repositoryCache.lookupRepository(gitDir));
          nodes.add(rNode);
        } else
          repositoryUtil.removeDir(gitDir);
      } catch (IOException e) {
        // ignore for now
      }
    }
View Full Code Here

   * @return a styled string for the repository
   * @throws IOException
   */
  public static StyledString getStyledLabel(Repository repository)
      throws IOException {
    RepositoryUtil repositoryUtil = Activator.getDefault()
        .getRepositoryUtil();

    StyledString string = new StyledString();
    string.append(repositoryUtil.getRepositoryName(repository));

    String branch = repositoryUtil.getShortBranch(repository);
    if (branch != null) {
      string.append(' ');
      string.append('[', StyledString.DECORATIONS_STYLER);
      string.append(branch, StyledString.DECORATIONS_STYLER);

View Full Code Here

                  Messages.CommitHyperlinkDetector_CommitNotFoundInRepositories,
                  objectId));
    }

    private RepositoryCommit searchCommit() throws IOException {
      RepositoryUtil repositoryUtil = Activator.getDefault()
          .getRepositoryUtil();
      List<String> configuredRepositories = repositoryUtil
          .getConfiguredRepositories();
      RepositoryCache repositoryCache = Activator.getDefault()
          .getRepositoryCache();
      for (String repoDir : configuredRepositories) {
        Repository repository = repositoryCache
View Full Code Here

    File repoDir = createRepository(repoPath, url, "master");

    IPath otherRepoPath = reposPath.append("other");
    File otherRepoDir = createRepository(otherRepoPath, "other-url", "master");

    RepositoryUtil util = Activator.getDefault().getRepositoryUtil();
    util.addConfiguredRepository(repoDir);
    util.addConfiguredRepository(otherRepoDir);

    String reference = createProjectReference(repoPath, "master", "project");

    addToWorkspace(new String[] { reference });
View Full Code Here

    IProject project = createProject(repoPath, "project");
    project.delete(false, true, null);
    String url = createUrl(repoPath, "ssh", "userName");
    File repoDir = createRepository(repoPath, url, "master");

    RepositoryUtil util = Activator.getDefault().getRepositoryUtil();
    util.addConfiguredRepository(repoDir);

    String reference = createProjectReference(repoPath, "ssh", /* no user */
        null, "master", "project");

    addToWorkspace(new String[] { reference });
View Full Code Here

TOP

Related Classes of org.eclipse.egit.core.RepositoryUtil

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.