From 750e9677b1ce303fa913c3e0754c3884d6517626 Mon Sep 17 00:00:00 2001 From: Sebastian Thiel Date: Sat, 29 Nov 2014 13:55:47 +0100 Subject: With docs up on http://gitpython.readthedocs.org, a manually maintained index isn't required anymore [ci skip] --- doc/doc_index/0.2/reference.html | 2893 -------------------------------------- 1 file changed, 2893 deletions(-) delete mode 100644 doc/doc_index/0.2/reference.html (limited to 'doc/doc_index/0.2/reference.html') diff --git a/doc/doc_index/0.2/reference.html b/doc/doc_index/0.2/reference.html deleted file mode 100644 index 79de7334..00000000 --- a/doc/doc_index/0.2/reference.html +++ /dev/null @@ -1,2893 +0,0 @@ - - - - - - - API Reference — GitPython v0.2.0 Beta documentation - - - - - - - - - - - - -
-
-
-
- -
-

API Reference

-
-

Actor

-
-
-class git.actor.Actor(name, email)
-
Actors hold information about a person acting on the repository. They -can be committers and authors or anything with a name and an email as -mentioned in the git log entries.
- -
-
-

Objects.Base

-
-
-class git.objects.base.IndexObject(repo, sha, mode=None, path=None)
-

Base for all objects that can be part of the index file , namely Tree, Blob and -SubModule objects

-
-
-abspath
-
-
Returns
-

Absolute path to this index object in the file system ( as opposed to the -.path field which is a path relative to the git repository ).

-

The returned path will be native to the system and contains ‘’ on windows.

-
-
-
- -
-
-mode
-
- -
-
-name
-
-
Returns
-
Name portion of the path, effectively being the basename
-
-
- -
-
-path
-
- -
- -
-
-class git.objects.base.Object(repo, id)
-

Implements an Object which may be Blobs, Trees, Commits and Tags

-

This Object also serves as a constructor for instances of the correct type:

-
inst = Object.new(repo,id)
-inst.sha        # objects sha in hex
-inst.size   # objects uncompressed data size
-inst.data   # byte string containing the whole data of the object
-
-
-
-
-data
-
- -
-
-data_stream
-
-
Returns
-
File Object compatible stream to the uncompressed raw data of the object
-
-
- -
-
-classmethod new(repo, id)
-
-
Return
-
New Object instance of a type appropriate to the object type behind -id. The id of the newly created object will be a hexsha even though -the input id may have been a Reference or Rev-Spec
-
Note
-
This cannot be a __new__ method as it would always call __init__ -with the input id which is not necessarily a hexsha.
-
-
- -
-
-repo
-
- -
-
-sha
-
- -
-
-size
-
- -
-
-stream_data(ostream)
-

Writes our data directly to the given output stream

-
-
ostream
-
File object compatible stream object.
-
Returns
-
self
-
-
- -
- -
-
-

Objects.Blob

-
-
-class git.objects.blob.Blob(repo, sha, mode=None, path=None)
-

A Blob encapsulates a git blob object

-
-
-mime_type
-

The mime type of this file (based on the filename)

-
-
Returns
-
str
-
NOTE
-
Defaults to ‘text/plain’ in case the actual file type is unknown.
-
-
- -
- -
-
-

Objects.Commit

-
-
-class git.objects.commit.Commit(repo, sha, tree=None, author=None, authored_date=None, author_tz_offset=None, committer=None, committed_date=None, committer_tz_offset=None, message=None, parents=None)
-

Wraps a git Commit object.

-

This class will act lazily on some of its attributes and will query the -value on demand only if it involves calling the git binary.

-
-
-author
-
- -
-
-author_tz_offset
-
- -
-
-authored_date
-
- -
-
-committed_date
-
- -
-
-committer
-
- -
-
-committer_tz_offset
-
- -
-
-count(paths='', **kwargs)
-

Count the number of commits reachable from this commit

-
-
paths
-
is an optinal path or a list of paths restricting the return value -to commits actually containing the paths
-
kwargs
-
Additional options to be passed to git-rev-list. They must not alter -the ouput style of the command, or parsing will yield incorrect results
-
Returns
-
int
-
-
- -
-
-classmethod create_from_tree(repo, tree, message, parent_commits=None, head=False)
-

Commit the given tree, creating a commit object.

-
-
repo
-
is the Repo
-
tree
-
Sha of a tree or a tree object to become the tree of the new commit
-
message
-
Commit message. It may be an empty string if no message is provided. -It will be converted to a string in any case.
-
parent_commits
-
Optional Commit objects to use as parents for the new commit. -If empty list, the commit will have no parents at all and become -a root commit. -If None , the current head commit will be the parent of the -new commit object
-
head
-
If True, the HEAD will be advanced to the new commit automatically. -Else the HEAD will remain pointing on the previous commit. This could -lead to undesired results when diffing files.
-
Returns
-
Commit object representing the new commit
-
Note:
-
Additional information about hte committer and Author are taken from the -environment or from the git configuration, see git-commit-tree for -more information
-
-
- -
-
-classmethod iter_items(repo, rev, paths='', **kwargs)
-

Find all commits matching the given criteria.

-
-
repo
-
is the Repo
-
rev
-
revision specifier, see git-rev-parse for viable options
-
paths
-
is an optinal path or list of paths, if set only Commits that include the path -or paths will be considered
-
kwargs
-
optional keyword arguments to git rev-list where -max_count is the maximum number of commits to fetch -skip is the number of commits to skip -since all commits since i.e. ‘1970-01-01’
-
Returns
-
iterator yielding Commit items
-
-
- -
-
-iter_parents(paths='', **kwargs)
-

Iterate _all_ parents of this commit.

-
-
paths
-
Optional path or list of paths limiting the Commits to those that -contain at least one of the paths
-
kwargs
-
All arguments allowed by git-rev-list
-
Return:
-
Iterator yielding Commit objects which are parents of self
-
-
- -
-
-message
-
- -
-
-name_rev
-
-
Returns
-
String describing the commits hex sha based on the closest Reference. -Mostly useful for UI purposes
-
-
- -
-
-parents
-
- -
-
-stats
-

Create a git stat from changes between this commit and its first parent -or from all changes done if this is the very first commit.

-
-
Return
-
git.Stats
-
-
- -
-
-summary
-
-
Returns
-
First line of the commit message.
-
-
- -
-
-tree
-
- -
- -
-
-

Objects.Tag

-

Module containing all object based types.

-
-
-class git.objects.tag.TagObject(repo, sha, object=None, tag=None, tagger=None, tagged_date=None, tagger_tz_offset=None, message=None)
-

Non-Lightweight tag carrying additional information about an object we are pointing -to.

-
-
-message
-
- -
-
-object
-
- -
-
-tag
-
- -
-
-tagged_date
-
- -
-
-tagger
-
- -
-
-tagger_tz_offset
-
- -
- -
-
-

Objects.Tree

-
-
-class git.objects.tree.Tree(repo, sha, mode=0, path=None)
-

Tress represent a ordered list of Blobs and other Trees. Hence it can be -accessed like a list.

-

Tree’s will cache their contents after first retrieval to improve efficiency.

-

Tree as a list:

