Java Code Examples for org.eclipse.jgit.api.MergeResult.MergeStatus#valueOf()

The following examples show how to use org.eclipse.jgit.api.MergeResult.MergeStatus#valueOf() . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: GitMergeSquashTest.java    From orion.server with Eclipse Public License 1.0 6 votes vote down vote up
@Test
public void testMergeSquashSelf() throws Exception {
	createWorkspace(SimpleMetaStore.DEFAULT_WORKSPACE_NAME);

	String projectName = getMethodName().concat("Project");
	JSONObject project = createProjectOrLink(workspaceLocation, projectName, gitDir.toString());

	JSONObject gitSection = project.optJSONObject(GitConstants.KEY_GIT);
	assertNotNull(gitSection);
	String gitHeadUri = gitSection.getString(GitConstants.KEY_HEAD);

	// "git merge master"
	JSONObject merge = merge(gitHeadUri, Constants.MASTER, true);
	MergeStatus mergeResult = MergeStatus.valueOf(merge.getString(GitConstants.KEY_RESULT));
	assertEquals(MergeStatus.ALREADY_UP_TO_DATE, mergeResult);
}
 
Example 2
Source File: GitMergeTest.java    From orion.server with Eclipse Public License 1.0 6 votes vote down vote up
@Test
public void testMergeSelf() throws Exception {
	createWorkspace(SimpleMetaStore.DEFAULT_WORKSPACE_NAME);

	String projectName = getMethodName().concat("Project");
	JSONObject project = createProjectOrLink(workspaceLocation, projectName, gitDir.toString());

	JSONObject gitSection = project.optJSONObject(GitConstants.KEY_GIT);
	assertNotNull(gitSection);
	String gitHeadUri = gitSection.getString(GitConstants.KEY_HEAD);

	// "git merge master"
	JSONObject merge = merge(gitHeadUri, Constants.MASTER);
	MergeStatus mergeResult = MergeStatus.valueOf(merge.getString(GitConstants.KEY_RESULT));
	assertEquals(MergeStatus.ALREADY_UP_TO_DATE, mergeResult);
}
 
