# webkitscmpy Provides a utilities for interacting with a git or svn repository. ## Requirements - webkitcorepy - fasteners - monotonic - whichcraft - xmltodict ## Command Line The `git-webkit` command supports a common set of basic repository manipulations. Most notably: `git-webkit find `: Print out commit information for a git ref, Subversion revision or identifier. `git-webkit checkout `: 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() 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(, contributors=contributors) ```