Merge "Reuse existing modes and ids"
This commit is contained in:
commit
3083146d13
|
@ -577,13 +577,11 @@ void processEntry(AbstractTreeIterator h, AbstractTreeIterator m,
|
|||
|
||||
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 @@ void processEntry(AbstractTreeIterator h, AbstractTreeIterator m,
|
|||
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 @@ void processEntry(AbstractTreeIterator h, AbstractTreeIterator m,
|
|||
// 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 @@ void processEntry(AbstractTreeIterator h, AbstractTreeIterator m,
|
|||
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 @@ void processEntry(AbstractTreeIterator h, AbstractTreeIterator m,
|
|||
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 @@ void processEntry(AbstractTreeIterator h, AbstractTreeIterator m,
|
|||
// 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 @@ void processEntry(AbstractTreeIterator h, AbstractTreeIterator m,
|
|||
*/
|
||||
|
||||
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 @@ else if (equalIdAndMode(hId, hMode, iId, iMode)
|
|||
// 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…
Reference in New Issue