-
Access a specific blob using the  
-tree['filename'] notation.
-
-You may as well access by index
-blob = tree[0]
-
-
-
-blobs
-
-
Returns
-
list(Blob, ...) list of blobs directly below this tree
-
-
- -
-
-traverse(predicate=<function <lambda> at 0x1e0b050>, prune=<function <lambda> at 0x1e0b0c8>, depth=-1, branch_first=True, visit_once=False, ignore_self=1)
-

For documentation, see utils.Traversable.traverse

-

Trees are set to visist_once = False to gain more performance in the traversal

-
- -
-
-trees
-
-
Returns
-
list(Tree, ...) list of trees directly below this tree
-
-
- -
- -
-
-git.objects.tree.sha_to_hex(sha)
-
Takes a string and returns the hex of the sha within
- -
-
-

Objects.Utils

-

Module for general utility functions

-
-
-class git.objects.utils.ProcessStreamAdapter(process, stream_name)
-

Class wireing all calls to the contained Process instance.

-

Use this type to hide the underlying process to provide access only to a specified -stream. The process is usually wrapped into an AutoInterrupt class to kill -it if the instance goes out of scope.

-
- -
-
-class git.objects.utils.Traversable
-

Simple interface to perforam depth-first or breadth-first traversals -into one direction. -Subclasses only need to implement one function. -Instances of the Subclass must be hashable

-
-
-traverse(predicate=<function <lambda> at 0x1df9de8>, prune=<function <lambda> at 0x1df9e60>, depth=-1, branch_first=True, visit_once=True, ignore_self=1, as_edge=False)
-
-
Returns
-
iterator yieling of items found when traversing self
-
predicate
-
f(i,d) returns False if item i at depth d should not be included in the result
-
prune
-
f(i,d) return True if the search should stop at item i at depth d. -Item i will not be returned.
-
depth
-
define at which level the iteration should not go deeper -if -1, there is no limit -if 0, you would effectively only get self, the root of the iteration -i.e. if 1, you would only get the first level of predessessors/successors
-
branch_first
-
if True, items will be returned branch first, otherwise depth first
-
visit_once
-
if True, items will only be returned once, although they might be encountered -several times. Loops are prevented that way.
-
ignore_self
-
if True, self will be ignored and automatically pruned from -the result. Otherwise it will be the first item to be returned. -If as_edge is True, the source of the first edge is None
-
as_edge
-
if True, return a pair of items, first being the source, second the -destinatination, i.e. tuple(src, dest) with the edge spanning from -source to destination
-
-
- -
- -
-
-git.objects.utils.get_object_type_by_name(object_type_name)
-
-
Returns
-
type suitable to handle the given object type name. -Use the type to create new instances.
-
object_type_name
-
Member of TYPES
-
Raises
-
ValueError: In case object_type_name is unknown
-
-
- -
-
-git.objects.utils.parse_actor_and_date(line)
-

Parse out the actor (author or committer) info from a line like:

-
author Tom Preston-Werner <tom@mojombo.com> 1191999972 -0700
-
-
-
Returns
-
[Actor, int_seconds_since_epoch, int_timezone_offset]
-
-
- -
-
-

GitCmd

-
-
-class git.cmd.Git(working_dir=None)
-

The Git class manages communication with the Git binary.

-

It provides a convenient interface to calling the Git binary, such as in:

-
g = Git( git_dir )
-g.init()                   # calls 'git init' program
-rval = g.ls_files()        # calls 'git ls-files' program
-
-
-
-
Debugging
-
Set the GIT_PYTHON_TRACE environment variable print each invocation -of the command to stdout. -Set its value to ‘full’ to see details about the returned values.
-
-
-
-class AutoInterrupt(proc, args)
-

Kill/Interrupt the stored process instance once this instance goes out of scope. It is -used to prevent processes piling up in case iterators stop reading. -Besides all attributes are wired through to the contained process object.

-

The wait method was overridden to perform automatic status code checking -and possibly raise.

-
-
-args
-
- -
-
-proc
-
- -
-
-wait()
-

Wait for the process and return its status code.

-
-
Raise
-
GitCommandError if the return status is not 0
-
-
- -
- -
-
-Git.cat_file_all
-
- -
-
-Git.cat_file_header
-
- -
-
-Git.clear_cache()
-

Clear all kinds of internal caches to release resources.

-

Currently persistent commands will be interrupted.

-
-
Returns
-
self
-
-
- -
-
-Git.execute(command, istream=None, with_keep_cwd=False, with_extended_output=False, with_exceptions=True, as_process=False, output_stream=None)
-

Handles executing the command on the shell and consumes and returns -the returned information (stdout)

-
-
command
-
The command argument list to execute. -It should be a string, or a sequence of program arguments. The -program to execute is the first item in the args sequence or string.
-
istream
-
Standard input filehandle passed to subprocess.Popen.
-
with_keep_cwd
-
Whether to use the current working directory from os.getcwd(). -The cmd otherwise uses its own working_dir that it has been initialized -with if possible.
-
with_extended_output
-
Whether to return a (status, stdout, stderr) tuple.
-
with_exceptions
-
Whether to raise an exception when git returns a non-zero status.
-
as_process
-
Whether to return the created process instance directly from which -streams can be read on demand. This will render with_extended_output and -with_exceptions ineffective - the caller will have -to deal with the details himself. -It is important to note that the process will be placed into an AutoInterrupt -wrapper that will interrupt the process once it goes out of scope. If you -use the command in iterators, you should pass the whole process instance -instead of a single stream.
-
output_stream
-
If set to a file-like object, data produced by the git command will be -output to the given stream directly. -This feature only has any effect if as_process is False. Processes will -always be created with a pipe due to issues with subprocess. -This merely is a workaround as data will be copied from the -output pipe to the given output stream directly.
-
-

Returns:

-
str(output)                                   # extended_output = False (Default)
-tuple(int(status), str(stdout), str(stderr)) # extended_output = True
-
-if ouput_stream is True, the stdout value will be your output stream:
-output_stream                                  # extended_output = False
-tuple(int(status), output_stream, str(stderr))# extended_output = True
-
-
-
Raise
-
GitCommandError
-
NOTE
-
If you add additional keyword arguments to the signature of this method, -you must update the execute_kwargs tuple housed in this module.
-
-
- -
-
-Git.get_object_data(ref)
-

As get_object_header, but returns object data as well

-
-
Return:
-
(hexsha, type_string, size_as_int,data_string)
-
-
- -
-
-Git.get_object_header(ref)
-

Use this method to quickly examine the type and size of the object behind -the given ref.

-
-
NOTE
-
The method will only suffer from the costs of command invocation -once and reuses the command in subsequent calls.
-
Return:
-
(hexsha, type_string, size_as_int)
-
-
- -
-
-Git.transform_kwargs(**kwargs)
-
Transforms Python style kwargs into git command line options.
- -
-
-Git.working_dir
-
-
Returns
-
Git directory we are working on
-
-
- -
- -
-
-git.cmd.dashify(string)
-
- -
-
-

Config

-

Module containing module parser implementation able to properly read and write -configuration files

-
-
-git.config.GitConfigParser
-
alias of write
- -
-
-

Diff

