Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'org.eclipse.egit.core/src/org/eclipse/egit/core/synchronize/dto/GitSynchronizeData.java')
-rw-r--r--org.eclipse.egit.core/src/org/eclipse/egit/core/synchronize/dto/GitSynchronizeData.java44
1 files changed, 29 insertions, 15 deletions
diff --git a/org.eclipse.egit.core/src/org/eclipse/egit/core/synchronize/dto/GitSynchronizeData.java b/org.eclipse.egit.core/src/org/eclipse/egit/core/synchronize/dto/GitSynchronizeData.java
index d5c2758f2c..811e5c5720 100644
--- a/org.eclipse.egit.core/src/org/eclipse/egit/core/synchronize/dto/GitSynchronizeData.java
+++ b/org.eclipse.egit.core/src/org/eclipse/egit/core/synchronize/dto/GitSynchronizeData.java
@@ -49,16 +49,20 @@ public class GitSynchronizeData {
private final String dstRemote;
- private final RevCommit srcRevCommit;
+ private RevCommit srcRevCommit;
- private final RevCommit dstRevCommit;
+ private RevCommit dstRevCommit;
- private final RevCommit ancestorRevCommit;
+ private RevCommit ancestorRevCommit;
private final Set<IProject> projects;
private final String repoParentPath;
+ private final String srcRev;
+
+ private final String dstRev;
+
/**
* Constructs {@link GitSynchronizeData} object
*
@@ -76,10 +80,32 @@ public class GitSynchronizeData {
isNotNull(srcRev);
isNotNull(dstRev);
repo = repository;
+ this.srcRev = srcRev;
+ this.dstRev = dstRev;
+ this.includeLocal = includeLocal;
srcRemote = extractRemoteName(srcRev);
dstRemote = extractRemoteName(dstRev);
+ repoParentPath = repo.getDirectory().getParentFile().getAbsolutePath();
+
+ projects = new HashSet<IProject>();
+ final IProject[] workspaceProjects = ROOT.getProjects();
+ for (IProject project : workspaceProjects) {
+ RepositoryMapping mapping = RepositoryMapping.getMapping(project);
+ if (mapping != null && mapping.getRepository() == repo)
+ projects.add(project);
+ }
+
+ updateRevs();
+ }
+
+ /**
+ * Recalculates source, destination and ancestor Rev commits
+ *
+ * @throws IOException
+ */
+ public void updateRevs() throws IOException {
ObjectWalk ow = new ObjectWalk(repo);
if (srcRev.length() > 0)
this.srcRevCommit = ow.parseCommit(repo.resolve(srcRev));
@@ -96,18 +122,6 @@ public class GitSynchronizeData {
this.dstRevCommit);
else
this.ancestorRevCommit = null;
-
- this.includeLocal = includeLocal;
- repoParentPath = repo.getDirectory().getParentFile().getAbsolutePath();
-
- projects = new HashSet<IProject>();
- final IProject[] workspaceProjects = ROOT.getProjects();
- for (IProject project : workspaceProjects) {
- RepositoryMapping mapping = RepositoryMapping.getMapping(project);
- if (mapping != null && mapping.getRepository() == repo)
- projects.add(project);
- }
-
}
/**

Back to the top