|
| 1 | +`vcspull` - synchronize your repos. built on |
| 2 | +[libvcs](https://github.com/vcs-python/libvcs) |
| 3 | + |
| 4 | +[](http://badge.fury.io/py/vcspull) |
| 5 | +[](https://github.com/vcs-python/vcspull/actions?query=workflow%3A%22Publish+Docs%22) |
| 6 | +[](https://github.com/vcs-python/vcspull/actions?query=workflow%3A%22tests%22) |
| 7 | +[](https://codecov.io/gh/vcs-python/vcspull) |
| 8 | + |
| 9 | + |
| 10 | +Manage your commonly used repos from YAML / JSON manifest(s). Compare to |
| 11 | +[myrepos](http://myrepos.branchable.com/). |
| 12 | + |
| 13 | +Great if you use the same repos at the same locations across multiple |
| 14 | +machines or want to clone / update a pattern of repos without having to |
| 15 | +`cd` into each one. |
| 16 | + |
| 17 | +- clone /update to the latest repos with `$ vcspull` |
| 18 | +- use filters to specify a location, repo url or pattern in the |
| 19 | + manifest to clone / update |
| 20 | +- supports svn, git, hg version control systems |
| 21 | +- automatically checkout fresh repositories |
| 22 | +- [Documentation](https://vcspull.git-pull.com/) and |
| 23 | + [Examples](https://vcspull.git-pull.com/examples.html). |
| 24 | +- supports [pip](http://www.pip-installer.org/)-style URL's |
| 25 | + ([RFC3986](http://tools.ietf.org/html/rfc3986.html)-based [url |
| 26 | + scheme](http://www.pip-installer.org/logic.html#vcs-support)) |
| 27 | + |
| 28 | +# how to |
| 29 | + |
| 30 | +## install |
| 31 | + |
| 32 | +```sh |
| 33 | +$ pip install --user vcspull |
| 34 | +``` |
| 35 | + |
| 36 | +## configure |
| 37 | + |
| 38 | +add repos you want vcspull to manage to `~/.vcspull.yaml`. |
| 39 | + |
| 40 | +_vcspull does not currently scan for repos on your system, but it may in |
| 41 | +the future_ |
| 42 | + |
| 43 | +```yaml |
| 44 | +~/code/: |
| 45 | + flask: "git+https://github.com/mitsuhiko/flask.git" |
| 46 | +~/study/c: |
| 47 | + awesome: "git+git://git.naquadah.org/awesome.git" |
| 48 | +~/study/data-structures-algorithms/c: |
| 49 | + libds: "git+https://github.com/zhemao/libds.git" |
| 50 | + algoxy: |
| 51 | + repo: "git+https://github.com/liuxinyu95/AlgoXY.git" |
| 52 | + remotes: |
| 53 | + tony: "git+ssh://[email protected]/tony/AlgoXY.git" |
| 54 | +``` |
| 55 | +
|
| 56 | +(see the author's |
| 57 | +[.vcspull.yaml](https://github.com/tony/.dot-config/blob/master/.vcspull.yaml), |
| 58 | +more [examples](https://vcspull.git-pull.com/examples.html).) |
| 59 | +
|
| 60 | +next, on other machines, copy your `$HOME/.vcspull.yaml` file or |
| 61 | +`$HOME/.vcspull/` directory them and you can clone your repos |
| 62 | +consistently. vcspull automatically handles building nested directories. |
| 63 | +Updating already cloned/checked out repos is done automatically if they |
| 64 | +already exist. |
| 65 | + |
| 66 | +## clone / update your repos |
| 67 | + |
| 68 | +```bash |
| 69 | +$ vcspull |
| 70 | +``` |
| 71 | + |
| 72 | +keep nested VCS repositories updated too, lets say you have a mercurial |
| 73 | +or svn project with a git dependency: |
| 74 | + |
| 75 | +`external_deps.yaml` in your project root, (can be anything): |
| 76 | + |
| 77 | +```yaml |
| 78 | +./vendor/: |
| 79 | + sdl2pp: "git+https://github.com/libSDL2pp/libSDL2pp.git" |
| 80 | +``` |
| 81 | + |
| 82 | +clone / update repos: |
| 83 | + |
| 84 | + $ vcspull -c external_deps.yaml |
| 85 | + |
| 86 | +See the [Quickstart](https://vcspull.git-pull.com/quickstart.html) for |
| 87 | +more. |
| 88 | + |
| 89 | +## pulling specific repos |
| 90 | + |
| 91 | +have a lot of repos? |
| 92 | + |
| 93 | +you can choose to update only select repos through |
| 94 | +[fnmatch](http://pubs.opengroup.org/onlinepubs/009695399/functions/fnmatch.html) |
| 95 | +patterns. remember to add the repos to your `~/.vcspull.{json,yaml}` |
| 96 | +first. |
| 97 | + |
| 98 | +The patterns can be filtered by by directory, repo name or vcs url. |
| 99 | + |
| 100 | +```bash |
| 101 | +# any repo starting with "fla" |
| 102 | +$ vcspull "fla*" |
| 103 | +# any repo with django in the name |
| 104 | +$ vcspull "*django*" |
| 105 | +
|
| 106 | +# search by vcs + url |
| 107 | +# since urls are in this format <vcs>+<protocol>://<url> |
| 108 | +$ vcspull "git+*" |
| 109 | +
|
| 110 | +# any git repo with python in the vcspull |
| 111 | +$ vcspull "git+*python* |
| 112 | +
|
| 113 | +# any git repo with django in the vcs url |
| 114 | +$ vcspull "git+*django*" |
| 115 | +
|
| 116 | +# all repositories in your ~/code directory |
| 117 | +$ vcspull "$HOME/code/*" |
| 118 | +``` |
| 119 | + |
| 120 | +<img src="https://raw.githubusercontent.com/vcs-python/vcspull/master/docs/_static/vcspull-demo.gif" class="align-center" style="width:45.0%" alt="image" /> |
| 121 | + |
| 122 | +# Donations |
| 123 | + |
| 124 | +Your donations fund development of new features, testing and support. |
| 125 | +Your money will go directly to maintenance and development of the |
| 126 | +project. If you are an individual, feel free to give whatever feels |
| 127 | +right for the value you get out of the project. |
| 128 | + |
| 129 | +See donation options at <https://git-pull.com/support.html>. |
| 130 | + |
| 131 | +# More information |
| 132 | + |
| 133 | +- Python support: >= 3.6, pypy |
| 134 | +- VCS supported: git(1), svn(1), hg(1) |
| 135 | +- Source: <https://github.com/vcs-python/vcspull> |
| 136 | +- Docs: <https://vcspull.git-pull.com> |
| 137 | +- Changelog: <https://vcspull.git-pull.com/history.html> |
| 138 | +- API: <https://vcspull.git-pull.com/api.html> |
| 139 | +- Issues: <https://github.com/vcs-python/vcspull/issues> |
| 140 | +- Test Coverage: <https://codecov.io/gh/vcs-python/vcspull> |
| 141 | +- pypi: <https://pypi.python.org/pypi/vcspull> |
| 142 | +- Open Hub: <https://www.openhub.net/p/vcspull> |
| 143 | +- License: [MIT](https://opensource.org/licenses/MIT). |
0 commit comments