Sfoglia il codice sorgente

Reuse existing modes and ids

This change replaces calls to getEntryObjectId and getEntryFileMode
with the existing method local variables for the index, merge, and
head tree iterators.

Change-Id: I75d1edfdd192a009fc916102ec052434c6302d00
tags/v2.0.0.201206130900-r
Kevin Sawicki 12 anni fa
parent
commit
0fb0e84405

+ 13
- 15
org.eclipse.jgit/src/org/eclipse/jgit/dircache/DirCacheCheckout.java Vedi File

@@ -577,13 +577,11 @@ public class DirCacheCheckout {

int ffMask = 0;
if (h != null)
ffMask = FileMode.TREE.equals(h.getEntryFileMode()) ? 0xD00 : 0xF00;
ffMask = FileMode.TREE.equals(hMode) ? 0xD00 : 0xF00;
if (i != null)
ffMask |= FileMode.TREE.equals(i.getEntryFileMode()) ? 0x0D0
: 0x0F0;
ffMask |= FileMode.TREE.equals(iMode) ? 0x0D0 : 0x0F0;
if (m != null)
ffMask |= FileMode.TREE.equals(m.getEntryFileMode()) ? 0x00D
: 0x00F;
ffMask |= FileMode.TREE.equals(mMode) ? 0x00D : 0x00F;

// Check whether we have a possible file/folder conflict. Therefore we
// need a least one file and one folder.
@@ -599,7 +597,7 @@ public class DirCacheCheckout {
if (isModified(name)) {
conflict(name, i.getDirCacheEntry(), h, m); // 1
} else {
update(name, m.getEntryObjectId(), m.getEntryFileMode()); // 2
update(name, mId, mMode); // 2
}

break;
@@ -623,7 +621,7 @@ public class DirCacheCheckout {
// are found later
break;
case 0xD0F: // 19
update(name, mId, m.getEntryFileMode());
update(name, mId, mMode);
break;
case 0xDF0: // conflict without a rule
case 0x0FD: // 15
@@ -634,9 +632,9 @@ public class DirCacheCheckout {
if (isModified(name))
conflict(name, i.getDirCacheEntry(), h, m); // 8
else
update(name, mId, m.getEntryFileMode()); // 7
update(name, mId, mMode); // 7
} else if (!isModified(name))
update(name, mId, m.getEntryFileMode()); // 9
update(name, mId, mMode); // 9
else
// To be confirmed - this case is not in the table.
conflict(name, i.getDirCacheEntry(), h, m);
@@ -656,7 +654,7 @@ public class DirCacheCheckout {
break;
case 0x0DF: // 16 17
if (!isModified(name))
update(name, mId, m.getEntryFileMode());
update(name, mId, mMode);
else
conflict(name, i.getDirCacheEntry(), h, m);
break;
@@ -679,7 +677,7 @@ public class DirCacheCheckout {
// make sure not to overwrite untracked files
if (f != null) {
// A submodule is not a file. We should ignore it
if (!FileMode.GITLINK.equals(m.getEntryFileMode())) {
if (!FileMode.GITLINK.equals(mMode)) {
// a dirty worktree: the index is empty but we have a
// workingtree-file
if (mId == null
@@ -703,11 +701,11 @@ public class DirCacheCheckout {
*/

if (h == null)
update(name, mId, m.getEntryFileMode()); // 1
update(name, mId, mMode); // 1
else if (m == null)
remove(name); // 2
else
update(name, mId, m.getEntryFileMode()); // 3
update(name, mId, mMode); // 3
} else {
dce = i.getDirCacheEntry();
if (h == null) {
@@ -772,12 +770,12 @@ public class DirCacheCheckout {
// For submodules just update the index with the new SHA-1
if (dce != null
&& FileMode.GITLINK.equals(dce.getFileMode())) {
update(name, mId, m.getEntryFileMode());
update(name, mId, mMode);
} else if (dce != null
&& (f == null || f.isModified(dce, true))) {
conflict(name, dce, h, m);
} else {
update(name, mId, m.getEntryFileMode());
update(name, mId, mMode);
}
} else {
keep(dce);

Loading…
Annulla
Salva