Explorar el Código

Cannot commit -o file with only file permission change

Bug 345076
Change-Id: Ie64039793ab6ba4748731320399f03301b6282ec
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
tags/v1.3.0.201202121842-rc4
Robin Rosenberg hace 12 años
padre
commit
d5c890e0fd

+ 31
- 0
org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CommitAndLogCommandTests.java Ver fichero

import org.eclipse.jgit.revwalk.RevCommit; import org.eclipse.jgit.revwalk.RevCommit;
import org.eclipse.jgit.storage.file.ReflogReader; import org.eclipse.jgit.storage.file.ReflogReader;
import org.eclipse.jgit.treewalk.TreeWalk; import org.eclipse.jgit.treewalk.TreeWalk;
import org.eclipse.jgit.util.FS;
import org.eclipse.jgit.util.FileUtils; import org.eclipse.jgit.util.FileUtils;
import org.eclipse.jgit.util.RawParseUtils; import org.eclipse.jgit.util.RawParseUtils;
import org.junit.Test; import org.junit.Test;
tw.getObjectId(0).getName()); 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 @Test
public void testCommitRange() throws NoHeadException, NoMessageException, public void testCommitRange() throws NoHeadException, NoMessageException,
UnmergedPathException, ConcurrentRefUpdateException, UnmergedPathException, ConcurrentRefUpdateException,

+ 4
- 1
org.eclipse.jgit/src/org/eclipse/jgit/api/CommitCommand.java Ver fichero

// add to temporary in-core index // add to temporary in-core index
dcBuilder.add(dcEntry); 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 // this is a change
emptyCommit = false; emptyCommit = false;
} else { } else {

Cargando…
Cancelar
Guardar