Add test for only updating relevant submodules in SubmoduleOp
Change-Id: I07f5312f2afb43c2e09f9b4b744b5600004b9b27
This commit is contained in:
@@ -29,6 +29,7 @@ import org.eclipse.jgit.junit.TestRepository;
|
||||
import org.eclipse.jgit.lib.Config;
|
||||
import org.eclipse.jgit.lib.ObjectId;
|
||||
import org.eclipse.jgit.lib.PersonIdent;
|
||||
import org.eclipse.jgit.lib.Repository;
|
||||
import org.eclipse.jgit.revwalk.RevCommit;
|
||||
import org.eclipse.jgit.revwalk.RevWalk;
|
||||
import org.eclipse.jgit.transport.PushResult;
|
||||
@@ -655,6 +656,42 @@ public class SubmoduleSubscriptionsIT extends AbstractSubmoduleSubscription {
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void updateOnlyRelevantSubmodules() throws Exception {
|
||||
TestRepository<?> superRepo = createProjectWithPush("super-project");
|
||||
TestRepository<?> subRepo1 = createProjectWithPush("subscribed-to-project-1");
|
||||
TestRepository<?> subRepo2 = createProjectWithPush("subscribed-to-project-2");
|
||||
|
||||
allowMatchingSubmoduleSubscription(
|
||||
"subscribed-to-project-1", "refs/heads/master", "super-project", "refs/heads/master");
|
||||
allowMatchingSubmoduleSubscription(
|
||||
"subscribed-to-project-2", "refs/heads/master", "super-project", "refs/heads/master");
|
||||
|
||||
Config config = new Config();
|
||||
prepareSubmoduleConfigEntry(config, "subscribed-to-project-1", "master");
|
||||
prepareSubmoduleConfigEntry(config, "subscribed-to-project-2", "master");
|
||||
pushSubmoduleConfig(superRepo, "master", config);
|
||||
|
||||
// Push once to initialize submodules.
|
||||
ObjectId subTip2 = pushChangeTo(subRepo2, "master");
|
||||
ObjectId subTip1 = pushChangeTo(subRepo1, "master");
|
||||
|
||||
expectToHaveSubmoduleState(superRepo, "master", "subscribed-to-project-1", subTip1);
|
||||
expectToHaveSubmoduleState(superRepo, "master", "subscribed-to-project-2", subTip2);
|
||||
|
||||
directUpdateRef("subscribed-to-project-2", "refs/heads/master");
|
||||
subTip1 = pushChangeTo(subRepo1, "master");
|
||||
|
||||
expectToHaveSubmoduleState(superRepo, "master", "subscribed-to-project-1", subTip1);
|
||||
expectToHaveSubmoduleState(superRepo, "master", "subscribed-to-project-2", subTip2);
|
||||
}
|
||||
|
||||
private ObjectId directUpdateRef(String project, String ref) throws Exception {
|
||||
try (Repository serverRepo = repoManager.openRepository(new Project.NameKey(name(project)))) {
|
||||
return new TestRepository<>(serverRepo).branch(ref).commit().create().copy();
|
||||
}
|
||||
}
|
||||
|
||||
private void testSubmoduleSubjectCommitMessageAndExpectTruncation() throws Exception {
|
||||
TestRepository<?> superRepo = createProjectWithPush("super-project");
|
||||
TestRepository<?> subRepo = createProjectWithPush("subscribed-to-project");
|
||||
|
Reference in New Issue
Block a user