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:
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=<_io.BufferedWriter name='<stdout>'>, errstream=<_io.BufferedWriter name='<stderr>'>)¶ 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=<_io.BufferedWriter name='<stderr>'>, outstream=None, origin=b'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=<_io.TextIOWrapper name='<stdout>' mode='w' encoding='utf-8'>)¶ 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=b'origin', outstream=<_io.TextIOWrapper name='<stdout>' mode='w' encoding='utf-8'>, errstream=<_io.BufferedWriter name='<stderr>'>, 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=<_io.TextIOWrapper name='<stdout>' mode='w' encoding='utf-8'>, 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=b'HEAD', outstream=<_io.TextIOWrapper name='<stdout>' mode='w' encoding='utf-8'>, 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=<_io.TextIOWrapper name='<stdout>' mode='w' encoding='utf-8'>)¶ 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=<_io.TextIOWrapper name='<stdout>' mode='w' encoding='utf-8'>)¶ 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=<_io.BufferedWriter name='<stdout>'>, errstream=<_io.BufferedWriter name='<stderr>'>, **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=<_io.BufferedWriter name='<stdout>'>, errstream=<_io.BufferedWriter name='<stderr>'>, **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=<_io.TextIOWrapper name='<stdout>' mode='w' encoding='utf-8'>)¶ 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=<_io.TextIOWrapper name='<stdout>' mode='w' encoding='utf-8'>, 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=<_io.TextIOWrapper name='<stdout>' mode='w' encoding='utf-8'>)¶ 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=<_io.TextIOWrapper name='<stdout>' mode='w' encoding='utf-8'>)¶ 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=<_io.TextIOWrapper name='<stdout>' mode='w' encoding='utf-8'>)¶ 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=<_io.TextIOWrapper name='<stdout>' mode='w' encoding='utf-8'>)¶ 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 - dict with lists 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=<_io.TextIOWrapper name='<stdout>' mode='w' encoding='utf-8'>)¶ 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