Cannot commit -o file with only file permission change
Bug 345076 Change-Id: Ie64039793ab6ba4748731320399f03301b6282ec Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
This commit is contained in:
parent
6a582970bf
commit
d5c890e0fd
|
@ -67,6 +67,7 @@
|
|||
import org.eclipse.jgit.revwalk.RevCommit;
|
||||
import org.eclipse.jgit.storage.file.ReflogReader;
|
||||
import org.eclipse.jgit.treewalk.TreeWalk;
|
||||
import org.eclipse.jgit.util.FS;
|
||||
import org.eclipse.jgit.util.FileUtils;
|
||||
import org.eclipse.jgit.util.RawParseUtils;
|
||||
import org.junit.Test;
|
||||
|
@ -266,6 +267,36 @@ public void testAddUnstagedChanges() throws IOException, NoHeadException,
|
|||
tw.getObjectId(0).getName());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testModeChange() throws IOException, NoFilepatternException,
|
||||
NoHeadException, NoMessageException, ConcurrentRefUpdateException,
|
||||
JGitInternalException, WrongRepositoryStateException {
|
||||
Git git = new Git(db);
|
||||
|
||||
// create file
|
||||
File file = new File(db.getWorkTree(), "a.txt");
|
||||
FileUtils.createNewFile(file);
|
||||
PrintWriter writer = new PrintWriter(file);
|
||||
writer.print("content1");
|
||||
writer.close();
|
||||
|
||||
// First commit - a.txt file
|
||||
git.add().addFilepattern("a.txt").call();
|
||||
git.commit().setMessage("commit1").setCommitter(committer).call();
|
||||
|
||||
// pure mode change should be committable
|
||||
FS fs = db.getFS();
|
||||
fs.setExecute(file, true);
|
||||
git.add().addFilepattern("a.txt").call();
|
||||
git.commit().setMessage("mode change").setCommitter(committer).call();
|
||||
|
||||
// pure mode change should be committable with -o option
|
||||
fs.setExecute(file, false);
|
||||
git.add().addFilepattern("a.txt").call();
|
||||
git.commit().setMessage("mode change").setCommitter(committer)
|
||||
.setOnly("a.txt").call();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCommitRange() throws NoHeadException, NoMessageException,
|
||||
UnmergedPathException, ConcurrentRefUpdateException,
|
||||
|
|
|
@ -382,7 +382,10 @@ public void apply(DirCacheEntry ent) {
|
|||
// add to temporary in-core index
|
||||
dcBuilder.add(dcEntry);
|
||||
|
||||
if (emptyCommit && (hTree == null || !hTree.idEqual(fTree)))
|
||||
if (emptyCommit
|
||||
&& (hTree == null || !hTree.idEqual(fTree) || hTree
|
||||
.getEntryRawMode() != fTree
|
||||
.getEntryRawMode()))
|
||||
// this is a change
|
||||
emptyCommit = false;
|
||||
} else {
|
||||
|
|
Loading…
Reference in New Issue