-
-
-class git.diff.Diff(repo, a_path, b_path, a_blob_id, b_blob_id, a_mode, b_mode, new_file, deleted_file, rename_from, rename_to, diff)
-

A Diff contains diff information between two Trees.

-

It contains two sides a and b of the diff, members are prefixed with -“a” and “b” respectively to inidcate that.

-

Diffs keep information about the changed blob objects, the file mode, renames, -deletions and new files.

-

There are a few cases where None has to be expected as member variable value:

-

New File:

-
a_mode is None
-a_blob is None
-
-
-

Deleted File:

-
b_mode is None
-b_blob is None
-
-
-

Working Tree Blobs

-
-When comparing to working trees, the working tree blob will have a null hexsha -as a corresponding object does not yet exist. The mode will be null as well. -But the path will be available though. -If it is listed in a diff the working tree version of the file must -be different to the version in the index or tree, and hence has been modified.
-
-
-a_blob
-
- -
-
-a_mode
-
- -
-
-b_blob
-
- -
-
-b_mode
-
- -
-
-deleted_file
-
- -
-
-diff
-
- -
-
-new_file
-
- -
-
-rename_from
-
- -
-
-rename_to
-
- -
-
-renamed
-
-
Returns:
-
True if the blob of our diff has been renamed
-
-
- -
- -
-
-class git.diff.DiffIndex
-

Implements an Index for diffs, allowing a list of Diffs to be queried by -the diff properties.

-

The class improves the diff handling convenience

-
-
-iter_change_type(change_type)
-
-
Return
-
iterator yieling Diff instances that match the given change_type
-
change_type
-

Member of DiffIndex.change_type, namely

-

‘A’ for added paths

-

‘D’ for deleted paths

-

‘R’ for renamed paths

-

‘M’ for paths with modified data

-
-
-
- -
- -
-
-class git.diff.Diffable
-

Common interface for all object that can be diffed against another object of compatible type.

-
-
NOTE:
-
Subclasses require a repo member as it is the case for Object instances, for practical -reasons we do not derive from Object.
-
-
-
-class Index
-
- -
-
-Diffable.diff(other=<class 'git.diff.Index'>, paths=None, create_patch=False, **kwargs)
-

Creates diffs between two items being trees, trees and index or an -index and the working tree.

-
-
other
-
Is the item to compare us with. -If None, we will be compared to the working tree. -If Treeish, it will be compared against the respective tree -If Index ( type ), it will be compared against the index. -It defaults to Index to assure the method will not by-default fail -on bare repositories.
-
paths
-
is a list of paths or a single path to limit the diff to. -It will only include at least one of the givne path or paths.
-
create_patch
-
If True, the returned Diff contains a detailed patch that if applied -makes the self to other. Patches are somwhat costly as blobs have to be read -and diffed.
-
kwargs
-
Additional arguments passed to git-diff, such as -R=True to swap both sides of the diff.
-
Returns
-
git.DiffIndex
-
Note
-

Rename detection will only work if create_patch is True.

-

On a bare repository, ‘other’ needs to be provided as Index or as -as Tree/Commit, or a git command error will occour

-
-
-
- -
- -
-
-

Errors

-

Module containing all exceptions thrown througout the git package,

-
-
-exception git.errors.GitCommandError(command, status, stderr=None)
-
Thrown if execution of the git command fails with non-zero status code.
- -
-
-exception git.errors.InvalidGitRepositoryError
-
Thrown if the given repository appears to have an invalid format.
- -
-
-exception git.errors.NoSuchPathError
-
Thrown if a path could not be access by the system.
- -
-
-

Index

-

Module containing Index implementation, allowing to perform all kinds of index -manipulations such as querying and merging.

-
-
-class git.index.BaseIndexEntry
-

Small Brother of an index entry which can be created to describe changes -done to the index in which case plenty of additional information is not requried.

-

As the first 4 data members match exactly to the IndexEntry type, methods -expecting a BaseIndexEntry can also handle full IndexEntries even if they -use numeric indices for performance reasons.

-
-
-classmethod from_blob(blob, stage=0)
-
-
Returns
-
Fully equipped BaseIndexEntry at the given stage
-
-
- -
-
-mode
-
File Mode, compatible to stat module constants
- -
-
-path
-
- -
-
-sha
-
hex sha of the blob
- -
-
-stage
-
-
Stage of the entry, either:
-
0 = default stage -1 = stage before a merge or common ancestor entry in case of a 3 way merge -2 = stage of entries from the ‘left’ side of the merge -3 = stage of entries from the right side of the merge
-
Note:
-
For more information, see http://www.kernel.org/pub/software/scm/git/docs/git-read-tree.html
-
-
- -
- -
-
-class git.index.BlobFilter(paths)
-

Predicate to be used by iter_blobs allowing to filter only return blobs which -match the given list of directories or files.

-

The given paths are given relative to the repository.

-
-
-paths
-
- -
- -
-
-exception git.index.CheckoutError(message, failed_files, valid_files, failed_reasons)
-

Thrown if a file could not be checked out from the index as it contained -changes.

-

The .failed_files attribute contains a list of relative paths that failed -to be checked out as they contained changes that did not exist in the index.

-

The .failed_reasons attribute contains a string informing about the actual -cause of the issue.

-

The .valid_files attribute contains a list of relative paths to files that -were checked out successfully and hence match the version stored in the -index

-
- -
-
-class git.index.IndexEntry
-

Allows convenient access to IndexEntry data without completely unpacking it.

-

Attributes usully accessed often are cached in the tuple whereas others are -unpacked on demand.

-

See the properties for a mapping between names and tuple indices.

-
-
-ctime
-
-
Returns
-
Tuple(int_time_seconds_since_epoch, int_nano_seconds) of the -file’s creation time
-
-
- -
-
-dev
-
Device ID
- -
-
-classmethod from_base(base)
-
-
Returns
-
Minimal entry as created from the given BaseIndexEntry instance. -Missing values will be set to null-like values
-
base
-
Instance of type BaseIndexEntry
-
-
- -
-
-classmethod from_blob(blob)
-
-
Returns
-
Minimal entry resembling the given blob objecft
-
-
- -
-
-gid
-
Group ID
- -
-
-inode
-
Inode ID
- -
-
-mtime
-
See ctime property, but returns modification time
- -
-
-size
-

Uncompressed size of the blob

-
-
Note
-
Will be 0 if the stage is not 0 ( hence it is an unmerged entry )
-
-
- -
-
-uid
-
User ID
- -
- -
-
-class git.index.IndexFile(repo, file_path=None)
-

Implements an Index that can be manipulated using a native implementation in -order to save git command function calls wherever possible.

-

It provides custom merging facilities allowing to merge without actually changing -your index or your working tree. This way you can perform own test-merges based -on the index only without having to deal with the working copy. This is useful -in case of partial working trees.

-

Entries -The index contains an entries dict whose keys are tuples of type IndexEntry -to facilitate access.

-
-
You may read the entries dict or manipulate it using IndexEntry instance, i.e.::
-
index.entries[index.get_entries_key(index_entry_instance)] = index_entry_instance
-
-

Otherwise changes to it will be lost when changing the index using its methods.

