74 lines
1.9 KiB
ReStructuredText
74 lines
1.9 KiB
ReStructuredText
**********************************************************************
|
|
The Index file and the Working copy
|
|
**********************************************************************
|
|
|
|
.. autoattribute:: pygit2.Repository.index
|
|
|
|
Index read::
|
|
|
|
>>> index = repo.index
|
|
>>> index.read()
|
|
>>> id = index['path/to/file'].id # from path to object id
|
|
>>> blob = repo[id] # from object id to object
|
|
|
|
Iterate over all entries of the index::
|
|
|
|
>>> for entry in index:
|
|
... print entry.path, entry.hex
|
|
|
|
Index write::
|
|
|
|
>>> index.add('path/to/file') # git add
|
|
>>> index.remove('path/to/file') # git rm
|
|
>>> index.write() # don't forget to save the changes
|
|
|
|
Custom entries::
|
|
>>> entry = pygit2.IndexEntry('README.md', blob_id, blob_filemode)
|
|
>>> repo.index.add(entry)
|
|
|
|
The index fulfills a dual role as the in-memory representation of the
|
|
index file and data structure which represents a flat list of a
|
|
tree. You can use it independently of the index file, e.g.
|
|
|
|
>>> index = pygit2.Index()
|
|
>>> entry = pygit2.IndexEntry('README.md', blob_id, blob_filemode)
|
|
>>> index.add(entry)
|
|
|
|
The Index type
|
|
====================
|
|
|
|
.. autoclass:: pygit2.Index
|
|
:members:
|
|
|
|
The IndexEntry type
|
|
--------------------
|
|
|
|
.. autoclass:: pygit2.IndexEntry
|
|
:members:
|
|
|
|
Status
|
|
====================
|
|
|
|
.. automethod:: pygit2.Repository.status
|
|
.. automethod:: pygit2.Repository.status_file
|
|
|
|
Inspect the status of the repository::
|
|
|
|
>>> from pygit2 import GIT_STATUS_CURRENT
|
|
>>> status = repo.status()
|
|
>>> for filepath, flags in status.items():
|
|
... if flags != GIT_STATUS_CURRENT:
|
|
... print "Filepath %s isn't clean" % filepath
|
|
|
|
|
|
Checkout
|
|
====================
|
|
|
|
.. automethod:: pygit2.Repository.checkout
|
|
|
|
Lower level API:
|
|
|
|
.. automethod:: pygit2.Repository.checkout_head
|
|
.. automethod:: pygit2.Repository.checkout_tree
|
|
.. automethod:: pygit2.Repository.checkout_index
|