Example 3
Source File: GitMergeSquashTest.java    From orion.server with Eclipse Public License 1.0 4 votes vote down vote up
@Test
public void testMergeSquashRemovingFolders() throws Exception {
	// see org.eclipse.jgit.api.MergeCommandTest.testMergeRemovingFolders()
	createWorkspace(SimpleMetaStore.DEFAULT_WORKSPACE_NAME);
	IPath[] clonePaths = createTestProjects(workspaceLocation);

	for (IPath clonePath : clonePaths) {
		// clone a  repo
		JSONObject clone = clone(clonePath);
		String cloneContentLocation = clone.getString(ProtocolConstants.KEY_CONTENT_LOCATION);

		// get project/folder metadata
		WebRequest request = getGetRequest(cloneContentLocation);
		WebResponse response = webConversation.getResponse(request);
		assertEquals(HttpURLConnection.HTTP_OK, response.getResponseCode());
		JSONObject folder = new JSONObject(response.getText());
		String folderChildrenLocation = folder.getString(ProtocolConstants.KEY_CHILDREN_LOCATION);
		String folderLocation = folder.getString(ProtocolConstants.KEY_LOCATION);
		JSONObject gitSection = folder.getJSONObject(GitConstants.KEY_GIT);
		String gitIndexUri = gitSection.getString(GitConstants.KEY_INDEX);
		String gitHeadUri = gitSection.getString(GitConstants.KEY_HEAD);

		String folderName = "folder1";
		request = getPostFilesRequest(folderLocation + "/", getNewDirJSON(folderName).toString(), folderName);
		response = webConversation.getResponse(request);
		assertEquals(HttpURLConnection.HTTP_CREATED, response.getResponseCode());
		JSONObject folder1 = getChild(folder, "folder1");

		String fileName = "file1.txt";
		request = getPostFilesRequest(folder1.getString(ProtocolConstants.KEY_LOCATION), getNewFileJSON(fileName).toString(), fileName);
		response = webConversation.getResponse(request);
		assertEquals(HttpURLConnection.HTTP_CREATED, response.getResponseCode());

		fileName = "file2.txt";
		request = getPostFilesRequest(folder1.getString(ProtocolConstants.KEY_LOCATION), getNewFileJSON(fileName).toString(), fileName);
		response = webConversation.getResponse(request);
		assertEquals(HttpURLConnection.HTTP_CREATED, response.getResponseCode());

		folderName = "folder2";
		request = getPostFilesRequest(folderLocation + "/", getNewDirJSON(folderName).toString(), folderName);
		response = webConversation.getResponse(request);
		assertEquals(HttpURLConnection.HTTP_CREATED, response.getResponseCode());
		JSONObject folder2 = getChild(folder, "folder2");

		fileName = "file1.txt";
		request = getPostFilesRequest(folder2.getString(ProtocolConstants.KEY_LOCATION), getNewFileJSON(fileName).toString(), fileName);
		response = webConversation.getResponse(request);
		assertEquals(HttpURLConnection.HTTP_CREATED, response.getResponseCode());

		fileName = "file2.txt";
		request = getPostFilesRequest(folder2.getString(ProtocolConstants.KEY_LOCATION), getNewFileJSON(fileName).toString(), fileName);
		response = webConversation.getResponse(request);
		assertEquals(HttpURLConnection.HTTP_CREATED, response.getResponseCode());

		request = GitAddTest.getPutGitIndexRequest(gitIndexUri);
		response = webConversation.getResponse(request);
		assertEquals(HttpURLConnection.HTTP_OK, response.getResponseCode());

		request = GitCommitTest.getPostGitCommitRequest(gitHeadUri, "folders and files", false);
		response = webConversation.getResponse(request);
		assertEquals(HttpURLConnection.HTTP_OK, response.getResponseCode());

		deleteFile(folder1);

		deleteFile(folder2);

		request = GitAddTest.getPutGitIndexRequest(gitIndexUri);
		response = webConversation.getResponse(request);
		assertEquals(HttpURLConnection.HTTP_OK, response.getResponseCode());

		request = GitCommitTest.getPostGitCommitRequest(gitHeadUri, "removing folders", false);
		response = webConversation.getResponse(request);
		assertEquals(HttpURLConnection.HTTP_OK, response.getResponseCode());

		JSONArray commitsArray = log(gitHeadUri);
		assertEquals(3, commitsArray.length());
		JSONObject commit = commitsArray.getJSONObject(0);
		assertEquals("removing folders", commit.get(GitConstants.KEY_COMMIT_MESSAGE));
		String toMerge = commit.getString(ProtocolConstants.KEY_NAME);
		commit = commitsArray.getJSONObject(1);
		assertEquals("folders and files", commit.get(GitConstants.KEY_COMMIT_MESSAGE));
		String toCheckout = commit.getString(ProtocolConstants.KEY_NAME);

		Repository db1 = getRepositoryForContentLocation(cloneContentLocation);
		Git git = Git.wrap(db1);
		git.checkout().setName(toCheckout).call();

		JSONObject merge = merge(gitHeadUri, toMerge, true);
		MergeStatus mergeResult = MergeStatus.valueOf(merge.getString(GitConstants.KEY_RESULT));
		assertEquals(MergeStatus.FAST_FORWARD_SQUASHED, mergeResult);

		request = getGetRequest(folderChildrenLocation);
		response = webConversation.getResponse(request);
		assertEquals(HttpURLConnection.HTTP_OK, response.getResponseCode());
		List<JSONObject> children = getDirectoryChildren(new JSONObject(response.getText()));
		assertNull(getChildByName(children, "folder1"));
		assertNull(getChildByName(children, "folder2"));
	}
}
 