-
-
-add(*args, **kwargs)
-
- -
-
-checkout(*args, **kwargs)
-
- -
-
-commit(*args, **kwargs)
-
- -
-
-diff(*args, **kwargs)
-
- -
-
-entries
-
- -
-
-classmethod from_tree(repo, *treeish, **kwargs)
-

Merge the given treeish revisions into a new index which is returned. -The original index will remain unaltered

-
-
repo
-
The repository treeish are located in.
-
*treeish
-

One, two or three Tree Objects or Commits. The result changes according to the -amount of trees. -If 1 Tree is given, it will just be read into a new index -If 2 Trees are given, they will be merged into a new index using a

-
-two way merge algorithm. Tree 1 is the ‘current’ tree, tree 2 is the ‘other’ -one. It behaves like a fast-forward. -If 3 Trees are given, a 3-way merge will be performed with the first tree -being the common ancestor of tree 2 and tree 3. Tree 2 is the ‘current’ tree, -tree 3 is the ‘other’ one
-
-
**kwargs
-
Additional arguments passed to git-read-tree
-
Returns
-
New IndexFile instance. It will point to a temporary index location which -does not exist anymore. If you intend to write such a merged Index, supply -an alternate file_path to its ‘write’ method.
-
Note:
-

In the three-way merge case, –aggressive will be specified to automatically -resolve more cases in a commonly correct manner. Specify trivial=True as kwarg -to override that.

-

As the underlying git-read-tree command takes into account the current index, -it will be temporarily moved out of the way to assure there are no unsuspected -interferences.

-
-
-
- -
-
-classmethod get_entries_key(*entry)
-
-
Returns
-
Key suitable to be used for the index.entries dictionary
-
entry
-
One instance of type BaseIndexEntry or the path and the stage
-
-
- -
-
-iter_blobs(predicate=<function <lambda> at 0x1e3ee60>)
-
-
Returns
-
Iterator yielding tuples of Blob objects and stages, tuple(stage, Blob)
-
predicate
-
Function(t) returning True if tuple(stage, Blob) should be yielded by the -iterator. A default filter, the BlobFilter, allows you to yield blobs -only if they match a given list of paths.
-
-
- -
-
-merge_tree(*args, **kwargs)
-
- -
-
-move(*args, **kwargs)
-
- -
-
-path
-
-
Returns
-
Path to the index file we are representing
-
-
- -
-
-remove(*args, **kwargs)
-
- -
-
-repo
-
- -
-
-reset(*args, **kwargs)
-
- -
-
-resolve_blobs(iter_blobs)
-

Resolve the blobs given in blob iterator. This will effectively remove the -index entries of the respective path at all non-null stages and add the given -blob as new stage null blob.

-

For each path there may only be one blob, otherwise a ValueError will be raised -claiming the path is already at stage 0.

-
-
Raise
-
ValueError if one of the blobs already existed at stage 0
-
Returns:
-
self
-
Note
-
You will have to write the index manually once you are done, i.e. -index.resolve_blobs(blobs).write()
-
-
- -
-
-unmerged_blobs()
-
-
Returns
-
Iterator yielding dict(path : list( tuple( stage, Blob, ...))), being -a dictionary associating a path in the index with a list containing -sorted stage/blob pairs
-
Note:
-
Blobs that have been removed in one side simply do not exist in the -given stage. I.e. a file removed on the ‘other’ branch whose entries -are at stage 3 will not have a stage 3 entry.
-
-
- -
-
-update()
-

Reread the contents of our index file, discarding all cached information -we might have.

-
-
Note:
-
This is a possibly dangerious operations as it will discard your changes -to index.entries
-
Returns
-
self
-
-
- -
-
-version
-
- -
-
-write(file_path=None, ignore_tree_extension_data=False)
-

Write the current state to our file path or to the given one

-
-
file_path
-
If None, we will write to our stored file path from which we have -been initialized. Otherwise we write to the given file path. -Please note that this will change the file_path of this index to -the one you gave.
-
ignore_tree_extension_data
-
If True, the TREE type extension data read in the index will not -be written to disk. Use this if you have altered the index and -would like to use git-write-tree afterwards to create a tree -representing your written changes. -If this data is present in the written index, git-write-tree -will instead write the stored/cached tree. -Alternatively, use IndexFile.write_tree() to handle this case -automatically
-
Returns
-
self
-
Note
-
Index writing based on the dulwich implementation
-
-
- -
-
-write_tree(missing_ok=False)
-

Writes the Index in self to a corresponding Tree file into the repository -object database and returns it as corresponding Tree object.

-
-
missing_ok
-
If True, missing objects referenced by this index will not result -in an error.
-
Returns
-
Tree object representing this index
-
-
- -
- -
-
-git.index.clear_cache(func)
-

Decorator for functions that alter the index using the git command. This would -invalidate our possibly existing entries dictionary which is why it must be -deleted to allow it to be lazily reread later.

-
-
Note
-
This decorator will not be required once all functions are implemented -natively which in fact is possible, but probably not feasible performance wise.
-
-
- -
-
-git.index.default_index(func)
-
Decorator assuring the wrapped method may only run if we are the default -repository index. This is as we rely on git commands that operate -on that index only.
- -
-
-

Refs

-

Module containing all ref based objects

-
-
-class git.refs.HEAD(repo, path='HEAD')
-

Special case of a Symbolic Reference as it represents the repository’s -HEAD reference.

-
-
-reset(commit='HEAD', index=True, working_tree=False, paths=None, **kwargs)
-

Reset our HEAD to the given commit optionally synchronizing -the index and working tree. The reference we refer to will be set to -commit as well.

-
-
commit
-
Commit object, Reference Object or string identifying a revision we -should reset HEAD to.
-
index
-
If True, the index will be set to match the given commit. Otherwise -it will not be touched.
-
working_tree
-
If True, the working tree will be forcefully adjusted to match the given -commit, possibly overwriting uncommitted changes without warning. -If working_tree is True, index must be true as well
-
paths
-
Single path or list of paths relative to the git root directory -that are to be reset. This allow to partially reset individual files.
-
kwargs
-
Additional arguments passed to git-reset.
-
Returns
-
self
-
-
- -
- -
-
-class git.refs.Head(repo, path)
-

A Head is a named reference to a Commit. Every Head instance contains a name -and a Commit object.

-

Examples:

-
>>> repo = Repo("/path/to/repo")
->>> head = repo.heads[0]
-
->>> head.name       
-'master'
-
->>> head.commit     
-<git.Commit "1c09f116cbc2cb4100fb6935bb162daa4723f455">
-
->>> head.commit.sha
-'1c09f116cbc2cb4100fb6935bb162daa4723f455'
-
-
-
-
-checkout(force=False, **kwargs)
-

Checkout this head by setting the HEAD to this reference, by updating the index -to reflect the tree we point to and by updating the working tree to reflect -the latest index.

-

The command will fail if changed working tree files would be overwritten.

-
-
force
-
If True, changes to the index and the working tree will be discarded. -If False, GitCommandError will be raised in that situation.
-
**kwargs
-
Additional keyword arguments to be passed to git checkout, i.e. -b=’new_branch’ to create a new branch at the given spot.
-
Returns
-
The active branch after the checkout operation, usually self unless -a new branch has been created.
-
Note
-
By default it is only allowed to checkout heads - everything else -will leave the HEAD detached which is allowed and possible, but remains -a special state that some tools might not be able to handle.
-
-
- -
-
-classmethod create(repo, path, commit='HEAD', force=False, **kwargs)
-

