tsrc


Nametsrc JSON
Version 3.0.1 PyPI version JSON
download
home_pagehttps://github.com/your-tools/tsrc
SummaryManage groups of git repositories
upload_time2023-12-26 14:50:29
maintainer
docs_urlNone
authorDimitri Merejkowsky
requires_python>=3.8,<4.0
licenseBSD-3-Clause
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage
            [![image](https://img.shields.io/github/license/your-tools/tsrc.svg)](https://github.com/your-tools/tsrc/blob/main/LICENSE)

[![image](https://github.com/your-tools/tsrc/workflows/tests/badge.svg)](https://github.com/your-tools/tsrc/actions)

[![image](https://github.com/your-tools/tsrc/workflows/linters/badge.svg)](https://github.com/your-tools/tsrc/actions)

[![image](https://img.shields.io/pypi/v/tsrc.svg)](https://pypi.org/project/tsrc/)

[![image](https://img.shields.io/badge/deps%20scanning-pyup.io-green)](https://github.com/your-tools/tsrc/actions)

# tsrc: manage groups of git repositories

## Overview

tsrc is a command-line tool that helps you manage groups of several git
repositories.

It can be [seen in action on asciinema.org](https://asciinema.org/a/131625).

## Requirements

Python **3.7** or later

## Installation

Use `pipx` (recommended) or `pip` (ok, if you know what you're doing) to install.

Please see the [installation docs](https://your-tools.github.io/tsrc/getting-started/#installing_tsrc) for more info.

## Usage Example

  - Create a *manifest* repository. (`git@example.org/manifest.git`)
  - Add a file named `manifest.yml` at the root of the *manifest*
    repository.

`manifest.yml`:

```yaml
repos:
  - url: git@example.com/foo.git
    dest: foo

  - url: git@example.com/bar.git
    dest: bar
```

It is convenient while optional to include the manifest repository itself in your `manifest.yml`. It will allow you to have a local copy of you manifest repository to easily make changes to it in the future.

  - commit your `manifest.yml` and push the changes to the manifest
    repository.
  - Create a new workspace with all the repositories listed in the
    manifest:

```console
$ tsrc init git@git.local/manifest.git

:: Configuring workspace in /path/to/work
...
=> Cloning missing repos
* (1/2) foo
...
* (2/2) bar
...
: Configuring remotes
Done ✓
```

  - Synchronize all the repositories in the workspace:

```console
$ tsrc sync
=> Updating manifest
...
:: Configuring remotes
:: Synchronizing workspace
* (1/2) foo
=> Fetching origin
=> Updating branch
Already up to date
* (2/2) bar
=> Updating branch
Updating 29ac0e1..b635a43
Fast-forward
 bar.txt | 1 +
 1 file changed, 1 insertion(+)
 create mode 100644 bar.txt
Done ✓
```

## Documentation

For more details and examples, please refer to [tsrc documentation](https://your-tools.github.io/tsrc/).

## Release notes

Detailed changes for each release are documented in the [changelog](https://your-tools.github.io/tsrc/changelog/).

## Contributing

We welcome feedback, [bug reports](https://github.com/your-tools/tsrc/issues), and bug fixes in the form of [pull requests](https://github.com/your-tools/tsrc/pulls).

Detailed instructions can be found [in the documentation](https://your-tools.github.io/tsrc).

## License

tsrc is licensed under a [BSD 3-Clause license](https://github.com/your-tools/tsrc/blob/main/LICENSE).

## History

This project was originally hosted on the [TankerHQ](https://github.com/TankerHQ) organization, which was [dmerejkowsky](https://github.com/dmerejkowsky)'s employer from 2016 to 2021. They kindly agreed to give back ownership of this project to Dimitri in 2021 - thanks! Dimitri later on shared this project even more by moving it to the [your-tools](https://github.com/your-tools) organization.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/your-tools/tsrc",
    "name": "tsrc",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.8,<4.0",
    "maintainer_email": "",
    "keywords": "",
    "author": "Dimitri Merejkowsky",
    "author_email": "dimitri@dmerej.info",
    "download_url": "https://files.pythonhosted.org/packages/81/7f/5fa93b54dd2e3387ac05ddad145e066b3466be609c71a83e870174dc3986/tsrc-3.0.1.tar.gz",
    "platform": null,
    "description": "[![image](https://img.shields.io/github/license/your-tools/tsrc.svg)](https://github.com/your-tools/tsrc/blob/main/LICENSE)\n\n[![image](https://github.com/your-tools/tsrc/workflows/tests/badge.svg)](https://github.com/your-tools/tsrc/actions)\n\n[![image](https://github.com/your-tools/tsrc/workflows/linters/badge.svg)](https://github.com/your-tools/tsrc/actions)\n\n[![image](https://img.shields.io/pypi/v/tsrc.svg)](https://pypi.org/project/tsrc/)\n\n[![image](https://img.shields.io/badge/deps%20scanning-pyup.io-green)](https://github.com/your-tools/tsrc/actions)\n\n# tsrc: manage groups of git repositories\n\n## Overview\n\ntsrc is a command-line tool that helps you manage groups of several git\nrepositories.\n\nIt can be [seen in action on asciinema.org](https://asciinema.org/a/131625).\n\n## Requirements\n\nPython **3.7** or later\n\n## Installation\n\nUse `pipx` (recommended) or `pip` (ok, if you know what you're doing) to install.\n\nPlease see the [installation docs](https://your-tools.github.io/tsrc/getting-started/#installing_tsrc) for more info.\n\n## Usage Example\n\n  - Create a *manifest* repository. (`git@example.org/manifest.git`)\n  - Add a file named `manifest.yml` at the root of the *manifest*\n    repository.\n\n`manifest.yml`:\n\n```yaml\nrepos:\n  - url: git@example.com/foo.git\n    dest: foo\n\n  - url: git@example.com/bar.git\n    dest: bar\n```\n\nIt is convenient while optional to include the manifest repository itself in your `manifest.yml`. It will allow you to have a local copy of you manifest repository to easily make changes to it in the future.\n\n  - commit your `manifest.yml` and push the changes to the manifest\n    repository.\n  - Create a new workspace with all the repositories listed in the\n    manifest:\n\n```console\n$ tsrc init git@git.local/manifest.git\n\n:: Configuring workspace in /path/to/work\n...\n=> Cloning missing repos\n* (1/2) foo\n...\n* (2/2) bar\n...\n: Configuring remotes\nDone \u2713\n```\n\n  - Synchronize all the repositories in the workspace:\n\n```console\n$ tsrc sync\n=> Updating manifest\n...\n:: Configuring remotes\n:: Synchronizing workspace\n* (1/2) foo\n=> Fetching origin\n=> Updating branch\nAlready up to date\n* (2/2) bar\n=> Updating branch\nUpdating 29ac0e1..b635a43\nFast-forward\n bar.txt | 1 +\n 1 file changed, 1 insertion(+)\n create mode 100644 bar.txt\nDone \u2713\n```\n\n## Documentation\n\nFor more details and examples, please refer to [tsrc documentation](https://your-tools.github.io/tsrc/).\n\n## Release notes\n\nDetailed changes for each release are documented in the [changelog](https://your-tools.github.io/tsrc/changelog/).\n\n## Contributing\n\nWe welcome feedback, [bug reports](https://github.com/your-tools/tsrc/issues), and bug fixes in the form of [pull requests](https://github.com/your-tools/tsrc/pulls).\n\nDetailed instructions can be found [in the documentation](https://your-tools.github.io/tsrc).\n\n## License\n\ntsrc is licensed under a [BSD 3-Clause license](https://github.com/your-tools/tsrc/blob/main/LICENSE).\n\n## History\n\nThis project was originally hosted on the [TankerHQ](https://github.com/TankerHQ) organization, which was [dmerejkowsky](https://github.com/dmerejkowsky)'s employer from 2016 to 2021. They kindly agreed to give back ownership of this project to Dimitri in 2021 - thanks! Dimitri later on shared this project even more by moving it to the [your-tools](https://github.com/your-tools) organization.\n",
    "bugtrack_url": null,
    "license": "BSD-3-Clause",
    "summary": "Manage groups of git repositories",
    "version": "3.0.1",
    "project_urls": {
        "Changelog": "https://your-tools.github.io/tsrc/changelog/",
        "Documentation": "https://your-tools.github.io/tsrc",
        "Homepage": "https://github.com/your-tools/tsrc",
        "Issues": "https://github.com/your-tools/tsrc/issues",
        "Repository": "https://github.com/your-tools/tsrc"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "574be915360a60f01270836dbd2a67048019c9b482d4eb4fa222ef982889a355",
                "md5": "f717a15a9c04ec5752570712102df99d",
                "sha256": "feae5effbcf7fa2fcd8948afaec1a12d9614bd54540ebd23147204d46d6479f8"
            },
            "downloads": -1,
            "filename": "tsrc-3.0.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "f717a15a9c04ec5752570712102df99d",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8,<4.0",
            "size": 67796,
            "upload_time": "2023-12-26T14:50:26",
            "upload_time_iso_8601": "2023-12-26T14:50:26.956610Z",
            "url": "https://files.pythonhosted.org/packages/57/4b/e915360a60f01270836dbd2a67048019c9b482d4eb4fa222ef982889a355/tsrc-3.0.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "817f5fa93b54dd2e3387ac05ddad145e066b3466be609c71a83e870174dc3986",
                "md5": "5a229e2bc45c3fd3fe8ef7e85d5be7e3",
                "sha256": "17ac5fccb7682b994aeb9f1d5c7d5b8a640758250aad5142064674b9d72ed114"
            },
            "downloads": -1,
            "filename": "tsrc-3.0.1.tar.gz",
            "has_sig": false,
            "md5_digest": "5a229e2bc45c3fd3fe8ef7e85d5be7e3",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8,<4.0",
            "size": 50227,
            "upload_time": "2023-12-26T14:50:29",
            "upload_time_iso_8601": "2023-12-26T14:50:29.030681Z",
            "url": "https://files.pythonhosted.org/packages/81/7f/5fa93b54dd2e3387ac05ddad145e066b3466be609c71a83e870174dc3986/tsrc-3.0.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-12-26 14:50:29",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "your-tools",
    "github_project": "tsrc",
    "travis_ci": false,
    "coveralls": true,
    "github_actions": true,
    "lcname": "tsrc"
}
        
Elapsed time: 0.35514s