Example 4
Source File: GitMergeTest.java    From orion.server with Eclipse Public License 1.0 4 votes vote down vote up
@Test
public void testMergeRemovingFolders() throws Exception {
	// see org.eclipse.jgit.api.MergeCommandTest.testMergeRemovingFolders()
	createWorkspace(SimpleMetaStore.DEFAULT_WORKSPACE_NAME);
	IPath[] clonePaths = createTestProjects(workspaceLocation);

	for (IPath clonePath : clonePaths) {
		// clone a  repo
		JSONObject clone = clone(clonePath);
		String cloneContentLocation = clone.getString(ProtocolConstants.KEY_CONTENT_LOCATION);

		// get project/folder metadata
		WebRequest request = getGetRequest(cloneContentLocation);
		WebResponse response = webConversation.getResponse(request);
		assertEquals(HttpURLConnection.HTTP_OK, response.getResponseCode());
		JSONObject folder = new JSONObject(response.getText());
		String folderChildrenLocation = folder.getString(ProtocolConstants.KEY_CHILDREN_LOCATION);
		String folderLocation = folder.getString(ProtocolConstants.KEY_LOCATION);
		JSONObject gitSection = folder.getJSONObject(GitConstants.KEY_GIT);
		String gitIndexUri = gitSection.getString(GitConstants.KEY_INDEX);
		String gitHeadUri = gitSection.getString(GitConstants.KEY_HEAD);

		String folderName = "folder1";
		request = getPostFilesRequest(folderLocation + "/", getNewDirJSON(folderName).toString(), folderName);
		response = webConversation.getResponse(request);
		assertEquals(HttpURLConnection.HTTP_CREATED, response.getResponseCode());
		JSONObject folder1 = getChild(folder, "folder1");

		String fileName = "file1.txt";
		request = getPostFilesRequest(folder1.getString(ProtocolConstants.KEY_LOCATION), getNewFileJSON(fileName).toString(), fileName);
		response = webConversation.getResponse(request);
		assertEquals(HttpURLConnection.HTTP_CREATED, response.getResponseCode());

		fileName = "file2.txt";
		request = getPostFilesRequest(folder1.getString(ProtocolConstants.KEY_LOCATION), getNewFileJSON(fileName).toString(), fileName);
		response = webConversation.getResponse(request);
		assertEquals(HttpURLConnection.HTTP_CREATED, response.getResponseCode());

		folderName = "folder2";
		request = getPostFilesRequest(folderLocation + "/", getNewDirJSON(folderName).toString(), folderName);
		response = webConversation.getResponse(request);
		assertEquals(HttpURLConnection.HTTP_CREATED, response.getResponseCode());
		JSONObject folder2 = getChild(folder, "folder2");

		fileName = "file1.txt";
		request = getPostFilesRequest(folder2.getString(ProtocolConstants.KEY_LOCATION), getNewFileJSON(fileName).toString(), fileName);
		response = webConversation.getResponse(request);
		assertEquals(HttpURLConnection.HTTP_CREATED, response.getResponseCode());

		fileName = "file2.txt";
		request = getPostFilesRequest(folder2.getString(ProtocolConstants.KEY_LOCATION), getNewFileJSON(fileName).toString(), fileName);
		response = webConversation.getResponse(request);
		assertEquals(HttpURLConnection.HTTP_CREATED, response.getResponseCode());

		request = GitAddTest.getPutGitIndexRequest(gitIndexUri);
		response = webConversation.getResponse(request);
		assertEquals(HttpURLConnection.HTTP_OK, response.getResponseCode());

		request = GitCommitTest.getPostGitCommitRequest(gitHeadUri, "folders and files", false);
		response = webConversation.getResponse(request);
		assertEquals(HttpURLConnection.HTTP_OK, response.getResponseCode());

		deleteFile(folder1);

		deleteFile(folder2);

		request = GitAddTest.getPutGitIndexRequest(gitIndexUri);
		response = webConversation.getResponse(request);
		assertEquals(HttpURLConnection.HTTP_OK, response.getResponseCode());

		request = GitCommitTest.getPostGitCommitRequest(gitHeadUri, "removing folders", false);
		response = webConversation.getResponse(request);
		assertEquals(HttpURLConnection.HTTP_OK, response.getResponseCode());

		JSONArray commitsArray = log(gitHeadUri);
		assertEquals(3, commitsArray.length());
		JSONObject commit = commitsArray.getJSONObject(0);
		assertEquals("removing folders", commit.get(GitConstants.KEY_COMMIT_MESSAGE));
		String toMerge = commit.getString(ProtocolConstants.KEY_NAME);
		commit = commitsArray.getJSONObject(1);
		assertEquals("folders and files", commit.get(GitConstants.KEY_COMMIT_MESSAGE));
		String toCheckout = commit.getString(ProtocolConstants.KEY_NAME);

		Repository db1 = getRepositoryForContentLocation(cloneContentLocation);
		Git git = Git.wrap(db1);
		git.checkout().setName(toCheckout).call();

		JSONObject merge = merge(gitHeadUri, toMerge);
		MergeStatus mergeResult = MergeStatus.valueOf(merge.getString(GitConstants.KEY_RESULT));
		assertEquals(MergeStatus.FAST_FORWARD, mergeResult);

		request = getGetRequest(folderChildrenLocation);
		response = webConversation.getResponse(request);
		assertEquals(HttpURLConnection.HTTP_OK, response.getResponseCode());
		List<JSONObject> children = getDirectoryChildren(new JSONObject(response.getText()));
		assertNull(getChildByName(children, "folder1"));
		assertNull(getChildByName(children, "folder2"));
	}
}