Create a new head. -repo

-
-Repository to create the head in
-
-
path
-
The name or path of the head, i.e. ‘new_branch’ or -feature/feature1. The prefix refs/heads is implied.
-
commit
-
Commit to which the new head should point, defaults to the -current HEAD
-
force
-
if True, force creation even if branch with that name already exists.
-
**kwargs
-
Additional keyword arguments to be passed to git-branch, i.e. -track, no-track, l
-
Returns
-
Newly created Head
-
Note
-
This does not alter the current HEAD, index or Working Tree
-
-
- -
-
-classmethod delete(repo, *heads, **kwargs)
-

Delete the given heads

-
-
force
-
If True, the heads will be deleted even if they are not yet merged into -the main development stream. -Default False
-
-
- -
-
-rename(new_path, force=False)
-

Rename self to a new path

-
-
new_path
-
Either a simple name or a path, i.e. new_name or features/new_name. -The prefix refs/heads is implied
-
force
-
If True, the rename will succeed even if a head with the target name -already exists.
-
Returns
-
self
-
Note
-
respects the ref log as git commands are used
-
-
- -
- -
-
-class git.refs.Reference(repo, path)
-

Represents a named reference to any object. Subclasses may apply restrictions though, -i.e. Heads can only point to commits.

-
-
-classmethod create(repo, path, commit='HEAD', force=False)
-

Create a new reference. -repo

-
-Repository to create the reference in
-
-
path
-
The relative path of the reference, i.e. ‘new_branch’ or -feature/feature1. The path prefix ‘refs/’ is implied if not -given explicitly
-
commit
-
Commit to which the new reference should point, defaults to the -current HEAD
-
force
-
if True, force creation even if a reference with that name already exists. -Raise OSError otherwise
-
Returns
-
Newly created Reference
-
Note
-
This does not alter the current HEAD, index or Working Tree
-
-
- -
-
-classmethod iter_items(repo, common_path=None)
-
Equivalent to SymbolicReference.iter_items, but will return non-detached -references as well.
- -
-
-name
-
-
Returns
-
(shortest) Name of this reference - it may contain path components
-
-
- -
-
-object
-
Return the object our ref currently refers to
- -
- -
-
-class git.refs.RemoteReference(repo, path)
-

Represents a reference pointing to a remote head.

-
-
-classmethod delete(repo, *refs, **kwargs)
-

Delete the given remote references.

-
-
Note
-
kwargs are given for compatability with the base class method as we -should not narrow the signature.
-
-
- -
-
-remote_head
-
-
Returns
-
Name of the remote head itself, i.e. master.
-
-

NOTE: The returned name is usually not qualified enough to uniquely identify -a branch

-
- -
-
-remote_name
-
-
Returns
-
Name of the remote we are a reference of, such as ‘origin’ for a reference -named ‘origin/master’
-
-
- -
- -
-
-class git.refs.SymbolicReference(repo, path)
-

Represents a special case of a reference such that this reference is symbolic. -It does not point to a specific commit, but to another Head, which itself -specifies a commit.

-

A typical example for a symbolic reference is HEAD.

-
-
-commit
-
Query or set commits directly
- -
-
-classmethod create(repo, path, reference='HEAD', force=False)
-

Create a new symbolic reference, hence a reference pointing to another -reference. -repo

-
-Repository to create the reference in
-
-
path
-
full path at which the new symbolic reference is supposed to be -created at, i.e. “NEW_HEAD” or “symrefs/my_new_symref”
-
reference
-
The reference to which the new symbolic reference should point to
-
force
-
if True, force creation even if a symbolic reference with that name already exists. -Raise OSError otherwise
-
Returns
-
Newly created symbolic Reference
-
Raises OSError
-
If a (Symbolic)Reference with the same name but different contents -already exists.
-
Note
-
This does not alter the current HEAD, index or Working Tree
-
-
- -
-
-classmethod delete(repo, path)
-

Delete the reference at the given path

-
-
repo
-
Repository to delete the reference from
-
path
-
Short or full path pointing to the reference, i.e. refs/myreference -or just “myreference”, hence ‘refs/’ is implied. -Alternatively the symbolic reference to be deleted
-
-
- -
-
-classmethod from_path(repo, path)
-
-
Return
-
Instance of type Reference, Head, or Tag -depending on the given path
-
-
- -
-
-is_detached
-
-
Returns
-
True if we are a detached reference, hence we point to a specific commit -instead to another reference
-
-
- -
-
-is_valid()
-
-
Returns
-
True if the reference is valid, hence it can be read and points to -a valid object or reference.
-
-
- -
-
-classmethod iter_items(repo, common_path=None)
-

Find all refs in the repository

-
-
repo
-
is the Repo
-
common_path
-
Optional keyword argument to the path which is to be shared by all -returned Ref objects. -Defaults to class specific portion if None assuring that only -refs suitable for the actual class are returned.
-
Returns
-

git.SymbolicReference[], each of them is guaranteed to be a symbolic -ref which is not detached.

-

List is lexigraphically sorted -The returned objects represent actual subclasses, such as Head or TagReference

-
-
-
- -
-
-name
-
-
Returns
-
In case of symbolic references, the shortest assumable name -is the path itself.
-
-
- -
-
-path
-
- -
-
-ref
-
Returns the Reference we point to
- -
-
-reference
-
Returns the Reference we point to
- -
-
-rename(new_path, force=False)
-

Rename self to a new path

-
-
new_path
-
Either a simple name or a full path, i.e. new_name or features/new_name. -The prefix refs/ is implied for references and will be set as needed. -In case this is a symbolic ref, there is no implied prefix
-
force
-
If True, the rename will succeed even if a head with the target name -already exists. It will be overwritten in that case
-
Returns
-
self
-
Raises OSError:
-
In case a file at path but a different contents already exists
-
-
- -
-
-repo
-
- -
-
-classmethod to_full_path(path)
-
--- - - - -
Returns:string with a full path name which can be used to initialize
-

a Reference instance, for instance by using Reference.from_path

-
- -
- -
-
-git.refs.Tag
-
alias of TagReference
- -
-
-class git.refs.TagReference(repo, path)
-

Class representing a lightweight tag reference which either points to a commit -,a tag object or any other object. In the latter case additional information, -like the signature or the tag-creator, is available.

-

This tag object will always point to a commit object, but may carray additional -information in a tag object:

-
tagref = TagReference.list_items(repo)[0]
-print tagref.commit.message
-if tagref.tag is not None:
-   print tagref.tag.message
-
-
-
-
-commit
-
-
Returns
-
Commit object the tag ref points to
-
-
- -
-
-classmethod create(repo, path, ref='HEAD', message=None, force=False, **kwargs)
-

Create a new tag reference.

-
-
path
-
The name of the tag, i.e. 1.0 or releases/1.0. -The prefix refs/tags is implied
-
ref
-
A reference to the object you want to tag. It can be a commit, tree or -blob.
-
message
-

