File: git-bulk.md

package info (click to toggle)
git-extras 7.4.0-1
  • links: PTS
  • area: main
  • in suites: forky, sid
  • size: 2,120 kB
  • sloc: sh: 4,312; python: 994; makefile: 146
file content (133 lines) | stat: -rw-r--r-- 4,012 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
git-bulk(1) -- Run git commands on multiple repositories
========================================================

## SYNOPSIS

`git-bulk` [-g] [--no-follow-symlinks] [--no-follow-hidden] ([-a]|[-w &lt;ws-name&gt;]) &lt;git command&gt; <br/>
`git-bulk` --addworkspace &lt;ws-name&gt; &lt;ws-root-directory&gt; (--from &lt;URL or file&gt;) <br/>
`git-bulk` --removeworkspace &lt;ws-name&gt; <br/>
`git-bulk` --addcurrent &lt;ws-name&gt; <br/>
`git-bulk` --purge <br/>
`git-bulk` --listall

## DESCRIPTION

git bulk adds convenient support for operations that you want to execute on multiple git repositories.

- simply register workspaces that contain multiple git repos in their directory structure
- run any git command on the repositories of the registered workspaces in one command to `git bulk`
- use the "guarded mode" to check on each execution

## OPTIONS

  -a

  Run a git command on all workspaces and their repositories.

  -g

  Ask the user for confirmation on every execution.

  --no-follow-symlinks

  Do not traverse symbolic links under the workspace when searching for git repositories.

  --no-follow-hidden

  Do not traverse hidden (dotted) directories under the workspace when searching for git repositories.

  -w &lt;ws-name&gt;

  Run the git command on the specified workspace. The workspace must be registered.

  &lt;git command&gt;

  Any git Command you wish to execute on the repositories.

  --addworkspace &lt;ws-name&gt; &lt;ws-root-directory&gt; (--from &lt;URL or file&rt;gt;)

  Register a workspace for bulk operations. All repositories in the directories below &lt;ws-root-directory&gt; get registered under this workspace with the name &lt;ws-name&gt;. &lt;ws-root-directory&gt; must be absolute path.

  With option '--from' the URL to a single repository or a file containing multiple URLs can be added and they will be cloned directly into the workspace. Suitable for the initial setup of a multi-repo project.

  --removeworkspace &lt;ws-name&gt;

  Remove the workspace with the logical name &lt;ws-name&gt;.

  --addcurrent &lt;ws-name&gt;

  Adds the current directory as workspace to git bulk operations. The workspace is referenced with its logical name &lt;ws-name&gt;.

  git bulk --purge

  Removes all defined repository locations.

  git bulk --listall

  List all registered repositories.

## EXAMPLES

    Register a workspace so that git bulk knows about it using an absolute path:

    $ git bulk --addworkspace personal ~/workspaces/personal

    Or register a workspace using an environment variable pointing to an absolute path:

    $ git bulk --addworkspace personal '$PERSONAL_WORKSPACE'

    Use option --from in order to directly clone a repository or multiple repositories 

    $ git bulk --addworkspace personal ~/workspaces/personal --from https://github.com/tj/git-extras.git
    $ git bulk --addworkspace personal ~/workspaces/personal --from ~/repositories.txt

    repositories.txt
    ----------------------------------
    https://host-of-git/repo-1.git
    https://host-of-git/repo-2.git
    https://host-of-git/repo-3.git


    Register the current directory as a workspace to git bulk:

    $ git bulk --addcurrent personal

    List all registered workspaces:

    $ git bulk --listall

    Run a git command on the repositories of the current workspace:

    $ git bulk fetch

    Run a git command on the specified workspace and its repositories:

    $ git bulk -w personal fetch

    Run a git command but ask the user for confirmation on every execution (guarded mode):

    $ git bulk -g fetch

    Remove a registered workspace:

    $ git bulk --removeworkspace personal

    Remove all registered workspaces:

    $ git bulk --purge

## FILES

- `.gitconfig`: Store the `git-bulk` registered workspaces under the `bulkworkspaces` key.

## AUTHOR

Written by Niklas Schlimm &lt;<ns103@hotmail.de>&gt;

## REPORTING BUGS

&lt;https://github.com/nschlimm/git-bulk&gt;

## SEE ALSO

&lt;<https://github.com/tj/git-extras>&gt;