dulwich.index module¶
Parser for the git index file format.
-
class
dulwich.index.Index(filename)¶ Bases:
objectA Git Index file.
Open an index file.
Parameters: filename – Path to the index file -
changes_from_tree(object_store, tree, want_unchanged=False)¶ Find the differences between the contents of this index and a tree.
Parameters: - object_store – Object store to use for retrieving tree contents
- tree – SHA1 of the root tree
- want_unchanged – Whether unchanged files should be reported
Returns: Iterator over tuples with (oldpath, newpath), (oldmode, newmode), (oldsha, newsha)
-
clear()¶ Remove all contents from this index.
-
commit(object_store)¶ Create a new tree from an index.
Parameters: object_store – Object store to save the tree in Returns: Root tree SHA
-
get_mode(path)¶ Return the POSIX file mode for the object at a path.
-
get_sha1(path)¶ Return the (git object) SHA1 for the object at a path.
-
items()¶
-
iterblobs()¶
-
iteritems()¶
-
iterobjects()¶ Iterate over path, sha, mode tuples for use with commit_tree.
-
path¶
-
read()¶ Read current contents of index from disk.
-
update(entries)¶
-
write()¶ Write current contents of index to disk.
-
-
class
dulwich.index.IndexEntry(ctime, mtime, dev, ino, mode, uid, gid, size, sha, flags)¶ Bases:
tupleCreate new instance of IndexEntry(ctime, mtime, dev, ino, mode, uid, gid, size, sha, flags)
-
ctime¶ Alias for field number 0
-
dev¶ Alias for field number 2
-
flags¶ Alias for field number 9
-
gid¶ Alias for field number 6
-
ino¶ Alias for field number 3
-
mode¶ Alias for field number 4
-
mtime¶ Alias for field number 1
-
sha¶ Alias for field number 8
-
size¶ Alias for field number 7
-
uid¶ Alias for field number 5
-
-
dulwich.index.blob_from_path_and_stat(fs_path, st)¶ Create a blob from a path and a stat object.
Parameters: - fs_path – Full file system path to file
- st – A stat object
Returns: A Blob object
-
dulwich.index.build_file_from_blob(blob, mode, target_path, honor_filemode=True)¶ Build a file or symlink on disk based on a Git object.
Parameters: - obj – The git object
- mode – File mode
- target_path – Path to write to
- honor_filemode – An optional flag to honor core.filemode setting in config file, default is core.filemode=True, change executable bit
Returns: stat object for the file
-
dulwich.index.build_index_from_tree(root_path, index_path, object_store, tree_id, honor_filemode=True, validate_path_element=<function validate_path_element_default>)¶ Generate and materialize index from a tree
Parameters: - tree_id – Tree to materialize
- root_path – Target dir for materialized index files
- index_path – Target path for generated index
- object_store – Non-empty object store holding tree contents
- honor_filemode – An optional flag to honor core.filemode setting in config file, default is core.filemode=True, change executable bit
- validate_path_element – Function to validate path elements to check out; default just refuses .git and .. directories.
- :note:: existing index is wiped and contents are not merged
- in a working dir. Suitable only for fresh clones.
-
dulwich.index.changes_from_tree(names, lookup_entry, object_store, tree, want_unchanged=False)¶ Find the differences between the contents of a tree and a working copy.
Parameters: - names – Iterable of names in the working copy
- lookup_entry – Function to lookup an entry in the working copy
- object_store – Object store to use for retrieving tree contents
- tree – SHA1 of the root tree, or None for an empty tree
- want_unchanged – Whether unchanged files should be reported
Returns: Iterator over tuples with (oldpath, newpath), (oldmode, newmode), (oldsha, newsha)
-
dulwich.index.cleanup_mode(mode)¶ Cleanup a mode value.
This will return a mode that can be stored in a tree object.
Parameters: mode – Mode to clean up.
-
dulwich.index.commit_index(object_store, index)¶ Create a new tree from an index.
Parameters: - object_store – Object store to save the tree in
- index – Index file
Note: This function is deprecated, use index.commit() instead.
Returns: Root tree sha.
-
dulwich.index.commit_tree(object_store, blobs)¶ Commit a new tree.
Parameters: - object_store – Object store to add trees to
- blobs – Iterable over blob path, sha, mode entries
Returns: SHA1 of the created tree.
-
dulwich.index.get_unstaged_changes(index, root_path, filter_blob_callback=None)¶ Walk through an index and check for differences against working tree.
Parameters: - index – index to check
- root_path – path in which to find files
Returns: iterator over paths with unstaged changes
-
dulwich.index.index_entry_from_path(path, object_store=None)¶ Create an index from a filesystem path.
This returns an index value for files, symlinks and tree references. for directories and non-existant files it returns None
Parameters: - path – Path to create an index entry for
- object_store – Optional object store to save new blobs in
Returns: An index entry; None for directories
-
dulwich.index.index_entry_from_stat(stat_val, hex_sha, flags, mode=None)¶ Create a new index entry from a stat value.
Parameters: - stat_val – POSIX stat_result instance
- hex_sha – Hex sha of the object
- flags – Index flags
-
dulwich.index.iter_fresh_blobs(index, root_path)¶ Iterate over versions of blobs on disk referenced by index.
Don’t use this function; it removes missing entries from index.
Parameters: - index – Index file
- root_path – Root path to access from
- include_deleted – Include deleted entries with sha and mode set to None
Returns: Iterator over path, sha, mode
-
dulwich.index.iter_fresh_entries(paths, root_path, object_store=None)¶ Iterate over current versions of index entries on disk.
Parameters: - paths – Paths to iterate over
- root_path – Root path to access from
- store – Optional store to save new blobs in
Returns: Iterator over path, index_entry
-
dulwich.index.iter_fresh_objects(paths, root_path, include_deleted=False, object_store=None)¶ Iterate over versions of objecs on disk referenced by index.
Parameters: - index – Index file
- root_path – Root path to access from
- include_deleted – Include deleted entries with sha and mode set to None
- object_store – Optional object store to report new items to
Returns: Iterator over path, sha, mode
-
dulwich.index.pathjoin(*args)¶ Join a /-delimited path.
-
dulwich.index.pathsplit(path)¶ Split a /-delimited path into a directory part and a basename.
Parameters: path – The path to split. Returns: Tuple with directory name and basename
-
dulwich.index.read_cache_entry(f)¶ Read an entry from a cache file.
Parameters: f – File-like object to read from Returns: tuple with: device, inode, mode, uid, gid, size, sha, flags
-
dulwich.index.read_cache_time(f)¶ Read a cache time.
Parameters: f – File-like object to read from Returns: Tuple with seconds and nanoseconds
-
dulwich.index.read_index(f)¶ Read an index file, yielding the individual entries.
-
dulwich.index.read_index_dict(f)¶ Read an index file and return it as a dictionary.
Parameters: f – File object to read from
-
dulwich.index.read_submodule_head(path)¶ Read the head commit of a submodule.
Parameters: path – path to the submodule Returns: HEAD sha, None if not a valid head/repository
-
dulwich.index.refresh_index(index, root_path)¶ Refresh the contents of an index.
This is the equivalent to running ‘git commit -a’.
Parameters: - index – Index to update
- root_path – Root filesystem path
-
dulwich.index.validate_path(path, element_validator=<function validate_path_element_default>)¶ Default path validator that just checks for .git/.
-
dulwich.index.validate_path_element_default(element)¶
-
dulwich.index.validate_path_element_ntfs(element)¶
-
dulwich.index.write_cache_entry(f, entry)¶ Write an index entry to a file.
Parameters: - f – File object
- entry – Entry to write, tuple with: (name, ctime, mtime, dev, ino, mode, uid, gid, size, sha, flags)
-
dulwich.index.write_cache_time(f, t)¶ Write a cache time.
Parameters: - f – File-like object to write to
- t – Time to write (as int, float or tuple with secs and nsecs)
-
dulwich.index.write_index(f, entries)¶ Write an index file.
Parameters: - f – File-like object to write to
- entries – Iterable over the entries to write
-
dulwich.index.write_index_dict(f, entries)¶ Write an index file based on the contents of a dictionary.