diff options
author | Matthias Sohn | 2016-11-05 17:41:02 +0000 |
---|---|---|
committer | Matthias Sohn | 2016-12-12 21:57:09 +0000 |
commit | 5f95132e5c3a0422f53c8f886757a8f23ee7a8e6 (patch) | |
tree | 43c52cd1beef3573397e9b8e7f81def5e434d4cf /org.eclipse.egit.core.test/src | |
parent | 9d4940d100557d2cfcb10f9a7609fc39bbb959ac (diff) | |
download | egit-5f95132e5c3a0422f53c8f886757a8f23ee7a8e6.tar.gz egit-5f95132e5c3a0422f53c8f886757a8f23ee7a8e6.tar.xz egit-5f95132e5c3a0422f53c8f886757a8f23ee7a8e6.zip |
Make auto-staging of files being deleted configurable
- by default do not auto-stage files being deleted
- add an option to enable auto-staging of deleted files for those who
want the old behavior.
Bug: 507018
Change-Id: I5c906dd4fb7295f0ac153ada9be7ee341d8f46c8
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
Diffstat (limited to 'org.eclipse.egit.core.test/src')
2 files changed, 30 insertions, 4 deletions
diff --git a/org.eclipse.egit.core.test/src/org/eclipse/egit/core/GitMoveDeleteHookTest.java b/org.eclipse.egit.core.test/src/org/eclipse/egit/core/GitMoveDeleteHookTest.java index 354641c82c..4013435668 100644 --- a/org.eclipse.egit.core.test/src/org/eclipse/egit/core/GitMoveDeleteHookTest.java +++ b/org.eclipse.egit.core.test/src/org/eclipse/egit/core/GitMoveDeleteHookTest.java @@ -30,6 +30,8 @@ import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Path; +import org.eclipse.core.runtime.preferences.IEclipsePreferences; +import org.eclipse.core.runtime.preferences.InstanceScope; import org.eclipse.egit.core.op.AddToIndexOperation; import org.eclipse.egit.core.project.RepositoryMapping; import org.eclipse.egit.core.test.TestProject; @@ -51,11 +53,18 @@ import org.eclipse.jgit.util.SystemReader; import org.junit.After; import org.junit.Before; import org.junit.Test; +import org.junit.experimental.theories.DataPoints; +import org.junit.experimental.theories.Theories; +import org.junit.experimental.theories.Theory; +import org.junit.runner.RunWith; /** * All sorts of interesting cases */ +@RunWith(Theories.class) public class GitMoveDeleteHookTest { + @DataPoints + public static boolean[] autoStageDeletions = { true, false }; TestUtils testUtils = new TestUtils(); @@ -139,8 +148,13 @@ public class GitMoveDeleteHookTest { return project; } - @Test - public void testDeleteFile() throws Exception { + @Theory + public void testDeleteFile(boolean autoStageDelete) throws Exception { + IEclipsePreferences p = InstanceScope.INSTANCE + .getNode(Activator.getPluginId()); + p.putBoolean(GitCorePreferences.core_autoStageDeletion, + autoStageDelete); + TestProject project = initRepoInsideProjectInsideWorkspace(); testUtils.addFileToProject(project.getProject(), "file.txt", "some text"); @@ -168,8 +182,13 @@ public class GitMoveDeleteHookTest { // Check index for the deleted file dirCache.read(); - assertEquals(1, dirCache.getEntryCount()); - assertNull(dirCache.getEntry("file.txt")); + if (autoStageDelete) { + assertEquals(1, dirCache.getEntryCount()); + assertNull(dirCache.getEntry("file.txt")); + } else { + assertEquals(2, dirCache.getEntryCount()); + assertNotNull(dirCache.getEntry("file.txt")); + } assertNotNull(dirCache.getEntry("file2.txt")); // Actual file is deleted assertFalse(file.exists()); diff --git a/org.eclipse.egit.core.test/src/org/eclipse/egit/core/synchronize/GitSubscriberMergeContextTest.java b/org.eclipse.egit.core.test/src/org/eclipse/egit/core/synchronize/GitSubscriberMergeContextTest.java index e2e8cc7786..3f112e3f96 100644 --- a/org.eclipse.egit.core.test/src/org/eclipse/egit/core/synchronize/GitSubscriberMergeContextTest.java +++ b/org.eclipse.egit.core.test/src/org/eclipse/egit/core/synchronize/GitSubscriberMergeContextTest.java @@ -26,6 +26,10 @@ import org.eclipse.core.resources.IResource; import org.eclipse.core.resources.mapping.ResourceMapping; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.NullProgressMonitor; +import org.eclipse.core.runtime.preferences.IEclipsePreferences; +import org.eclipse.core.runtime.preferences.InstanceScope; +import org.eclipse.egit.core.Activator; +import org.eclipse.egit.core.GitCorePreferences; import org.eclipse.egit.core.project.RepositoryMapping; import org.eclipse.egit.core.test.TestRepository; import org.eclipse.egit.core.test.TestUtils; @@ -347,6 +351,9 @@ public class GitSubscriberMergeContextTest extends ModelTestCase { @Test public void mergeModelWithDeletedFileNoConflict() throws Exception { + IEclipsePreferences p = InstanceScope.INSTANCE + .getNode(Activator.getPluginId()); + p.putBoolean(GitCorePreferences.core_autoStageDeletion, true); File file1 = testRepo.createFile(iProject, "file1." + SAMPLE_FILE_EXTENSION); File file2 = testRepo.createFile(iProject, "file2." |