Metadata-Version: 2.1
Name: webkitscmpy
Version: 7.0.2
Summary: Library designed to interact with git and svn repositories.
Home-page: https://github.com/WebKit/WebKit/tree/main/Tools/Scripts/libraries/webkitscmpy
Author: Jonathan Bedard
Author-email: jbedard@apple.com
License: Modified BSD
Keywords: git svn
Platform: UNKNOWN
Classifier: Development Status :: 1 - Planning
Classifier: Intended Audience :: Developers
Classifier: License :: Other/Proprietary License
Classifier: Operating System :: MacOS
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: fasteners
Requires-Dist: jinja2
Requires-Dist: monotonic
Requires-Dist: webkitcorepy
Requires-Dist: webkitbugspy
Requires-Dist: xmltodict
Requires-Dist: rapidfuzz

# 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)
```