If not None, the message will be used in your tag object. This will also -create an additional tag object that allows to obtain that information, i.e.:

-
tagref.tag.message
-
-
-
-
force
-
If True, to force creation of a tag even though that tag already exists.
-
**kwargs
-
Additional keyword arguments to be passed to git-tag
-
Returns
-
A new TagReference
-
-
- -
-
-classmethod delete(repo, *tags)
-
Delete the given existing tag or tags
- -
-
-tag
-
-
Returns
-
Tag object this tag ref points to or None in case -we are a light weight tag
-
-
- -
- -
-
-

Remote

-

Module implementing a remote object allowing easy access to git remotes

-
-
-class git.remote.FetchInfo(ref, flags, note='', old_commit=None)
-

Carries information about the results of a fetch operation of a single head:

-
info = remote.fetch()[0]
-info.ref           # Symbolic Reference or RemoteReference to the changed 
-                   # remote head or FETCH_HEAD
-info.flags         # additional flags to be & with enumeration members, 
-                   # i.e. info.flags & info.REJECTED 
-                   # is 0 if ref is SymbolicReference
-info.note          # additional notes given by git-fetch intended for the user
-info.old_commit    # if info.flags & info.FORCED_UPDATE|info.FAST_FORWARD, 
-                   # field is set to the previous location of ref, otherwise None
-
-
-
-
-commit
-
-
Returns
-
Commit of our remote ref
-
-
- -
-
-flags
-
- -
-
-name
-
-
Returns
-
Name of our remote ref
-
-
- -
-
-note
-
- -
-
-old_commit
-
- -
-
-ref
-
- -
- -
-
-class git.remote.PushInfo(flags, local_ref, remote_ref_string, remote, old_commit=None, summary='')
-

Carries information about the result of a push operation of a single head:

-
info = remote.push()[0]
-info.flags          # bitflags providing more information about the result
-info.local_ref      # Reference pointing to the local reference that was pushed
-                    # It is None if the ref was deleted.
-info.remote_ref_string # path to the remote reference located on the remote side
-info.remote_ref # Remote Reference on the local side corresponding to 
-                # the remote_ref_string. It can be a TagReference as well.
-info.old_commit # commit at which the remote_ref was standing before we pushed
-                # it to local_ref.commit. Will be None if an error was indicated
-info.summary    # summary line providing human readable english text about the push
-
-
-
-
-flags
-
- -
-
-local_ref
-
- -
-
-old_commit
-
- -
-
-remote_ref
-
-
Returns
-
Remote Reference or TagReference in the local repository corresponding -to the remote_ref_string kept in this instance.
-
-
- -
-
-remote_ref_string
-
- -
-
-summary
-
- -
- -
-
-class git.remote.Remote(repo, name)
-

Provides easy read and write access to a git remote.

-

Everything not part of this interface is considered an option for the current -remote, allowing constructs like remote.pushurl to query the pushurl.

-

NOTE: When querying configuration, the configuration accessor will be cached -to speed up subsequent accesses.

-
-
-classmethod add(repo, name, url, **kwargs)
-

Create a new remote to the given repository -repo

-
-Repository instance that is to receive the new remote
-
-
name
-
Desired name of the remote
-
url
-
URL which corresponds to the remote’s name
-
**kwargs
-
Additional arguments to be passed to the git-remote add command
-
Returns
-
New Remote instance
-
Raise
-
GitCommandError in case an origin with that name already exists
-
-
- -
-
-config_reader
-
-
Returns
-
GitConfigParser compatible object able to read options for only our remote. -Hence you may simple type config.get(“pushurl”) to obtain the information
-
-
- -
-
-config_writer
-
-
Return
-
GitConfigParser compatible object able to write options for this remote.
-
Note
-

You can only own one writer at a time - delete it to release the -configuration file and make it useable by others.

-

To assure consistent results, you should only query options through the -writer. Once you are done writing, you are free to use the config reader -once again.

-
-
-
- -
-
-classmethod create(repo, name, url, **kwargs)
-

Create a new remote to the given repository -repo

-
-Repository instance that is to receive the new remote
-
-
name
-
Desired name of the remote
-
url
-
URL which corresponds to the remote’s name
-
**kwargs
-
Additional arguments to be passed to the git-remote add command
-
Returns
-
New Remote instance
-
Raise
-
GitCommandError in case an origin with that name already exists
-
-
- -
-
-fetch(refspec=None, progress=None, **kwargs)
-

Fetch the latest changes for this remote

-
-
refspec
-

A “refspec” is used by fetch and push to describe the mapping -between remote ref and local ref. They are combined with a colon in -the format <src>:<dst>, preceded by an optional plus sign, +. -For example: git fetch $URL refs/heads/master:refs/heads/origin means -“grab the master branch head from the $URL and store it as my origin -branch head”. And git push $URL refs/heads/master:refs/heads/to-upstream -means “publish my master branch head as to-upstream branch at $URL”. -See also git-push(1).

-

Taken from the git manual

-
-
progress
-
See ‘push’ method
-
**kwargs
-
Additional arguments to be passed to git-fetch
-
Returns
-
IterableList(FetchInfo, ...) list of FetchInfo instances providing detailed -information about the fetch results
-
Note
-
As fetch does not provide progress information to non-ttys, we cannot make -it available here unfortunately as in the ‘push’ method.
-
-
- -
-
-classmethod iter_items(repo)
-
-
Returns
-
Iterator yielding Remote objects of the given repository
-
-
- -
-
-name
-
- -
-
-pull(refspec=None, progress=None, **kwargs)
-

Pull changes from the given branch, being the same as a fetch followed -by a merge of branch with your local branch.

-
-
refspec
-
see ‘fetch’ method
-
progress
-
see ‘push’ method
-
**kwargs
-
Additional arguments to be passed to git-pull
-
Returns
-
Please see ‘fetch’ method
-
-
- -
-
-push(refspec=None, progress=None, **kwargs)
-

Push changes from source branch in refspec to target branch in refspec.

-
-
refspec
-
see ‘fetch’ method
-
progress
-
Instance of type RemoteProgress allowing the caller to receive -progress information until the method returns. -If None, progress information will be discarded
-
**kwargs
-
Additional arguments to be passed to git-push
-
Returns
-
IterableList(PushInfo, ...) iterable list of PushInfo instances, each -one informing about an individual head which had been updated on the remote -side. -If the push contains rejected heads, these will have the PushInfo.ERROR bit set -in their flags. -If the operation fails completely, the length of the returned IterableList will -be null.
-
-
- -
-
-refs
-
-
Returns
-

IterableList of RemoteReference objects. It is prefixed, allowing -you to omit the remote path portion, i.e.:

-
remote.refs.master # yields RemoteReference('/refs/remotes/origin/master')
-
-
-
-
-
- -
-
-classmethod remove(repo, name)
-
Remove the remote with the given name
- -
-
-rename(new_name)
-

Rename self to the given new_name

-
-
Returns
-
self
-
-
- -
-
-repo
-
- -
-
-classmethod rm(repo, name)
-
Remove the remote with the given name
- -
-
-stale_refs
-
-
Returns
-

