Commit e6cc15b5f558ba66c1aa44af4f557c8140c8234e
1 parent
c46b6673e4
Fix local paths with branches not working.
Local bundles, if are recorded with a `--branch` option, should *always* be cloned.
Showing 2 changed files with 12 additions and 7 deletions Side-by-side Diff
README.mkd
... | ... | @@ -203,7 +203,7 @@ You can also specify a local directory on your file system as a bundle. In this |
203 | 203 | case, make sure the path you give is the absolute path (i.e., starts with a |
204 | 204 | `/`). Relative paths are not supported. If the repo you gave is a local |
205 | 205 | directory path, then it is not necessary that this path is a git repo. Please |
206 | -refer to the notes on `--no-local-repo` below. | |
206 | +refer to the notes on `--no-local-clone` below. | |
207 | 207 | |
208 | 208 | In addition to the above discussed arguments, `antigen-bundle` also takes a |
209 | 209 | `btype` keyword-only argument, that is used internally. You shouldn't be |
... | ... | @@ -238,8 +238,10 @@ creating a clone. For example, |
238 | 238 | |
239 | 239 | antigen-bundle /absolute/path/to/the/plugin --no-local-clone |
240 | 240 | |
241 | -Note that if the repo url is *not* an absolute local path, this argument has no | |
242 | -effect. | |
241 | +Note that if the repo url is *not* an absolute local path or a branch has been | |
242 | +specified with the `--branch` option, this argument has no effect. That is, | |
243 | +for this option to have any affect, the repo url must be an absolute local path | |
244 | +and no `--branch` should be specified. | |
243 | 245 | |
244 | 246 | Also, if the local path given as the url is not a git repo, then this |
245 | 247 | argument is forced as it doesn't makes sense to *clone* something that's not a |
antigen.zsh
... | ... | @@ -66,10 +66,13 @@ antigen-bundle () { |
66 | 66 | fi |
67 | 67 | |
68 | 68 | # The `make_local_clone` variable better represents whether there should be |
69 | - # a local clone made. If the url is a local absolute path and no_local_clone | |
70 | - # is true, then and only then, there should be no cloning taking place. | |
69 | + # a local clone made. For cloning to be avoided, firstly, the `$url` should | |
70 | + # be an absolute local path and `$branch` should be empty. In addition to | |
71 | + # these two conditions, either the `--no-local-clone` option should be | |
72 | + # given, or `$url` should not a git repo. | |
71 | 73 | local make_local_clone=true |
72 | - if [[ $url == /* && ( $no_local_clone == true || ! -d $url/.git ) ]]; then | |
74 | + if [[ $url == /* && -z $branch \ | |
75 | + && ( $no_local_clone == true || ! -d $url/.git ) ]]; then | |
73 | 76 | make_local_clone=false |
74 | 77 | fi |
75 | 78 | |
... | ... | @@ -82,7 +85,7 @@ antigen-bundle () { |
82 | 85 | fi |
83 | 86 | |
84 | 87 | # Load the plugin. |
85 | - -antigen-load "$url" "$loc" "$btype" "$make_local_clone" | |
88 | + -antigen-load "$url" "$loc" "$btype" "$make_local_clone" | |
86 | 89 | |
87 | 90 | } |
88 | 91 |