Просмотр исходного кода

Support non-master default branch

Yasuhiro Matsumoto 5 лет назад
Родитель
Сommit
4a3c5e7ac2
1 измененных файлов с 6 добавлено и 3 удалено
  1. 6 3
      plug.vim

+ 6 - 3
plug.vim

@@ -106,7 +106,7 @@ if s:is_win && &shellslash
 else
   let s:me = resolve(expand('<sfile>:p'))
 endif
-let s:base_spec = { 'branch': 'master', 'frozen': 0 }
+let s:base_spec = { 'branch': '', 'frozen': 0 }
 let s:TYPE = {
 \   'string':  type(''),
 \   'list':    type([]),
@@ -649,7 +649,7 @@ function! s:parse_options(arg)
     call extend(opts, a:arg)
     for opt in ['branch', 'tag', 'commit', 'rtp', 'dir', 'as']
       if has_key(opts, opt)
-      \ && (type(opts[opt]) != s:TYPE.string || empty(opts[opt]))
+      \ && (type(opts[opt]) != s:TYPE.string || (opt != 'branch' && empty(opts[opt])))
         throw printf(opt_errfmt, opt, 'string')
       endif
     endfor
@@ -1206,7 +1206,10 @@ function! s:update_finish()
         call s:log4(name, 'Checking out '.tag)
         let out = s:system('git checkout -q '.plug#shellescape(tag).' -- 2>&1', spec.dir)
       else
-        let branch = get(spec, 'branch', 'master')
+        let branch = get(spec, 'branch', '')
+        if empty(branch)
+          let branch = s:git_get_branch(spec.dir)
+        endif
         call s:log4(name, 'Merging origin/'.s:esc(branch))
         let out = s:system('git checkout -q '.plug#shellescape(branch).' -- 2>&1'
               \. (has_key(s:update.new, name) ? '' : ('&& git merge --ff-only '.plug#shellescape('origin/'.branch).' 2>&1')), spec.dir)