IterableList RemoteReference objects that do not have a corresponding -head in the remote reference anymore as they have been deleted on the -remote side, but are still available locally.

-

The IterableList is prefixed, hence the ‘origin’ must be omitted. See -‘refs’ property for an example.

-
-
-
- -
-
-update(**kwargs)
-

Fetch all changes for this remote, including new branches which will -be forced in ( in case your local remote branch is not part the new remote branches -ancestry anymore ).

-
-
kwargs
-
Additional arguments passed to git-remote update
-
Returns
-
self
-
-
- -
- -
-
-class git.remote.RemoteProgress
-

Handler providing an interface to parse progress information emitted by git-push -and git-fetch and to dispatch callbacks allowing subclasses to react to the progress.

-
-
-line_dropped(line)
-
Called whenever a line could not be understood and was therefore dropped.
- -
-
-update(op_code, cur_count, max_count=None, message='')
-

Called whenever the progress changes

-
-
op_code
-

Integer allowing to be compared against Operation IDs and stage IDs.

-

Stage IDs are BEGIN and END. BEGIN will only be set once for each Operation -ID as well as END. It may be that BEGIN and END are set at once in case only -one progress message was emitted due to the speed of the operation. -Between BEGIN and END, none of these flags will be set

-

Operation IDs are all held within the OP_MASK. Only one Operation ID will -be active per call.

-
-
cur_count
-
Current absolute count of items
-
max_count
-
The maximum count of items we expect. It may be None in case there is -no maximum number of items or if it is (yet) unknown.
-
message
-
In case of the ‘WRITING’ operation, it contains the amount of bytes -transferred. It may possibly be used for other purposes as well.
-
-

You may read the contents of the current line in self._cur_line

-
- -
- -
-
-

Repo

-
-
-class git.repo.Repo(path=None)
-

Represents a git repository and allows you to query references, -gather commit information, generate diffs, create and clone repositories query -the log.

-

The following attributes are worth using:

-

‘working_dir’ is the working directory of the git command, wich is the working tree -directory if available or the .git directory in case of bare repositories

-

‘working_tree_dir’ is the working tree directory, but will raise AssertionError -if we are a bare repository.

-

‘git_dir’ is the .git repository directoy, which is always set.

-
-
-active_branch
-

The name of the currently active branch.

-
-
Returns
-
Head to the active branch
-
-
- -
-
-alternates
-
Retrieve a list of alternates paths or set a list paths to be used as alternates
- -
-
-archive(ostream, treeish=None, prefix=None, **kwargs)
-

Archive the tree at the given revision. -ostream

-
-file compatible stream object to which the archive will be written
-
-
treeish
-
is the treeish name/id, defaults to active branch
-
prefix
-
is the optional prefix to prepend to each filename in the archive
-
kwargs
-
Additional arguments passed to git-archive -NOTE: Use the ‘format’ argument to define the kind of format. Use -specialized ostreams to write any format supported by python
-
-

Examples:

-
>>> repo.archive(open("archive"))
-<String containing tar.gz archive>
-
-
-
-
Raise
-
GitCommandError in case something went wrong
-
Returns
-
self
-
-
- -
-
-bare
-
-
Returns
-
True if the repository is bare
-
-
- -
-
-blame(rev, file)
-

The blame information for the given file at the given revision.

-
-
rev
-
revision specifier, see git-rev-parse for viable options.
-
Returns
-
list: [git.Commit, list: [<line>]] -A list of tuples associating a Commit object with a list of lines that -changed within the given commit. The Commit objects will be given in order -of appearance.
-
-
- -
-
-branches
-

A list of Head objects representing the branch heads in -this repo

-
-
Returns
-
git.IterableList(Head, ...)
-
-
- -
-
-clone(path, **kwargs)
-

Create a clone from this repository.

-
-
path
-
is the full path of the new repo (traditionally ends with ./<name>.git).
-
kwargs
-
keyword arguments to be given to the git-clone command
-
Returns
-
git.Repo (the newly cloned repo)
-
-
- -
-
-commit(rev=None)
-

The Commit object for the specified revision

-
-
rev
-
revision specifier, see git-rev-parse for viable options.
-
Returns
-
git.Commit
-
-
- -
-
-config_reader(config_level=None)
-
-
Returns
-

GitConfigParser allowing to read the full git configuration, but not to write it

-

The configuration will include values from the system, user and repository -configuration files.

-

NOTE: On windows, system configuration cannot currently be read as the path is -unknown, instead the global path will be used.

-
-
config_level
-
For possible values, see config_writer method -If None, all applicable levels will be used. Specify a level in case -you know which exact file you whish to read to prevent reading multiple files for -instance
-
-
- -
-
-config_writer(config_level='repository')
-
-
Returns
-
GitConfigParser allowing to write values of the specified configuration file level. -Config writers should be retrieved, used to change the configuration ,and written -right away as they will lock the configuration file in question and prevent other’s -to write it.
-
config_level
-
One of the following values -system = sytem wide configuration file -global = user level configuration file -repository = configuration file for this repostory only
-
-
- -
-
-create_head(path, commit='HEAD', force=False, **kwargs)
-

Create a new head within the repository.

-

For more documentation, please see the Head.create method.

-
-
Returns
-
newly created Head Reference
-
-
- -
-
-create_remote(name, url, **kwargs)
-

Create a new remote.

-

For more information, please see the documentation of the Remote.create -methods

-
-
Returns
-
Remote reference
-
-
- -
-
-create_tag(path, ref='HEAD', message=None, force=False, **kwargs)
-

Create a new tag reference.

-

For more documentation, please see the TagReference.create method.

-
-
Returns
-
TagReference object
-
-
- -
-
-daemon_export
-
If True, git-daemon may export this repository
- -
-
-delete_head(*heads, **kwargs)
-

Delete the given heads

-
-
kwargs
-
Additional keyword arguments to be passed to git-branch
-
-
- -
-
-delete_remote(remote)
-
Delete the given remote.
- -
-
-delete_tag(*tags)
-
Delete the given tag references
- -
-
-description
-
the project’s description
- -
-
-git
-
- -
-
-git_dir
-
- -
-
-head
-
-
Return
-
HEAD Object pointing to the current head reference
-
-
- -
-
-heads
-

A list of Head objects representing the branch heads in -this repo

-
-
Returns
-
git.IterableList(Head, ...)
-
-
- -
-
-index
-
-
Returns
-
IndexFile representing this repository’s index.
-
-
- -
-
-classmethod init(path=None, mkdir=True, **kwargs)
-

Initialize a git repository at the given path if specified

-
-
path
-
is the full path to the repo (traditionally ends with /<name>.git) -or None in which case the repository will be created in the current -working directory
-
mkdir
-
if specified will create the repository directory if it doesn’t -already exists. Creates the directory with a mode=0755. -Only effective if a path is explicitly given
-
kwargs
-
keyword arguments serving as additional options to the git-init command
-
-

Examples:

-
git.Repo.init('/var/git/myrepo.git',bare=True)
-
-
-
-
Returns
-
git.Repo (the newly created repo)
-
-
- -
-
-is_dirty(index=True, working_tree=True, untracked_files=False)
-
-
Returns
-
True, the repository is considered dirty. By default it will react -like a git-status without untracked files, hence it is dirty if the -index or the working copy have changes.
-
-
- -
-
-iter_commits(rev=None, paths='', **kwargs)
-

