RebaseCommand should ignore submodule modifications
Before a rebase happens the RebaseCommand checks that the working tree is clean. We don't want to start a rebase on a dirty working tree. If the working tree is dirty a rebase should not be allowed. But RebaseCommand should ignore modifications done to submodules. E.g. if a submodules HEAD points to <x> but the root repository has in index that the submodule should point to <y> then this should not prohibit a rebase. Also native git allows a rebase in this case. Since jgit's StatusCommand has learned to ignore submodule changes this is now used by the RebaseCommand to determine the repository state correctly. Bug: 446922 Change-Id: I487bf7484dca3f5501e6e514584e2871524eea19
This commit is contained in:
parent
95172dea17
commit
6f0b92ff22
|
@ -99,6 +99,7 @@
|
|||
import org.eclipse.jgit.revwalk.RevCommit;
|
||||
import org.eclipse.jgit.revwalk.RevWalk;
|
||||
import org.eclipse.jgit.revwalk.filter.RevFilter;
|
||||
import org.eclipse.jgit.submodule.SubmoduleWalk.IgnoreSubmoduleMode;
|
||||
import org.eclipse.jgit.treewalk.TreeWalk;
|
||||
import org.eclipse.jgit.treewalk.filter.TreeFilter;
|
||||
import org.eclipse.jgit.util.FileUtils;
|
||||
|
@ -294,7 +295,7 @@ public RebaseResult call() throws GitAPIException, NoHeadException,
|
|||
walk.parseCommit(repo.resolve(Constants.HEAD)),
|
||||
upstreamCommit)) {
|
||||
org.eclipse.jgit.api.Status status = Git.wrap(repo)
|
||||
.status().call();
|
||||
.status().setIgnoreSubmodules(IgnoreSubmoduleMode.ALL).call();
|
||||
if (status.hasUncommittedChanges()) {
|
||||
List<String> list = new ArrayList<String>();
|
||||
list.addAll(status.getUncommittedChanges());
|
||||
|
|
Loading…
Reference in New Issue