References¶
-
class
pygit2.
Repository
(*args, **kwargs) -
references
¶ Returns an instance of the References class (see below).
-
lookup_reference
(name) → Reference Lookup a reference by its name in a repository.
-
lookup_reference_dwim
(name) → Reference Lookup a reference by doing-what-i-mean’ing its short name.
-
raw_listall_references
() → [bytes, …] Return a list with all the references in the repository.
-
resolve_refish
(refish) Convert a reference-like short name “ref-ish” to a valid (commit, reference) pair.
If ref-ish points to a commit, the reference element of the result will be None.
Examples:
repo.resolve_refish('mybranch') repo.resolve_refish('sometag') repo.resolve_refish('origin/master') repo.resolve_refish('bbb78a9')
-
-
class
pygit2.repository.
References
(repository)¶ -
__contains__
(name)¶
-
__getitem__
(name)¶
-
__iter__
()¶
-
compress
()¶
-
create
(name, target, force=False)¶
-
delete
(name)¶
-
get
(key)¶
-
property
objects
¶
-
Example:
>>> all_refs = list(repo.references)
>>> master_ref = repo.references["refs/heads/master"]
>>> commit = master_ref.peel() # 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')
# Pack loose references
>>> repo.references.compress()
Functions¶
-
pygit2.
reference_is_valid_name
(refname) → bool¶ Check if the passed string is a valid reference name.
Check if the passed string is a valid reference name.
Example:
>>> from pygit2 import reference_is_valid_name >>> reference_is_valid_name("refs/heads/master") True >>> reference_is_valid_name("HEAD") True >>> reference_is_valid_name("refs/heads/..") False
The Reference type¶
-
class
pygit2.
Reference
¶ Reference(name: str, target: str): create a symbolic reference
Reference(name: str, oid: oid, peel: oid): create a direct reference
‘peel’ is the first non-tag object’s OID, or None.
The purpose of this constructor is for use in custom refdb backends. References created with this function are unlikely to work as expected in other contexts.
-
log
() → RefLogIter¶ Retrieves the current reference log.
Example:
>>> branch = repository.references["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 forHEAD
, you have to get the Reference object forHEAD
and calllog_append
on that.
-
__eq__
(value, /)¶ Return self==value.
-
__ne__
(value, /)¶ Return self!=value.
-
delete
()¶ Delete this reference. It will no longer be valid!
-
name
¶ The full name of the reference.
-
peel
(type=None) → object¶ Retrieve an object of the given type by recursive peeling.
If no type is provided, the first non-tag object will be returned.
-
raw_name
¶ The full name of the reference (Bytes).
-
raw_shorthand
¶ The shorthand “human-readable” name of the reference (Bytes).
-
raw_target
¶ The raw reference target: If direct the value will be an Oid object, if it is symbolic it will be bytes with the full name of the target reference.
-
rename
(new_name)¶ Rename the reference.
-
set_target
(target[, message])¶ Set the target of this reference.
Update the reference using the given signature and message. These will be used to fill the reflog entry which will be created as a result of this update.
Parameters:
- target
The new target for this reference
- message
Message to use for the reflog.
-
shorthand
¶ The shorthand “human-readable” name of the reference.
-
target
¶ The reference target: If direct the value will be an Oid object, if it is symbolic it will be an string with the full name of the target reference.
-
type
¶ Type, either GIT_REF_OID or GIT_REF_SYMBOLIC.
-
The HEAD¶
Example. These two lines are equivalent:
>>> head = repo.references['HEAD'].resolve()
>>> head = repo.head
-
Repository.
head
¶ Current head reference of the repository.
-
Repository.
head_is_detached
¶ A repository’s HEAD is detached when it points directly to a commit instead of a branch.
-
Repository.
head_is_unborn
¶ An unborn branch is one named from HEAD but which doesn’t exist in the refs namespace, because it doesn’t have any commit to point to.
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)
Notes¶
-
Repository.
notes
()¶
-
Repository.
create_note
(message, author, committer, annotated_id[, ref, force]) → Oid¶ Create a new note for an object, return its SHA-ID.If no ref is given ‘refs/notes/commits’ will be used.
-
Repository.
lookup_note
(annotated_id[, ref]) → Note¶ Lookup a note for an annotated object in a repository.