blob: 364505230fb1efc28cef4fbd1e2ba5027ad9b2c4 [file] [log] [blame] [view] [edit]
# 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)
```