dulwich.porcelain module¶
Simple wrapper that provides porcelain-like functions on top of Dulwich.
- Currently implemented:
- archive
- add
- branch{_create,_delete,_list}
- check-ignore
- checkout
- clone
- commit
- commit-tree
- daemon
- describe
- diff-tree
- fetch
- init
- ls-files
- ls-remote
- ls-tree
- pull
- push
- rm
- remote{_add}
- receive-pack
- reset
- rev-list
- tag{_create,_delete,_list}
- upload-pack
- update-server-info
- status
- symbolic-ref
These functions are meant to behave similarly to the git subcommands. Differences in behaviour are considered bugs.
Functions should generally accept both unicode strings and bytestrings
-
class
dulwich.porcelain.
GitStatus
(staged, unstaged, untracked)¶ Bases:
tuple
Create new instance of GitStatus(staged, unstaged, untracked)
-
staged
¶ Alias for field number 0
-
unstaged
¶ Alias for field number 1
-
untracked
¶ Alias for field number 2
-
-
class
dulwich.porcelain.
NoneStream
¶ Bases:
io.RawIOBase
Fallback if stdout or stderr are unavailable, does nothing.
-
read
(size=-1)¶
-
readall
()¶ Read until EOF, using multiple read() call.
-
readinto
(b)¶
-
write
(b)¶
-
-
exception
dulwich.porcelain.
RemoteExists
¶ Bases:
exceptions.Exception
Raised when the remote already exists.
-
dulwich.porcelain.
add
(repo='.', paths=None)¶ Add files to the staging area.
Parameters: - repo – Repository for the files
- paths – Paths to add. No value passed stages all modified files.
Returns: Tuple with set of added files and ignored files
-
dulwich.porcelain.
archive
(repo, committish=None, outstream=<open file '<stdout>', mode 'w'>, errstream=<open file '<stderr>', mode 'w'>)¶ Create an archive.
Parameters: - repo – Path of repository for which to generate an archive.
- committish – Commit SHA1 or ref to use
- outstream – Output stream (defaults to stdout)
- errstream – Error stream (defaults to stderr)
-
dulwich.porcelain.
branch_create
(repo, name, objectish=None, force=False)¶ Create a branch.
Parameters: - repo – Path to the repository
- name – Name of the new branch
- objectish – Target object to point new branch at (defaults to HEAD)
- force – Force creation of branch, even if it already exists
-
dulwich.porcelain.
branch_delete
(repo, name)¶ Delete a branch.
Parameters: - repo – Path to the repository
- name – Name of the branch
-
dulwich.porcelain.
branch_list
(repo)¶ List all branches.
Parameters: repo – Path to the repository
-
dulwich.porcelain.
check_ignore
(repo, paths, no_index=False)¶ Debug gitignore files.
Parameters: - repo – Path to the repository
- paths – List of paths to check for
- no_index – Don’t check index
Returns: List of ignored files
-
dulwich.porcelain.
check_mailmap
(repo, contact)¶ Check canonical name and email of contact.
Parameters: - repo – Path to the repository
- contact – Contact name and/or email
Returns: Canonical contact data
-
dulwich.porcelain.
clean
(repo='.', target_dir=None)¶ Remove any untracked files from the target directory recursively
Equivalent to running git clean -fd in target_dir.
Parameters: - repo – Repository where the files may be tracked
- target_dir – Directory to clean - current directory if None
-
dulwich.porcelain.
clone
(source, target=None, bare=False, checkout=None, errstream=<open file '<stderr>', mode 'w'>, outstream=None, origin='origin', depth=None, **kwargs)¶ Clone a local or remote git repository.
Parameters: - source – Path or URL for source repository
- target – Path to target repository (optional)
- bare – Whether or not to create a bare repository
- checkout – Whether or not to check-out HEAD after cloning
- errstream – Optional stream to write progress to
- outstream – Optional stream to write progress to (deprecated)
- origin – Name of remote from the repository used to clone
- depth – Depth to fetch at
Returns: The new repository
-
dulwich.porcelain.
commit
(repo='.', message=None, author=None, committer=None, encoding=None)¶ Create a new commit.
Parameters: - repo – Path to repository
- message – Optional commit message
- author – Optional author name and email
- committer – Optional committer name and email
Returns: SHA1 of the new commit
-
dulwich.porcelain.
commit_decode
(commit, contents, default_encoding='utf-8')¶
-
dulwich.porcelain.
commit_tree
(repo, tree, message=None, author=None, committer=None)¶ Create a new commit object.
Parameters: - repo – Path to repository
- tree – An existing tree object
- author – Optional author name and email
- committer – Optional committer name and email
-
dulwich.porcelain.
daemon
(path='.', address=None, port=None)¶ Run a daemon serving Git requests over TCP/IP.
Parameters: - path – Path to the directory to serve.
- address – Optional address to listen on (defaults to ::)
- port – Optional port to listen on (defaults to TCP_GIT_PORT)
-
dulwich.porcelain.
describe
(repo)¶ Describe the repository version.
Parameters: projdir – git repository root Returns: a string description of the current git revision Examples: “gabcdefh”, “v0.1” or “v0.1-5-gabcdefh”.
-
dulwich.porcelain.
diff_tree
(repo, old_tree, new_tree, outstream=<open file '<stdout>', mode 'w'>)¶ Compares the content and mode of blobs found via two tree objects.
Parameters: - repo – Path to repository
- old_tree – Id of old tree
- new_tree – Id of new tree
- outstream – Stream to write to
-
dulwich.porcelain.
fetch
(repo, remote_location, remote_name='origin', outstream=<open file '<stdout>', mode 'w'>, errstream=<open file '<stderr>', mode 'w'>, message=None, depth=None, prune=False, prune_tags=False, **kwargs)¶ Fetch objects from a remote server.
Parameters: - repo – Path to the repository
- remote_location – String identifying a remote server
- remote_name – Name for remote server
- outstream – Output stream (defaults to stdout)
- errstream – Error stream (defaults to stderr)
- message – Reflog message (defaults to b”fetch: from <remote_name>”)
- depth – Depth to fetch at
- prune – Prune remote removed refs
- prune_tags – Prune reomte removed tags
Returns: Dictionary with refs on the remote
-
dulwich.porcelain.
fsck
(repo)¶ Check a repository.
Parameters: repo – A path to the repository Returns: Iterator over errors/warnings
-
dulwich.porcelain.
get_object_by_path
(repo, path, committish=None)¶ Get an object by path.
Parameters: - repo – A path to the repository
- path – Path to look up
- committish – Commit to look up path in
Returns: A ShaFile object
-
dulwich.porcelain.
get_tree_changes
(repo)¶ Return add/delete/modify changes to tree by comparing index to HEAD.
Parameters: repo – repo path or object Returns: dict with lists for each type of change
-
dulwich.porcelain.
get_untracked_paths
(frompath, basepath, index)¶ Get untracked paths.
;param frompath: Path to walk :param basepath: Path to compare to :param index: Index to check against
-
dulwich.porcelain.
init
(path='.', bare=False)¶ Create a new git repository.
Parameters: - path – Path to repository.
- bare – Whether to create a bare repository.
Returns: A Repo instance
-
dulwich.porcelain.
log
(repo='.', paths=None, outstream=<open file '<stdout>', mode 'w'>, max_entries=None, reverse=False, name_status=False)¶ Write commit logs.
Parameters: - repo – Path to repository
- paths – Optional set of specific paths to print entries for
- outstream – Stream to write log output to
- reverse – Reverse order in which entries are printed
- name_status – Print name status
- max_entries – Optional maximum number of entries to display
-
dulwich.porcelain.
ls_files
(repo)¶ List all files in an index.
-
dulwich.porcelain.
ls_remote
(remote, config=None, **kwargs)¶ List the refs in a remote.
Parameters: - remote – Remote repository location
- config – Configuration to use
Returns: Dictionary with remote refs
-
dulwich.porcelain.
ls_tree
(repo, treeish='HEAD', outstream=<open file '<stdout>', mode 'w'>, recursive=False, name_only=False)¶ List contents of a tree.
Parameters: - repo – Path to the repository
- tree_ish – Tree id to list
- outstream – Output stream (defaults to stdout)
- recursive – Whether to recursively list files
- name_only – Only print item name
-
dulwich.porcelain.
open_repo
(path_or_repo)¶ Open an argument that can be a repository or a path for a repository.
-
dulwich.porcelain.
open_repo_closing
(path_or_repo)¶ Open an argument that can be a repository or a path for a repository. returns a context manager that will close the repo on exit if the argument is a path, else does nothing if the argument is a repo.
-
dulwich.porcelain.
pack_objects
(repo, object_ids, packf, idxf, delta_window_size=None)¶ Pack objects into a file.
Parameters: - repo – Path to the repository
- object_ids – List of object ids to write
- packf – File-like object to write to
- idxf – File-like object to write to (can be None)
-
dulwich.porcelain.
path_to_tree_path
(repopath, path)¶ Convert a path to a path usable in an index, e.g. bytes and relative to the repository root.
Parameters: - repopath – Repository path, absolute or relative to the cwd
- path – A path, absolute or relative to the cwd
Returns: A path formatted for use in e.g. an index
-
dulwich.porcelain.
print_commit
(commit, decode, outstream=<open file '<stdout>', mode 'w'>)¶ Write a human-readable commit log entry.
Parameters: - commit – A Commit object
- outstream – A stream file to write to
-
dulwich.porcelain.
print_name_status
(changes)¶ Print a simple status summary, listing changed files.
-
dulwich.porcelain.
print_tag
(tag, decode, outstream=<open file '<stdout>', mode 'w'>)¶ Write a human-readable tag.
Parameters: - tag – A Tag object
- decode – Function for decoding bytes to unicode string
- outstream – A stream to write to
-
dulwich.porcelain.
pull
(repo, remote_location=None, refspecs=None, outstream=<open file '<stdout>', mode 'w'>, errstream=<open file '<stderr>', mode 'w'>, **kwargs)¶ Pull from remote via dulwich.client
Parameters: - repo – Path to repository
- remote_location – Location of the remote
- refspec – refspecs to fetch
- outstream – A stream file to write to output
- errstream – A stream file to write to errors
-
dulwich.porcelain.
push
(repo, remote_location, refspecs, outstream=<open file '<stdout>', mode 'w'>, errstream=<open file '<stderr>', mode 'w'>, **kwargs)¶ Remote push with dulwich via dulwich.client
Parameters: - repo – Path to repository
- remote_location – Location of the remote
- refspecs – Refs to push to remote
- outstream – A stream file to write output
- errstream – A stream file to write errors
-
dulwich.porcelain.
receive_pack
(path='.', inf=None, outf=None)¶ Receive a pack file after negotiating its contents using smart protocol.
Parameters: - path – Path to the repository
- inf – Input stream to communicate with client
- outf – Output stream to communicate with client
-
dulwich.porcelain.
remote_add
(repo, name, url)¶ Add a remote.
Parameters: - repo – Path to the repository
- name – Remote name
- url – Remote URL
-
dulwich.porcelain.
remove
(repo='.', paths=None, cached=False)¶ Remove files from the staging area.
Parameters: - repo – Repository for the files
- paths – Paths to remove
-
dulwich.porcelain.
repack
(repo)¶ Repack loose files in a repository.
Currently this only packs loose objects.
Parameters: repo – Path to the repository
-
dulwich.porcelain.
reset
(repo, mode, treeish='HEAD')¶ Reset current HEAD to the specified state.
Parameters: - repo – Path to repository
- mode – Mode (“hard”, “soft”, “mixed”)
- treeish – Treeish to reset to
-
dulwich.porcelain.
rev_list
(repo, commits, outstream=<open file '<stdout>', mode 'w'>)¶ Lists commit objects in reverse chronological order.
Parameters: - repo – Path to repository
- commits – Commits over which to iterate
- outstream – Stream to write to
-
dulwich.porcelain.
rm
(repo='.', paths=None, cached=False)¶ Remove files from the staging area.
Parameters: - repo – Repository for the files
- paths – Paths to remove
-
dulwich.porcelain.
show
(repo='.', objects=None, outstream=<open file '<stdout>', mode 'w'>, default_encoding='utf-8')¶ Print the changes in a commit.
Parameters: - repo – Path to repository
- objects – Objects to show (defaults to [HEAD])
- outstream – Stream to write to
- default_encoding – Default encoding to use if none is set in the commit
-
dulwich.porcelain.
show_blob
(repo, blob, decode, outstream=<open file '<stdout>', mode 'w'>)¶ Write a blob to a stream.
Parameters: - repo – A Repo object
- blob – A Blob object
- decode – Function for decoding bytes to unicode string
- outstream – A stream file to write to
-
dulwich.porcelain.
show_commit
(repo, commit, decode, outstream=<open file '<stdout>', mode 'w'>)¶ Show a commit to a stream.
Parameters: - repo – A Repo object
- commit – A Commit object
- decode – Function for decoding bytes to unicode string
- outstream – Stream to write to
-
dulwich.porcelain.
show_object
(repo, obj, decode, outstream)¶
-
dulwich.porcelain.
show_tag
(repo, tag, decode, outstream=<open file '<stdout>', mode 'w'>)¶ Print a tag to a stream.
Parameters: - repo – A Repo object
- tag – A Tag object
- decode – Function for decoding bytes to unicode string
- outstream – Stream to write to
-
dulwich.porcelain.
show_tree
(repo, tree, decode, outstream=<open file '<stdout>', mode 'w'>)¶ Print a tree to a stream.
Parameters: - repo – A Repo object
- tree – A Tree object
- decode – Function for decoding bytes to unicode string
- outstream – Stream to write to
-
dulwich.porcelain.
stash_list
(repo)¶ List all stashes in a repository.
-
dulwich.porcelain.
stash_pop
(repo)¶ Pop a new stash from the stack.
-
dulwich.porcelain.
stash_push
(repo)¶ Push a new stash onto the stack.
-
dulwich.porcelain.
status
(repo='.', ignored=False)¶ Returns staged, unstaged, and untracked changes relative to the HEAD.
Parameters: - repo – Path to repository or repository object
- ignored – Whether to include ignored files in untracked
Returns: GitStatus tuple, staged - list of staged paths (diff index/HEAD) unstaged - list of unstaged paths (diff index/working-tree) untracked - list of untracked, un-ignored & non-.git paths
-
dulwich.porcelain.
symbolic_ref
(repo, ref_name, force=False)¶ Set git symbolic ref into HEAD.
Parameters: - repo – path to the repository
- ref_name – short name of the new ref
- force – force settings without checking if it exists in refs/heads
-
dulwich.porcelain.
tag
(*args, **kwargs)¶
-
dulwich.porcelain.
tag_create
(repo, tag, author=None, message=None, annotated=False, objectish='HEAD', tag_time=None, tag_timezone=None, sign=False)¶ Creates a tag in git via dulwich calls:
Parameters: - repo – Path to repository
- tag – tag string
- author – tag author (optional, if annotated is set)
- message – tag message (optional)
- annotated – whether to create an annotated tag
- objectish – object the tag should point at, defaults to HEAD
- tag_time – Optional time for annotated tag
- tag_timezone – Optional timezone for annotated tag
- sign – GPG Sign the tag
-
dulwich.porcelain.
tag_delete
(repo, name)¶ Remove a tag.
Parameters: - repo – Path to repository
- name – Name of tag to remove
-
dulwich.porcelain.
tag_list
(repo, outstream=<open file '<stdout>', mode 'w'>)¶ List all tags.
Parameters: - repo – Path to repository
- outstream – Stream to write tags to
-
dulwich.porcelain.
update_head
(repo, target, detached=False, new_branch=None)¶ Update HEAD to point at a new branch/commit.
Note that this does not actually update the working tree.
Parameters: - repo – Path to the repository
- detach – Create a detached head
- target – Branch or committish to switch to
- new_branch – New branch to create
-
dulwich.porcelain.
update_server_info
(repo='.')¶ Update server info files for a repository.
Parameters: repo – path to the repository
-
dulwich.porcelain.
upload_pack
(path='.', inf=None, outf=None)¶ Upload a pack file after negotiating its contents using smart protocol.
Parameters: - path – Path to the repository
- inf – Input stream to communicate with client
- outf – Output stream to communicate with client
-
dulwich.porcelain.
web_daemon
(path='.', address=None, port=None)¶ Run a daemon serving Git requests over HTTP.
Parameters: - path – Path to the directory to serve
- address – Optional address to listen on (defaults to ::)
- port – Optional port to listen on (defaults to 80)
-
dulwich.porcelain.
write_tree
(repo)¶ Write a tree object from the index.
Parameters: repo – Repository for which to write tree Returns: tree id for the tree that was written