func (b *AbstractShell) writeFetchCmd(w ShellWriter, build *common.Build, projectDir string, gitDir string) { depth := build.GetGitDepth() w.IfDirectory(gitDir) if depth != "" { w.Notice("Fetching changes for %s with git depth set to %s...", build.RefName, depth) } else { w.Notice("Fetching changes...") } w.Cd(projectDir) w.Command("git", "clean", "-ffdx") w.Command("git", "reset", "--hard") w.Command("git", "remote", "set-url", "origin", build.RepoURL) if depth != "" { var refspec string if build.Tag { refspec = "+refs/tags/" + build.RefName + ":refs/tags/" + build.RefName } else { refspec = "+refs/heads/" + build.RefName + ":refs/remotes/origin/" + build.RefName } w.Command("git", "fetch", "--depth", depth, "origin", "--prune", refspec) } else { w.Command("git", "fetch", "origin", "--prune", "+refs/heads/*:refs/remotes/origin/*", "+refs/tags/*:refs/tags/*") } w.Else() b.writeCloneCmd(w, build, projectDir) w.EndIf() }
func (b *AbstractShell) writeCloneCmd(w ShellWriter, build *common.Build, projectDir string) { w.RmDir(projectDir) if depth := build.GetGitDepth(); depth != "" { w.Notice("Cloning repository for %s with git depth set to %s...", build.RefName, depth) w.Command("git", "clone", build.RepoURL, projectDir, "--depth", depth, "--branch", build.RefName) } else { w.Notice("Cloning repository...") w.Command("git", "clone", build.RepoURL, projectDir) } w.Cd(projectDir) }