import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import java.io.ByteArrayOutputStream;
b.getString(0, b.size(), false));
}
+ @Test
+ public void testAddM1() throws Exception {
+ ApplyResult result = init("M1", false, true);
+ assertEquals(1, result.getUpdatedFiles().size());
+ assertTrue(result.getUpdatedFiles().get(0).canExecute());
+ checkFile(new File(db.getWorkTree(), "M1"),
+ b.getString(0, b.size(), false));
+ }
+
+ @Test
+ public void testModifyM2() throws Exception {
+ ApplyResult result = init("M2", true, true);
+ assertEquals(1, result.getUpdatedFiles().size());
+ assertTrue(result.getUpdatedFiles().get(0).canExecute());
+ checkFile(new File(db.getWorkTree(), "M2"),
+ b.getString(0, b.size(), false));
+ }
+
+ @Test
+ public void testModifyM3() throws Exception {
+ ApplyResult result = init("M3", true, true);
+ assertEquals(1, result.getUpdatedFiles().size());
+ assertFalse(result.getUpdatedFiles().get(0).canExecute());
+ checkFile(new File(db.getWorkTree(), "M3"),
+ b.getString(0, b.size(), false));
+ }
+
@Test
public void testModifyX() throws Exception {
ApplyResult result = init("X");
import org.eclipse.jgit.diff.DiffEntry.ChangeType;
import org.eclipse.jgit.diff.RawText;
import org.eclipse.jgit.internal.JGitText;
+import org.eclipse.jgit.lib.FileMode;
import org.eclipse.jgit.lib.Repository;
import org.eclipse.jgit.patch.FileHeader;
import org.eclipse.jgit.patch.HunkHeader;
FileWriter fw = new FileWriter(f);
fw.write(sb.toString());
fw.close();
+
+ getRepository().getFS().setExecute(f, fh.getNewMode() == FileMode.EXECUTABLE_FILE);
}
private static boolean isChanged(List<String> ol, List<String> nl) {