code: func (n *Node) UpdateByVcs(vcs string) error {
  	switch vcs {
  	case "git":
  		branch, stderr, err := base.ExecCmdDir(n.InstallGopath,
  			"git", "rev-parse", "--abbrev-ref", "HEAD")
  		if err != nil {
  			log.Error("", "Error occurs when 'git rev-parse --abbrev-ref HEAD'")
  			log.Error("", "\t"+stderr)
  			return errors.New(stderr)
  		}
  		branch = strings.TrimSpace(branch)
  
  		_, stderr, err = base.ExecCmdDir(n.InstallGopath,
  			"git", "pull", "origin", branch)
  		if err != nil {
  			log.Error("", "Error occurs when 'git pull origin "+branch+"'")
  			log.Error("", "\t"+stderr)
  			return errors.New(stderr)
  		}
  	case "hg":
  		_, stderr, err := base.ExecCmdDir(n.InstallGopath,
  			"hg", "pull")
  		if err != nil {
  			log.Error("", "Error occurs when 'hg pull'")
  			log.Error("", "\t"+stderr)
  			return errors.New(stderr)
  		}
  
  		_, stderr, err = base.ExecCmdDir(n.InstallGopath,
  			"hg", "up")
  		if err != nil {
  			log.Error("", "Error occurs when 'hg up'")
  			log.Error("", "\t"+stderr)
  			return errors.New(stderr)
  		}
  	case "svn":
  		_, stderr, err := base.ExecCmdDir(n.InstallGopath,
  			"svn", "update")
  		if err != nil {
  			log.Error("", "Error occurs when 'svn update'")
  			log.Error("", "\t"+stderr)
  			return errors.New(stderr)
  		}
  	}
  	return nil
  }
docs: // If vcs has been detected, use corresponding command to update package.