diff options
author | Yobmod <yobmod@gmail.com> | 2021-07-24 19:46:52 +0100 |
---|---|---|
committer | Yobmod <yobmod@gmail.com> | 2021-07-24 19:46:52 +0100 |
commit | 2bc2ac02e270404fcb609eeacc4feea6146b9d2e (patch) | |
tree | 9aff529055b02c196aba1ca76b4ddb547090ddc0 /git/index/fun.py | |
parent | 4b6430bad60ff491239fe06c41a43b498e0c883f (diff) | |
download | gitpython-2bc2ac02e270404fcb609eeacc4feea6146b9d2e.tar.gz |
Use BaseIndexEntry named access in index/fun.py
Diffstat (limited to 'git/index/fun.py')
-rw-r--r-- | git/index/fun.py | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/git/index/fun.py b/git/index/fun.py index 3b963a2b..49e3f2c5 100644 --- a/git/index/fun.py +++ b/git/index/fun.py @@ -57,6 +57,7 @@ from git.types import PathLike if TYPE_CHECKING: from .base import IndexFile + from git.db import GitCmdObjectDB from git.objects.tree import TreeCacheTup # from git.objects.fun import EntryTupOrNone @@ -149,15 +150,15 @@ def write_cache(entries: Sequence[Union[BaseIndexEntry, 'IndexEntry']], stream: # body for entry in entries: beginoffset = tell() - write(entry[4]) # ctime - write(entry[5]) # mtime - path_str: str = entry[3] + write(entry.ctime_bytes) # ctime + write(entry.mtime_bytes) # mtime + path_str = str(entry.path) path: bytes = force_bytes(path_str, encoding=defenc) plen = len(path) & CE_NAMEMASK # path length - assert plen == len(path), "Path %s too long to fit into index" % entry[3] - flags = plen | (entry[2] & CE_NAMEMASK_INV) # clear possible previous values - write(pack(">LLLLLL20sH", entry[6], entry[7], entry[0], - entry[8], entry[9], entry[10], entry[1], flags)) + assert plen == len(path), "Path %s too long to fit into index" % entry.path + flags = plen | (entry.flags & CE_NAMEMASK_INV) # clear possible previous values + write(pack(">LLLLLL20sH", entry.dev, entry.inode, entry.mode, + entry.uid, entry.gid, entry.size, entry.binsha, flags)) write(path) real_size = ((tell() - beginoffset + 8) & ~7) write(b"\0" * ((beginoffset + real_size) - tell())) @@ -311,7 +312,7 @@ def _tree_entry_to_baseindexentry(tree_entry: 'TreeCacheTup', stage: int) -> Bas return BaseIndexEntry((tree_entry[1], tree_entry[0], stage << CE_STAGESHIFT, tree_entry[2])) -def aggressive_tree_merge(odb, tree_shas: Sequence[bytes]) -> List[BaseIndexEntry]: +def aggressive_tree_merge(odb: 'GitCmdObjectDB', tree_shas: Sequence[bytes]) -> List[BaseIndexEntry]: """ :return: list of BaseIndexEntries representing the aggressive merge of the given trees. All valid entries are on stage 0, whereas the conflicting ones are left |