A list of Commit objects representing the history of a given ref/commit

-
-
rev
-
-revision specifier, see git-rev-parse for viable options. -If None, the active branch will be used.
-
-
paths
-
is an optional path or a list of paths to limit the returned commits to -Commits that do not contain that path or the paths will not be returned.
-
kwargs
-
Arguments to be passed to git-rev-list - common ones are -max_count and skip
-
-
-
-

Note: to receive only commits between two named revisions, use the -“revA..revB” revision specifier

-
-
Returns
-
git.Commit[]
-
-
- -
-
-iter_trees(*args, **kwargs)
-
-
Returns
-
Iterator yielding Tree objects
-
-

Note: Takes all arguments known to iter_commits method

-
- -
-
-references
-

A list of Reference objects representing tags, heads and remote references.

-
-
Returns
-
IterableList(Reference, ...)
-
-
- -
-
-refs
-

A list of Reference objects representing tags, heads and remote references.

-
-
Returns
-
IterableList(Reference, ...)
-
-
- -
-
-remote(name='origin')
-
-
Return
-
Remote with the specified name
-
Raise
-
ValueError if no remote with such a name exists
-
-
- -
-
-remotes
-

A list of Remote objects allowing to access and manipulate remotes

-
-
Returns
-
git.IterableList(Remote, ...)
-
-
- -
-
-tag(path)
-
-
Return
-
TagReference Object, reference pointing to a Commit or Tag
-
path
-
path to the tag reference, i.e. 0.1.5 or tags/0.1.5
-
-
- -
-
-tags
-

A list of Tag objects that are available in this repo

-
-
Returns
-
git.IterableList(TagReference, ...)
-
-
- -
-
-tree(rev=None)
-

The Tree object for the given treeish revision

-
-
rev
-
is a revision pointing to a Treeish ( being a commit or tree )
-
-

Examples:

-
repo.tree(repo.heads[0])
-
-
-
-
Returns
-
git.Tree
-
NOTE
-
If you need a non-root level tree, find it by iterating the root tree. Otherwise -it cannot know about its path relative to the repository root and subsequent -operations might have unexpected results.
-
-
- -
-
-untracked_files
-
-
Returns
-

list(str,...)

-

Files currently untracked as they have not been staged yet. Paths -are relative to the current working directory of the git command.

-
-
Note
-
ignored files will not appear here, i.e. files mentioned in .gitignore
-
-
- -
-
-working_dir
-
- -
-
-working_tree_dir
-
-
Returns
-
The working tree directory of our git repository
-
Raises AssertionError
-
If we are a bare repository
-
-
- -
- -
-
-git.repo.is_git_dir(d)
-
This is taken from the git setup.c:is_git_directory -function.
- -
-
-git.repo.touch(filename)
-
- -
-
-

Stats

-
-
-class git.stats.Stats(total, files)
-

Represents stat information as presented by git at the end of a merge. It is -created from the output of a diff operation.

-

Example:

-
c = Commit( sha1 )
-s = c.stats
-s.total         # full-stat-dict
-s.files         # dict( filepath : stat-dict )
-
-
-

stat-dict

-

A dictionary with the following keys and values:

-
deletions = number of deleted lines as int
-insertions = number of inserted lines as int
-lines = total number of lines changed as int, or deletions + insertions
-
-

full-stat-dict

-

In addition to the items in the stat-dict, it features additional information:

-
files = number of changed files as int
-
-
-
-files
-
- -
-
-total
-
- -
- -
-
-

Utils

-
-
-class git.utils.BlockingLockFile(file_path, check_interval_s=0.29999999999999999, max_block_time_s=9223372036854775807)
-
The lock file will block until a lock could be obtained, or fail after -a specified timeout
- -
-
-class git.utils.ConcurrentWriteOperation(file_path)
-

This class facilitates a safe write operation to a file on disk such that we:

-
-
    -
  • lock the original file
  • -
  • write to a temporary file
  • -
  • rename temporary file back to the original one on close
  • -
  • unlock the original file
  • -
-
-

This type handles error correctly in that it will assure a consistent state -on destruction

-
- -
-
-class git.utils.Iterable
-

Defines an interface for iterable items which is to assure a uniform -way to retrieve and iterate items within the git repository

-
-
-classmethod iter_items(repo, *args, **kwargs)
-

For more information about the arguments, see list_items -Return:

-
-iterator yielding Items
-
- -
-
-classmethod list_items(repo, *args, **kwargs)
-

Find all items of this type - subclasses can specify args and kwargs differently. -If no args are given, subclasses are obliged to return all items if no additional -arguments arg given.

-

Note: Favor the iter_items method as it will

-
-
Returns:
-
list(Item,...) list of item instances
-
-
- -
- -
-
-class git.utils.IterableList(id_attr, prefix='')
-

List of iterable objects allowing to query an object by id or by named index:

-
heads = repo.heads
-heads.master
-heads['master']
-heads[0]
-
-
-

It requires an id_attribute name to be set which will be queried from its -contained items to have a means for comparison.

-

A prefix can be specified which is to be used in case the id returned by the -items always contains a prefix that does not matter to the user, so it -can be left out.

-
- -
-
-class git.utils.LazyMixin
-
Base class providing an interface to lazily retrieve attribute values upon -first access. If slots are used, memory will only be reserved once the attribute -is actually accessed and retrieved the first time. All future accesses will -return the cached value as stored in the Instance’s dict or slot.
- -
-
-class git.utils.LockFile(file_path)
-

Provides methods to obtain, check for, and release a file based lock which -should be used to handle concurrent access to the same file.

-

As we are a utility class to be derived from, we only use protected methods.

-

Locks will automatically be released on destruction

-
- -
-
-class git.utils.SHA1Writer(f)
-

Wrapper around a file-like object that remembers the SHA1 of -the data written to it. It will write a sha when the stream is closed -or if the asked for explicitly usign write_sha.

-
-
Note:
-
Based on the dulwich project
-
-
-
-close()
-
- -
-
-f
-
- -
-
-sha1
-
- -
-
-tell()
-
- -
-
-write(data)
-
- -
-
-write_sha()
-
- -
- -
-
-git.utils.join_path(a, *p)
-
Join path tokens together similar to os.path.join, but always use -‘/’ instead of possibly ‘’ on windows.
- -
-
-git.utils.join_path_native(a, *p)
-
As join path, but makes sure an OS native path is returned. This is only -needed to play it safe on my dear windows and to assure nice paths that only -use ‘’
- -
-
-git.utils.make_sha(source='')
-

A python2.4 workaround for the sha/hashlib module fiasco

-
-
Note
-
From the dulwich project
-
-
- -
-
-git.utils.to_native_path(path)
-
- -
-
-git.utils.to_native_path_linux(path)
-
- -
-
-git.utils.to_native_path_windows(path)
-
- -
-
- - -
-
-
-
-
-

Table Of Contents

- - -

Previous topic

-

GitPython Tutorial

-

Next topic

-

Roadmap

-

This Page

- - - -
-
-
-
- - - - \ No newline at end of file -- cgit v1.2.3