diff options
| author | Dariusz Luksza | 2010-08-15 11:51:22 +0000 |
|---|---|---|
| committer | Chris Aniszczyk | 2010-08-16 15:38:11 +0000 |
| commit | 7580eab6612456d54708691dd326507554312fb0 (patch) | |
| tree | e753634f8c91d2d1d381cc6025afe1d6190602ac | |
| parent | 0c431606da7a7b7f6179c76426c75367d29be6f5 (diff) | |
| download | egit-7580eab6612456d54708691dd326507554312fb0.tar.gz egit-7580eab6612456d54708691dd326507554312fb0.tar.xz egit-7580eab6612456d54708691dd326507554312fb0.zip | |
Exclude repository node on single repo synchronization
This is a usability improvement. When synchronization is performed on
single repository, the 'repository node' in 'Git Change Set' is omitted.
In case of synchronization multiple repositories at once 'repository
node' will be included for each repository that is synchronized.
Change-Id: I4586c3891c58ee5f8a60c14f4204117d11b742ae
Signed-off-by: Dariusz Luksza <dariusz@luksza.org>
Signed-off-by: Chris Aniszczyk <caniszczyk@gmail.com>
2 files changed, 22 insertions, 8 deletions
diff --git a/org.eclipse.egit.core/src/org/eclipse/egit/core/synchronize/dto/GitSynchronizeDataSet.java b/org.eclipse.egit.core/src/org/eclipse/egit/core/synchronize/dto/GitSynchronizeDataSet.java index ddd8564892..a300beb9ac 100644 --- a/org.eclipse.egit.core/src/org/eclipse/egit/core/synchronize/dto/GitSynchronizeDataSet.java +++ b/org.eclipse.egit.core/src/org/eclipse/egit/core/synchronize/dto/GitSynchronizeDataSet.java @@ -62,6 +62,14 @@ public class GitSynchronizeDataSet implements Iterable<GitSynchronizeData> { } /** + * @return number of {@link GitSynchronizeData} that are included in this + * set + */ + public int size() { + return gsd.size(); + } + + /** * @param projectName * @return <code>null</code> if project does not have corresponding data */ diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/synchronize/model/GitModelRoot.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/synchronize/model/GitModelRoot.java index 0e5fde41aa..b1a2888f8a 100644 --- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/synchronize/model/GitModelRoot.java +++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/synchronize/model/GitModelRoot.java @@ -40,17 +40,23 @@ public class GitModelRoot { /** * @return children */ - public GitModelRepository[] getChildren() { - List<GitModelRepository> restult = new ArrayList<GitModelRepository>(); - for (GitSynchronizeData data : gsds) { - try { - restult.add(new GitModelRepository(data)); - } catch (IOException e) { + public GitModelObject[] getChildren() { + List<GitModelObject> restult = new ArrayList<GitModelObject>(); + try { + if (gsds.size() == 1) { + GitSynchronizeData gsd = gsds.iterator().next(); + GitModelRepository repoModel = new GitModelRepository(gsd); + + for (GitModelObject obj : repoModel.getChildren()) + restult.add(obj); + } else + for (GitSynchronizeData data : gsds) + restult.add(new GitModelRepository(data)); + } catch (IOException e) { Activator.logError(e.getMessage(), e); - } } - return restult.toArray(new GitModelRepository[restult.size()]); + return restult.toArray(new GitModelObject[restult.size()]); } } |
