2017-04-21 11:36:40 +02:00

4.0 KiB

References

pygit2.repository.References

Example:

>>> all_refs = list(repo.references)

>>> master_ref = repo.lookup_reference("refs/heads/master")
>>> commit = master_ref.get_object() # or repo[master_ref.target]

# Create a reference
>>> ref = repo.references.create('refs/tags/version1', LAST_COMMIT)

# Delete a reference
>>> repo.references.delete('refs/tags/version1')

The Reference type

pygit2.Reference

pygit2.Reference.name

pygit2.Reference.shorthand

pygit2.Reference.target

pygit2.Reference.type

pygit2.Reference.set_target

pygit2.Reference.delete

pygit2.Reference.rename

pygit2.Reference.resolve

pygit2.Reference.peel

pygit2.Reference.log

Example:

>>> branch = repository.lookup_reference("refs/heads/master")
>>> branch.target = another_commit.id
>>> committer = Signature('Cecil Committer', 'cecil@committers.tld')
>>> branch.log_append(another_commit.id, committer,
                      "changed branch target using pygit2")

This creates a reflog entry in git reflog master which looks like:

7296b92 master@{10}: changed branch target using pygit2

In order to make an entry in git reflog, ie. the reflog for HEAD, you have to get the Reference object for HEAD and call log_append on that.

pygit2.Reference.get_object

The HEAD

Example. These two lines are equivalent:

>>> head = repo.lookup_reference('HEAD').resolve()
>>> head = repo.head

pygit2.Repository.head

pygit2.Repository.head_is_detached

pygit2.Repository.head_is_unborn

Branches

Branches inherit from References, and additionally provide specialized accessors for some unique features.

pygit2.repository.Branches

Example:

>>> # Listing all branches
>>> branches_list = list(repo.branches)
>>> # Local only
>>> local_branches = list(repo.branches.local)
>>> # Remote only
>>> remote_branches = list(repo.branches.remote)

>>> # Get a branch
>>> branch = repo.branches['master']
>>> other_branch = repo.branches['does-not-exist']  # Will raise a KeyError
>>> other_branch = repo.branches.get('does-not-exist')  # Returns None

>>> remote_branch = repo.branches.remote['upstream/feature']

>>> # Create a local branch
>>> new_branch = repo.branches.local.create('new-branch')

>>> And delete it
>>> repo.branches.delete('new-branch')

The Branch type

pygit2.Branch.branch_name

pygit2.Branch.remote_name

pygit2.Branch.upstream

pygit2.Branch.upstream_name

pygit2.Branch.rename

pygit2.Branch.delete

pygit2.Branch.is_head

The reference log

Example:

>>> head = repo.references.get('refs/heads/master')  # Returns None if not found
>>> # Almost equivalent to
>>> head = repo.references['refs/heads/master']  # Raises KeyError if not found
>>> for entry in head.log():
...     print(entry.message)

pygit2.RefLogEntry

Notes

pygit2.Repository.notes

pygit2.Repository.create_note

pygit2.Repository.lookup_note

The Note type

pygit2.Note.annotated_id

pygit2.Note.id

pygit2.Note.message

pygit2.Note.remove