func (r *Repo) pull() error {

	// if not pulled, perform clone
	if !r.pulled {
		return r.clone()
	}

	// if latest tag config is set
	if r.Branch == latestTag {
		return r.checkoutLatestTag()
	}

	params := append([]string{"pull"}, append(r.PullArgs, "origin", r.Branch)...)
	var err error
	if err = r.gitCmd(params, r.Path); err == nil {
		r.pulled = true
		r.lastPull = time.Now()
		Logger().Printf("%v pulled.\n", r.URL)
		r.lastCommit, err = r.mostRecentCommit()
	}
	return err
}
func (r *Repo) pull() error {

	
	if !r.pulled {
		return r.clone()
	}

	
	if r.Branch == latestTag {
		return r.checkoutLatestTag()
	}

	params := append([]string{"pull"}, append(r.PullArgs, "origin", r.Branch)...)
	var err error
	if err = r.gitCmd(params, r.Path); err == nil {
		r.pulled = true
		r.lastPull = time.Now()
		Logger().Printf("%v pulled.\n", r.URL)
		r.lastCommit, err = r.mostRecentCommit()
	}
	return err
}
func ( r * Repo ) pull ( ) error { // if not pulled, perform clone if ! r . pulled { return r . clone ( ) } // if latest tag config is set if r . Branch == latestTag { return r . checkoutLatestTag ( ) } params := append ( [ ] string { " " } , append ( r . PullArgs , " " , r . Branch ) ... ) var err error if err = r . gitCmd ( params , r . Path ) ; err == nil { r . pulled = true r . lastPull = time . Now ( ) Logger ( ) . Printf ( " \n " , r . URL ) r . lastCommit , err = r . mostRecentCommit ( ) } return err }
// pull performs git pull, or git clone if repository does not exist.
pull performs git pull or git clone if repository does not exist .