summaryrefslogtreecommitdiff
path: root/revert.go
blob: bf8689e296a50ebe480763cafb737490f19cfc88 (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
package gitpb

import "go.wit.com/log"

// reverts master to devel
// used in the unwind process of making GUI releases
func (repo *Repo) RevertMasterToDevel() bool {
	if repo.CheckDirty() {
		log.Info("sorry, it's still dirty")
		return false
	}

	curName := repo.GetCurrentBranchName()
	dName := repo.GetDevelBranchName()
	mName := repo.GetMasterBranchName()
	if curName != mName {
		log.Info("repo is not working from main branch", curName, "!=", mName)
		return false
	}

	log.Info("reset master to devel", curName, repo.GetGoPath())

	var all [][]string
	all = append(all, []string{"git", "checkout", dName}) // switch to the devel branch
	all = append(all, []string{"git", "branch", "-D", mName})
	all = append(all, []string{"git", "branch", mName}) // make a master branch based on devel
	all = append(all, []string{"git", "checkout", mName})
	all = append(all, []string{"git", "push", "--set-upstream", "--force", "origin", mName})

	// don't do anything with tags here
	// all = append(all, []string{"git", "tag", "--delete", release.version.String()})
	// all = append(all, []string{"git", "push", "--delete", "origin", release.version.String()})

	if repo.RunAll(all) {
		log.Info("EVERYTHING OK. RERELEASED", repo.GetGoPath())
		repo.ReloadCheck()
		return true
	}

	log.Info("SOMETHING FAILED")
	return false
}