| # webkitscmpy |
| |
| Provides a utilities for interacting with a git or svn repository. |
| |
| ## Requirements |
| |
| - webkitcorepy |
| - fasteners |
| - monotonic |
| - xmltodict |
| |
| ## Command Line |
| |
| The `git-webkit` command supports a common set of basic repository manipulations. Most notably: |
| |
| `git-webkit find <ref>`: Print out commit information for a git ref, Subversion revision or identifier. |
| |
| `git-webkit checkout <ref>`: Move the current local repository to the provided git ref, Subversion revision or identifier. |
| |
| `git-webkit canonicalize`: Standardize commit authorship and put identifiers into the commit message. |
| |
| ## Usage |
| |
| The `webkitscmpy` library provides a repository abstraction for both local and remote repositories. To instantiate a |
| repository object, use the `local.Scm.from_path` and `remote.Scm.from_url` functions. |
| |
| ``` |
| from webkitscmpy import local, remote |
| |
| on_disk = local.Scm.from_path(<path>) |
| subversion = remote.Scm.from_url('https://svn.webkit.org/repository/webkit') |
| github = remote.Scm.from_url('https://github.com/WebKit/WebKit') |
| ``` |
| |
| While the abstraction layer is consistent for all implementations not all implementation support every feature. For |
| example, remote repositories do not have a `checkout` command available. |
| |
| Each repository keeps a list of contributors, which can be primed and passed into the repository object: |
| |
| ``` |
| from webkitscmpy import local, Contributor |
| contributors = Contributor.Mapping() |
| contributors.create('Jonathan Bedard', 'jbedard@apple.com') |
| local.Scm.from_path(<path>, contributors=contributors) |
| ``` |