1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- Porcelain
- =========
- The ``porcelain`` is the higher level interface, built on top of the lower
- level implementation covered in previous chapters of this tutorial. The
- ``dulwich.porcelain`` module in Dulwich is aimed to closely resemble
- the Git command-line API that you are familiar with.
- Basic concepts
- --------------
- The porcelain operations are implemented as top-level functions in the
- ``dulwich.porcelain`` module. Most arguments can either be strings or
- more complex Dulwich objects; e.g. a repository argument will either take
- a string with a path to the repository or an instance of a ``Repo`` object.
- Initializing a new repository
- -----------------------------
- >>> from dulwich import porcelain
- >>> repo = porcelain.init("myrepo")
- Clone a repository
- ------------------
- >>> porcelain.clone("git://github.com/jelmer/dulwich", "dulwich-clone")
-
- Basic authentication works using the ``username`` and ``password`` parameters:
- >>> porcelain.clone(
- "https://example.com/a-private-repo.git",
- "a-private-repo-clone",
- username="user", password="password")
- Commit changes
- --------------
- >>> r = porcelain.init("testrepo")
- >>> open("testrepo/testfile", "w").write("data")
- >>> porcelain.add(r, "testfile")
- >>> porcelain.commit(r, b"A sample commit")
- Push changes
- ------------
- >>> tr = porcelain.init("targetrepo")
- >>> r = porcelain.push("testrepo", "targetrepo", "master")
|