func rebase(currentBranch, parentBranch string) ([]*git.Commit, error) { // Tell the user what is happening. task := fmt.Sprintf("Rebase branch '%v' onto '%v'", currentBranch, parentBranch) log.Run(task) // Do the rebase. if err := git.Rebase(parentBranch); err != nil { ex := errs.Log(errs.NewError(task, err)) asciiart.PrintGrimReaper("GIT REBASE FAILED") fmt.Printf(`Git failed to rebase your branch onto '%v'. The repository might have been left in the middle of the rebase process. In case you do not know how to handle this, just execute $ git rebase --abort to make your repository clean again. In any case, you have to rebase your current branch onto '%v' if you want to continue and post a review request. In the edge cases you can as well use -no_rebase to skip this step, but try not to do it. `, parentBranch, parentBranch) return nil, ex } // Reload the commits. task = "Get the commits to be posted for code review, again" commits, err := git.ShowCommitRange(parentBranch + "..") if err != nil { return nil, errs.NewError(task, err) } // Return new commits. return commits, nil }
func main() { // Set up the identification command line flag. hooks.IdentifyYourself() // Tell the user what is happening. fmt.Println("---> Running SalsaFlow pre-push hook") // The hook is always invoked as `pre-push <remote-name> <push-url>`. if len(os.Args) != 3 { fmt.Fprintf(os.Stderr, "Usage: %v <remote-name> <push-url>\n", os.Args[0]) errs.Fatal(fmt.Errorf("invalid arguments: %#v\n", os.Args[1:])) } // Run the main function. if err := run(os.Args[1], os.Args[2]); err != nil { if err != prompt.ErrCanceled { fmt.Println() errs.Log(err) } asciiart.PrintGrimReaper("PUSH ABORTED") os.Exit(1) } // Insert an empty line before git push output. fmt.Println() }
func main() { // Set up the identification command line flag. hooks.IdentifyYourself() // Tell the user what is happening. fmt.Println("---> Running SalsaFlow commit-msg hook") // The hook is always invoked as `commit-msg <message-filename>`. if len(os.Args) != 2 { fmt.Fprintf(os.Stderr, "Usage: %v <message-filename>\n", os.Args[0]) errs.Fatal(fmt.Errorf("invalid arguments: %#v\n", os.Args[1:])) } // Run the main function. if err := run(os.Args[1]); err != nil { asciiart.PrintGrimReaper("COMMIT ABORTED") errs.Fatal(err) } }