// Path: src/main/java/gitflow/GitflowInitOptions.java
// public class GitflowInitOptions {
//     private boolean useDefaults;
//     private String productionBranch;
//     private String developmentBranch;
//     private String featurePrefix;
//     private String releasePrefix;
//     private String hotfixPrefix;
//     private String bugfixPrefix;
//     private String supportPrefix;
//     private String versionPrefix;
// 
//     public boolean isUseDefaults() {
//         return useDefaults;
//     }
// 
//     public void setUseDefaults(boolean useDefaults) {
//         this.useDefaults = useDefaults;
//     }
// 
//     public String getProductionBranch() {
//         return productionBranch;
//     }
// 
//     public void setProductionBranch(String productionBranch) {
//         this.productionBranch = productionBranch;
//     }
// 
//     public String getDevelopmentBranch() {
//         return developmentBranch;
//     }
// 
//     public void setDevelopmentBranch(String developmentBranch) {
//         this.developmentBranch = developmentBranch;
//     }
// 
//     public String getFeaturePrefix() {
//         return featurePrefix;
//     }
// 
//     public void setFeaturePrefix(String featurePrefix) {
//         this.featurePrefix = featurePrefix;
//     }
// 
//     public String getReleasePrefix() {
//         return releasePrefix;
//     }
// 
//     public void setReleasePrefix(String releasePrefix) {
//         this.releasePrefix = releasePrefix;
//     }
// 
//     public String getHotfixPrefix() {
//         return hotfixPrefix;
//     }
// 
//     public void setHotfixPrefix(String hotfixPrefix) {
//         this.hotfixPrefix = hotfixPrefix;
//     }
// 
//     public String getSupportPrefix() {
//         return supportPrefix;
//     }
// 
//     public void setSupportPrefix(String supportPrefix) {
//         this.supportPrefix = supportPrefix;
//     }
// 
//     public String getBugfixPrefix() {
//         return bugfixPrefix;
//     }
// 
//     public void setBugfixPrefix(String bugfixPrefix) {
//         this.bugfixPrefix = bugfixPrefix;
//     }
// 
//     public String getVersionPrefix() {
//         return versionPrefix;
//     }
// 
//     public void setVersionPrefix(String versionPrefix) {
//         this.versionPrefix = versionPrefix;
//     }
// }


import com.intellij.openapi.actionSystem.AnActionEvent;
import git4idea.commands.GitCommandResult;
import git4idea.repo.GitRepository;
import gitflow.GitflowInitOptions;
import org.jetbrains.annotations.NotNull;
package gitflow.actions;


public class ReInitRepoAction extends InitRepoAction {
    ReInitRepoAction() {
        super("Re-init Repo");
    }

    ReInitRepoAction(GitRepository repo) {
        super(repo, "Re-init Repo");
    }

    @Override
    public void update(@NotNull AnActionEvent e) {
        gitflow.GitflowBranchUtil branchUtil = gitflow.GitflowBranchUtilManager.getBranchUtil(myRepo);

        // Only show when gitflow is setup
        if (branchUtil !=null && branchUtil.hasGitflow()) {
            e.getPresentation().setEnabledAndVisible(true);
        } else {
            e.getPresentation().setEnabledAndVisible(false);
        }
    }

    @Override
    protected String getSuccessMessage() {
        return "Re-initialized gitflow in repo " + myRepo.getRoot().getPresentableName();
    }

    @Override
// Path: src/main/java/gitflow/GitflowInitOptions.java
// public class GitflowInitOptions {
//     private boolean useDefaults;
//     private String productionBranch;
//     private String developmentBranch;
//     private String featurePrefix;
//     private String releasePrefix;
//     private String hotfixPrefix;
//     private String bugfixPrefix;
//     private String supportPrefix;
//     private String versionPrefix;
// 
//     public boolean isUseDefaults() {
//         return useDefaults;
//     }
// 
//     public void setUseDefaults(boolean useDefaults) {
//         this.useDefaults = useDefaults;
//     }
// 
//     public String getProductionBranch() {
//         return productionBranch;
//     }
// 
//     public void setProductionBranch(String productionBranch) {
//         this.productionBranch = productionBranch;
//     }
// 
//     public String getDevelopmentBranch() {
//         return developmentBranch;
//     }
// 
//     public void setDevelopmentBranch(String developmentBranch) {
//         this.developmentBranch = developmentBranch;
//     }
// 
//     public String getFeaturePrefix() {
//         return featurePrefix;
//     }
// 
//     public void setFeaturePrefix(String featurePrefix) {
//         this.featurePrefix = featurePrefix;
//     }
// 
//     public String getReleasePrefix() {
//         return releasePrefix;
//     }
// 
//     public void setReleasePrefix(String releasePrefix) {
//         this.releasePrefix = releasePrefix;
//     }
// 
//     public String getHotfixPrefix() {
//         return hotfixPrefix;
//     }
// 
//     public void setHotfixPrefix(String hotfixPrefix) {
//         this.hotfixPrefix = hotfixPrefix;
//     }
// 
//     public String getSupportPrefix() {
//         return supportPrefix;
//     }
// 
//     public void setSupportPrefix(String supportPrefix) {
//         this.supportPrefix = supportPrefix;
//     }
// 
//     public String getBugfixPrefix() {
//         return bugfixPrefix;
//     }
// 
//     public void setBugfixPrefix(String bugfixPrefix) {
//         this.bugfixPrefix = bugfixPrefix;
//     }
// 
//     public String getVersionPrefix() {
//         return versionPrefix;
//     }
// 
//     public void setVersionPrefix(String versionPrefix) {
//         this.versionPrefix = versionPrefix;
//     }
// }


// Path: src/main/java/gitflow/actions/ReInitRepoAction.java
import com.intellij.openapi.actionSystem.AnActionEvent;
import git4idea.commands.GitCommandResult;
import git4idea.repo.GitRepository;
import gitflow.GitflowInitOptions;
import org.jetbrains.annotations.NotNull;

package gitflow.actions;


public class ReInitRepoAction extends InitRepoAction {
    ReInitRepoAction() {
        super("Re-init Repo");
    }

    ReInitRepoAction(GitRepository repo) {
        super(repo, "Re-init Repo");
    }

    @Override
    public void update(@NotNull AnActionEvent e) {
        gitflow.GitflowBranchUtil branchUtil = gitflow.GitflowBranchUtilManager.getBranchUtil(myRepo);

        // Only show when gitflow is setup
        if (branchUtil !=null && branchUtil.hasGitflow()) {
            e.getPresentation().setEnabledAndVisible(true);
        } else {
            e.getPresentation().setEnabledAndVisible(false);
        }
    }

    @Override
    protected String getSuccessMessage() {
        return "Re-initialized gitflow in repo " + myRepo.getRoot().getPresentableName();
    }

    @Override
    protected GitCommandResult executeCommand(GitflowInitOptions initOptions,