@@ -19,6 +19,7 @@ from typing import (
1919from . import Index
2020from ._libgit2 .ffi import (
2121 GitCommitC ,
22+ GitMergeOptionsC ,
2223 GitObjectC ,
2324 GitProxyOptionsC ,
2425 GitRepositoryC ,
@@ -36,12 +37,16 @@ from .enums import (
3637 BranchType ,
3738 CheckoutStrategy ,
3839 DeltaStatus ,
40+ DescribeStrategy ,
3941 DiffFind ,
4042 DiffFlag ,
4143 DiffOption ,
4244 DiffStatsFormat ,
4345 FileMode ,
4446 MergeAnalysis ,
47+ MergeFavor ,
48+ MergeFileFlag ,
49+ MergeFlag ,
4550 MergePreference ,
4651 ObjectType ,
4752 Option ,
@@ -51,6 +56,7 @@ from .enums import (
5156 ResetMode ,
5257 SortMode ,
5358)
59+ from .filter import Filter
5460from .remotes import Remote
5561from .repository import BaseRepository
5662from .submodules import SubmoduleCollection
@@ -457,6 +463,7 @@ class Diff:
457463 patch : str | None
458464 patchid : Oid
459465 stats : DiffStats
466+ text : str
460467 def find_similar (
461468 self ,
462469 flags : DiffFind = DiffFind .FIND_BY_CONFIG ,
@@ -520,6 +527,7 @@ class DiffStats:
520527
521528class FilterSource :
522529 # probably incomplete
530+ repo : object
523531 pass
524532
525533class GitError (Exception ): ...
@@ -529,9 +537,9 @@ class Mailmap:
529537 def __init__ (self , * args ) -> None : ...
530538 def add_entry (
531539 self ,
532- real_name : str = ...,
533- real_email : str = ...,
534- replace_name : str = ...,
540+ real_name : str | None = ...,
541+ real_email : str | None = ...,
542+ replace_name : str | None = ...,
535543 replace_email : str = ...,
536544 ) -> None : ...
537545 @staticmethod
@@ -719,6 +727,7 @@ class Branches:
719727
720728class Repository :
721729 _pointer : GitRepositoryC
730+ _repo : GitRepositoryC
722731 default_signature : Signature
723732 head : Reference
724733 head_is_detached : bool
@@ -784,7 +793,7 @@ class Repository:
784793 def compress_references (self ) -> None : ...
785794 @property
786795 def config (self ) -> Config : ...
787- def create_blob (self , data : bytes ) -> Oid : ...
796+ def create_blob (self , data : str | bytes ) -> Oid : ...
788797 def create_blob_fromdisk (self , path : str ) -> Oid : ...
789798 def create_blob_fromiobase (self , iobase : IOBase ) -> Oid : ...
790799 def create_blob_fromworkdir (self , path : str | Path ) -> Oid : ...
@@ -834,14 +843,26 @@ class Repository:
834843 ) -> Oid : ...
835844 def diff (
836845 self ,
837- a : None | str | Reference = None ,
838- b : None | str | Reference = None ,
846+ a : None | str | bytes | Oid | Reference = None ,
847+ b : None | str | bytes | Oid | Reference = None ,
839848 cached : bool = False ,
840849 flags : DiffOption = DiffOption .NORMAL ,
841850 context_lines : int = 3 ,
842851 interhunk_lines : int = 0 ,
843852 ) -> Diff : ...
844853 def descendant_of (self , oid1 : _OidArg , oid2 : _OidArg ) -> bool : ...
854+ def describe (
855+ self ,
856+ committish : str | Reference | Commit | None = None ,
857+ max_candidates_tags : int | None = None ,
858+ describe_strategy : DescribeStrategy = DescribeStrategy .DEFAULT ,
859+ pattern : str | None = None ,
860+ only_follow_first_parent : bool | None = None ,
861+ show_commit_oid_as_fallback : bool | None = None ,
862+ abbreviated_size : object | None = None ,
863+ always_use_long_format : bool | None = None ,
864+ dirty_suffix : str | None = None ,
865+ ) -> str : ...
845866 def expand_id (self , hex : str ) -> Oid : ...
846867 def free (self ) -> None : ...
847868 def get (self , key : _OidArg , default : Optional [Commit ] = None ) -> None | Object : ...
@@ -867,12 +888,40 @@ class Repository:
867888 def lookup_reference (self , name : str ) -> Reference : ...
868889 def lookup_reference_dwim (self , name : str ) -> Reference : ...
869890 def lookup_worktree (self , name : str ) -> Worktree : ...
891+ def merge (
892+ self ,
893+ source : Reference | Commit | Oid | str ,
894+ favor : MergeFavor = MergeFavor .NORMAL ,
895+ flags : MergeFlag = MergeFlag .FIND_RENAMES ,
896+ file_flags : MergeFileFlag = MergeFileFlag .DEFAULT ,
897+ ) -> None : ...
870898 def merge_analysis (
871899 self , their_head : _OidArg , our_ref : str = 'HEAD'
872900 ) -> tuple [MergeAnalysis , MergePreference ]: ...
873901 def merge_base (self , oid1 : _OidArg , oid2 : _OidArg ) -> Oid : ...
874902 def merge_base_many (self , oids : list [_OidArg ]) -> Oid : ...
875903 def merge_base_octopus (self , oids : list [_OidArg ]) -> Oid : ...
904+ def merge_commits (
905+ self ,
906+ ours : str | Oid | Commit ,
907+ theirs : str | Oid | Commit ,
908+ favor : MergeFavor = MergeFavor .NORMAL ,
909+ flags : MergeFlag = MergeFlag .FIND_RENAMES ,
910+ file_flags : MergeFileFlag = MergeFileFlag .DEFAULT ,
911+ ) -> Index : ...
912+ @staticmethod
913+ def _merge_options (
914+ favor : int | MergeFavor , flags : int | MergeFlag , file_flags : int | MergeFileFlag
915+ ) -> GitMergeOptionsC : ...
916+ def merge_trees (
917+ self ,
918+ ancestor : str | Oid | Tree ,
919+ ours : str | Oid | Tree ,
920+ theirs : str | Oid | Tree ,
921+ favor : MergeFavor = MergeFavor .NORMAL ,
922+ flags : MergeFlag = MergeFlag .FIND_RENAMES ,
923+ file_flags : MergeFileFlag = MergeFileFlag .DEFAULT ,
924+ ) -> Index : ...
876925 @property
877926 def message (self ) -> str : ...
878927 def notes (self ) -> Iterator [Note ]: ...
@@ -881,6 +930,9 @@ class Repository:
881930 self , flag : BranchType = BranchType .LOCAL
882931 ) -> list [bytes ]: ...
883932 def raw_listall_references (self ) -> list [bytes ]: ...
933+ @property
934+ def raw_message (self ) -> bytes : ...
935+ def remove_message (self ) -> None : ...
884936 def references_iterator_init (self ) -> Iterator [Reference ]: ...
885937 def references_iterator_next (
886938 self ,
@@ -1022,5 +1074,7 @@ def option(opt: Option, *args) -> None: ...
10221074def reference_is_valid_name (refname : str ) -> bool : ...
10231075def tree_entry_cmp (a : Object , b : Object ) -> int : ...
10241076def _cache_enums () -> None : ...
1077+ def filter_register (name : str , filter : type [Filter ]) -> None : ...
1078+ def filter_unregister (name : str ) -> None : ...
10251079
10261080_OidArg = str | Oid
0 commit comments