public async void OnAmendClickedCommand(object parameter) { if (_gitRepository.TryGetTarget(out IGitRepository gitRepository) == false) { return; } if (IsAmendCommit == false) { return; } string cmd = GitCommandCreator.GetLastCommitMessage(); List <string> lines = await gitRepository.CreateGitRunner().RunAsync(cmd); if (lines.Count < 2) { UIService.ShowMessage("Invalid HEAD commit message"); return; } // remove empty last line if (string.IsNullOrEmpty(lines[lines.Count - 1])) { lines.RemoveAt(lines.Count - 1); } string lastCommitMessage = string.Join(Environment.NewLine, lines); string showMessage = $"{lastCommitMessage}{Environment.NewLine}{Environment.NewLine}Use above HEAD message as amend commit message?"; if (UIService.ShowMessageWithYesNo(showMessage) == System.Windows.MessageBoxResult.Yes) { CommitMessage = lastCommitMessage; NotifyPropertyChanged("CommitMessage"); } }
public void CreateBranch(string teamName, string tfsWorkItemID, string branchName, string selectedMainBranch, string versionNumber) { if (string.IsNullOrWhiteSpace(versionNumber)) { SendInformationToLogger("Version number is null", false); return; } string selectedTeam = StringHandler.StringInputChecker(teamName); string selectedTaskID = StringHandler.StringInputChecker(tfsWorkItemID); string selectedBranchName = StringHandler.StringInputChecker(branchName); (string InputLog, bool validatorOutcome) = InputValidator.InputIsValid(selectedTeam, selectedTaskID, selectedBranchName); SendInformationToLogger(InputLog, validatorOutcome); if (!validatorOutcome) { return; } (WorkItem tfsWorkItem, string logMessage, bool tfsWorkItemState) = ItemHandler.VerifyAndReceiveWorkItem(selectedTaskID); SendInformationToLogger(logMessage, tfsWorkItemState); if (!tfsWorkItemState) { return; } if (!string.IsNullOrWhiteSpace(selectedBranchName)) { selectedBranchName = $"-{selectedBranchName}"; } (string path, string command) = GitCommandCreator.CreateCommand(selectedTeam, tfsWorkItem, selectedBranchName, versionNumber); commandHandler.GitCreateBranch(path, command, selectedMainBranch); }
public async Task <int> RefreshAndGetStashCount() { StashItems.Clear(); if (_gitRepository.TryGetTarget(out IGitRepository gitRepository) == false) { return(0); } string cmd = GitCommandCreator.StashList(); List <string> outputs = await gitRepository.CreateGitRunner().RunAsync(cmd); foreach (string line in outputs) { if (string.IsNullOrEmpty(line.Trim())) { continue; } var parsedResult = GitStashListParser.Parse(line); StashItem stashItem = new StashItem(); stashItem.Name = parsedResult.Name; stashItem.Base = parsedResult.Marker; stashItem.Description = parsedResult.Description; StashItems.Add(stashItem); } NotifyPropertyChanged("StashItems"); return(StashItems.Count); }
public void OnDiffStashedFileAgainstWorkingFileCommand(object sender) { if (_gitRepository.TryGetTarget(out IGitRepository gitRepository) == false) { return; } if (SelectedStashItem == null) { return; } if (SelectedStashedFileInfo == null) { return; } switch (SelectedStashedFileInfo.FileType) { case StashedFileInfo.StashedFileType.kModified: { string cmd = GitCommandCreator.StashDiffToolAgainstWorkingFileModified(SelectedStashItem.Name, SelectedStashedFileInfo.Filename); gitRepository.CreateGitRunner().RunWithoutWaiting(cmd); return; } case StashedFileInfo.StashedFileType.kUntracked: { string cmd = GitCommandCreator.StashDiffToolAgainstWorkingFileUntracked(SelectedStashItem.Name, SelectedStashedFileInfo.Filename); gitRepository.CreateGitRunner().RunWithoutWaiting(cmd); return; } } System.Diagnostics.Debug.Assert(false, "Not implemented"); }
public void OnPopLastCommand(object sender) { if (_gitRepository.TryGetTarget(out IGitRepository gitRepository) == false) { return; } string cmd = GitCommandCreator.StashPopLast(); gitRepository.CreateGitRunner().RunInConsoleProgressWindow(cmd); gitRepository.Refresh(); }
public void OnResetMixedCommand(object parameter) { if (_gitRepository.TryGetTarget(out IGitRepository gitRepository) == false) { return; } if (SelectedHistoryStatus == null) { return; } string gitCommand = GitCommandCreator.ResetMixed(SelectedHistoryStatus.CommitId); gitRepository.CreateGitRunner().RunInConsoleProgressWindow(gitCommand); gitRepository.Refresh(); }
public void OnDeleteStashCommand(object sender) { if (_gitRepository.TryGetTarget(out IGitRepository gitRepository) == false) { return; } if (SelectedStashItem == null) { return; } string cmd = GitCommandCreator.DeleteStash(SelectedStashItem.Name); gitRepository.CreateGitRunner().RunInConsoleProgressWindow(cmd); gitRepository.Refresh(); }
public async Task Refresh() { if (_gitRepository.TryGetTarget(out var gitRepository) == false) { System.Diagnostics.Debug.Assert(false); return; } TagInfos.Clear(); string cmd = GitCommandCreator.ListTag(); foreach (var tagInfo in TagParser.Parse(await gitRepository.CreateGitRunner().RunAsync(cmd))) { TagInfos.Add(tagInfo); } NotifyPropertyChanged("TagInfos"); }
public void OnPushAllCommand(object sender) { if (_gitRepository.TryGetTarget(out IGitRepository gitRepository) == false) { return; } string stashMessage = UIService.AskAndGetString("Enter stash message", ""); if (string.IsNullOrEmpty(stashMessage)) { return; } string cmd = GitCommandCreator.StashPushAll(stashMessage); gitRepository.CreateGitRunner().RunInConsoleProgressWindow(cmd); gitRepository.Refresh(); }
public void OnDeleteTagCommand(object sender) { if (_gitRepository.TryGetTarget(out var gitRepository) == false) { System.Diagnostics.Debug.Assert(false); return; } if (SelectedTag == null) { return; } string tagName = SelectedTag.Name; string cmd = GitCommandCreator.DeleteTag(tagName); gitRepository.CreateGitRunner().RunInConsoleProgressWindow(cmd); gitRepository.Refresh(); }
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture) { if (values == null) { return(""); } RemoteTabViewModel remoteTabViewModel = (RemoteTabViewModel)values[0]; RemoteInfo selectedRemoteInfo = (RemoteInfo)values[1]; if (selectedRemoteInfo == null) { return(""); } string cmd = GitCommandCreator.GetRemoteDetail(selectedRemoteInfo.Name); List <string> lines = remoteTabViewModel.GitRepo.CreateGitRunner().Run(cmd); return(string.Join(Environment.NewLine, lines)); }
public void OnSwitchBranchCommand(object sender) { if (_gitRepository.TryGetTarget(out IGitRepository gitRepository) == false) { System.Diagnostics.Debug.Assert(false); return; } if (SelectedBranch == null) { return; } string branchName = SelectedBranch.Name; string cmd = GitCommandCreator.SwitchBranch(branchName); gitRepository.CreateGitRunner().RunInConsoleProgressWindow(cmd); gitRepository.Refresh(); }
public async Task Refresh() { if (_gitRepository.TryGetTarget(out IGitRepository gitRepository) == false) { return; } RemoteInfos.Clear(); string cmd = GitCommandCreator.ListRemote(); List <string> lines = await gitRepository.CreateGitRunner().RunAsync(cmd); List <RemoteInfo> remoteInfos = RemoteParser.Parse(lines); foreach (RemoteInfo remoteInfo in remoteInfos) { RemoteInfos.Add(remoteInfo); } NotifyPropertyChanged("RemoteInfos"); }
public void OnResetHardCommand(object parameter) { if (_gitRepository.TryGetTarget(out IGitRepository gitRepository) == false) { return; } if (SelectedHistoryStatus == null) { return; } var result = UIService.ShowMessageWithOKCancel("Reset hard can affect on working directory. Continue?"); if (result != MessageBoxResult.OK) { return; } string gitCommand = GitCommandCreator.ResetHard(SelectedHistoryStatus.CommitId); gitRepository.CreateGitRunner().RunInConsoleProgressWindow(gitCommand); gitRepository.Refresh(); }