summaryrefslogtreecommitdiff
path: root/gitCheckout.go
blob: 0602de9e7035c9bb1aafa4fb7656870b97d41708 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
package forgepb

func (f *Forge) GitPull() bool {
	f.Repos.RillGitPull(5, 5)
	return true
}

/*
func (f *Forge) CheckoutDevel() bool {
	log.Log(WARN, "running git checkout devel everwhere")
	var failed int = 0
	var count int = 0
	all := f.Repos.SortByFullPath()
	for all.Scan() {
		repo := all.Next()
		count += 1
		if repo.CheckoutDevel() {
			// checkout ok
		} else {
			dname := repo.GetDevelBranchName()
			if err := f.makeBranch(repo, dname); err != nil {
				log.Info(repo.GetGoPath(), "can not make devel branch", dname)
				failed += 1
			}
		}
	}
	log.Log(WARN, "Ran git checkout in", count, "repos. failure count =", failed)
	return true
}

func (f *Forge) MakeDevelBranch(repo *gitpb.Repo) error {
	dname := repo.GetDevelBranchName()
	if dname == "" {
		dname = f.configDevelBranchName(repo)
	}
	if err := f.makeBranch(repo, dname); err != nil {
		return err
	}
	repo.DevelBranchName = dname
	return nil
}

func (f *Forge) MakeUserBranch(repo *gitpb.Repo) error {
	uname := repo.GetUserBranchName()
	if uname == "" {
		uname = f.configUserBranchName(repo)
	}
	if err := f.makeBranch(repo, uname); err != nil {
		return err
	}
	repo.UserBranchName = uname
	return nil
}

func (f *Forge) makeBranch(repo *gitpb.Repo, bname string) error {
	if repo.IsLocalBranch(bname) {
		// branch already exists in refs/heads/
		return nil
	}
	if repo.IsBranch(bname) {
		// branch already exists refs/remotes/
		return nil
	} else {
		log.Info("makeBranch() says", bname, "does not exist")
		loop := repo.Tags.All()
		for loop.Scan() {
			t := loop.Next()
			log.Info("LocalTagExists() tag:", t.Refname)
		}
	}
	mname := repo.GetMasterBranchName()
	cname := repo.GetCurrentBranchName()
	if mname != cname {
		return errors.New("can only make branches from master branch")
	}
	cmd := []string{"git", "branch", bname}
	if err := repo.StrictRun(cmd); err != nil {
		return err
	}
	return nil
}
*/