public void GetGitChange_MoreChanges_Successful() { // Arrange IGitEngine gitEngine = new GitEngine(); gitRepoHelpers.AddUntrackedFileToRepoWithNumLines("fake.cs", 2); gitRepoHelpers.AddUntrackedFileToRepoWithNumLines("fake2.cs", 4); gitRepoHelpers.CommitFilesToRepo(); gitRepoHelpers.AddUntrackedFileToRepoWithNumLines("fake3.cs", 5); gitRepoHelpers.AddUntrackedFileToRepoWithNumLines("fake4.cs", 2); var commit = gitRepoHelpers.CommitFilesToRepo(); gitRepoHelpers.AddUntrackedFileToRepoWithNumLines("fake6.cs", 5); gitRepoHelpers.AddUntrackedFileToRepoWithNumLines("fake5.cs", 2); gitRepoHelpers.CommitFilesToRepo(); // Act var changes = gitEngine.GetGitChange( gitRepoHelpers.RepoPath, commit.Sha).ToArray(); // Assert Assert.NotEmpty(changes); Assert.Equal(2, changes.Length); Assert.Contains(changes, c => c.FilePath.Equals("fake3.cs", StringComparison.InvariantCultureIgnoreCase)); Assert.Contains(changes, c => c.FilePath.Equals("fake4.cs", StringComparison.InvariantCultureIgnoreCase)); }
private void MyContextMenu_ContextMenuOpening(object sender, System.ComponentModel.CancelEventArgs e) { CMMoveToChangelist.IsEnabled = MyDataGrid.SelectedItems.Count > 0; List <MenuItem> subMenu = new List <MenuItem>(); List <Changelist> changelists = GitEngine.Get().ModelTransient.Changelists; for (int i = 0; i < GitEngine.Get().ModelTransient.Changelists.Count; i++) { MenuItem mi = new MenuItem() { Header = $"{i} ({changelists[i].Files.Count} file[s]) {changelists[i].Description}", Tag = i }; mi.Click += CmSubMenuMoveToChangelist_Click; subMenu.Add(mi); } MenuItem mi2 = new MenuItem() { Header = $"<New changelist...>", Tag = -1 }; mi2.Click += CmSubMenuMoveToChangelist_Click; subMenu.Add(mi2); CMMoveToChangelist.Items = subMenu; }
/// <summary> /// Initializes a new instance of the <see cref="QuantifyClient"/> class. /// </summary> /// <param name="contextFilePath">The path of the context file.</param> public QuantifyClient( string contextFilePath) { var context = LoadContext(contextFilePath); prQuantifier = new PullRequestQuantifier(context); gitEngine = new GitEngine(); }
private void CmFindInFileTree_Click(object sender, RoutedEventArgs e) { FileAndStatus selectedFile = GetFirstSelectedFile(); if (selectedFile != null) { GitEngine.Get().SelectFileInFileTree(selectedFile.FileName); } }
private void CmFindInExplorer_Click(object sender, RoutedEventArgs e) { FileAndStatus selectedFile = GetFirstSelectedFile(); if (selectedFile != null) { // TODO: this doesn't work on windows, not sure why, it almost does though. Process.Start("explorer.exe", "/select, " + Path.Combine(GitEngine.Get().Repo.Info.WorkingDirectory, selectedFile.FileName)); } }
private void MyDataGrid_LoadingRow(object sender, DataGridRowEventArgs e) { FileAndStatus fileAndStatus = e.Row.DataContext as FileAndStatus; if (fileAndStatus != null) { int changelistIndex = GitEngine.Get().ModelTransient.GetChangelistForFile(fileAndStatus.FileName); ViewUtils.ColorRowByChangelist(e.Row, changelistIndex); } }
public void GetGitChanges_NoChangesNoExceptions() { // Setup IGitEngine gitEngine = new GitEngine(); // Act, Assert var exception = Record.Exception(() => gitEngine.GetGitChanges(Environment.CurrentDirectory)); Assert.Null(exception); }
private void CmDeleteChangelist_Click(object sender, RoutedEventArgs e) { List <CommitWrapper> cws = new List <CommitWrapper>(); IList selectedItems = DataGridCommitList.SelectedItems; for (int i = 0; i < selectedItems.Count; i++) { cws.Add(selectedItems[i] as CommitWrapper); } GitEngine.Get().DeleteChangelists(cws); }
public void GetGitChanges_ChangedModifiedRenamedFiles() { // Arrange IGitEngine gitEngine = new GitEngine(); gitRepoHelpers.AddUntrackedFileToRepoWithNumLines("fakeRename.cs", 2); gitRepoHelpers.CommitFilesToRepo(); gitRepoHelpers.RenameFile("fakeRename.cs", "fakeRename1.cs"); // Act var gitChanges = gitEngine.GetGitChanges(gitRepoHelpers.RepoPath).ToArray(); // Assert Assert.Single(gitChanges); Assert.Equal(2, gitChanges[0].AbsoluteLinesDeleted); Assert.Equal(GitChangeType.Renamed, gitChanges[0].ChangeType); }
private static async Task Quantify( IEnumerable <Organization> organizations, string clonePath) { var repositories = organizations.Select(o => o.Projects.Select(p => p.Repositories.Select(r => new { Organization = o.Name, Project = p.Name, Repository = r.Name }))) .SelectMany(a => a) .SelectMany(a => a); var gitEngine = new GitEngine(); var quantifyClient = new QuantifyClient(string.Empty); foreach (var repository in repositories) { var saveResultsToDatabase = new Dictionary <string, QuantifierResult>(); var repoPath = Path.Combine(clonePath, repository.Repository); var commitsSha1 = gitEngine.GetAllCommits(repoPath).Select(c => c.Sha).ToArray(); Console.WriteLine($"Total commits to evaluate : {commitsSha1.Length}. Repo name {repository.Repository}."); foreach (var commitSha1 in commitsSha1) { try { var quantifierResult = await quantifyClient.Compute(repoPath, commitSha1); saveResultsToDatabase[commitSha1] = quantifierResult; } catch (Exception e) { Console.WriteLine(e); } } await SaveToCsv( saveResultsToDatabase, Path.Combine(clonePath, $"{repository.Repository}_QuantifierResults.csv")); } }
public void GetGitChange_OneChange_Successful() { // Arrange IGitEngine gitEngine = new GitEngine(); gitRepoHelpers.AddUntrackedFileToRepoWithNumLines("fake.cs", 2); gitRepoHelpers.AddUntrackedFileToRepoWithNumLines("fake2.cs", 4); var commit = gitRepoHelpers.CommitFilesToRepo(); // Act var changes = gitEngine.GetGitChange( gitRepoHelpers.RepoPath, commit.Sha).ToArray(); // Assert Assert.NotEmpty(changes); Assert.Equal(2, changes.Length); }
public void GetGitHistoricalChangesToParent_Successful() { // Arrange IGitEngine gitEngine = new GitEngine(); gitRepoHelpers.AddUntrackedFileToRepoWithNumLines("fake.cs", 2); gitRepoHelpers.AddUntrackedFileToRepoWithNumLines("fake2.cs", 4); gitRepoHelpers.CommitFilesToRepo(); gitRepoHelpers.AddUntrackedFileToRepoWithNumLines("fake.cs", 5); gitRepoHelpers.AddUntrackedFileToRepoWithNumLines("fake2.cs", 2); // Act var commits = gitEngine.GetGitHistoricalChangesToParent(gitRepoHelpers.RepoPath).ToArray(); // Assert Assert.NotEmpty(commits); Assert.Equal(2, commits.Length); }
public void GetGitChanges_ChangedTrackedFiles() { // Arrange IGitEngine gitEngine = new GitEngine(); gitRepoHelpers.AddUntrackedFileToRepoWithNumLines("fake.cs", 2); gitRepoHelpers.AddUntrackedFileToRepoWithNumLines("fake2.cs", 4); gitRepoHelpers.CommitFilesToRepo(); gitRepoHelpers.AddUntrackedFileToRepoWithNumLines("fake.cs", 5); gitRepoHelpers.AddUntrackedFileToRepoWithNumLines("fake2.cs", 2); // Act var gitChanges = gitEngine.GetGitChanges(gitRepoHelpers.RepoPath).ToArray(); // Assert Assert.NotEmpty(gitChanges); Assert.Equal(2, gitChanges.Length); Assert.Equal(3, gitChanges[0].AbsoluteLinesAdded); Assert.Equal(2, gitChanges[1].AbsoluteLinesDeleted); }
private void CmSubMenuMoveToChangelist_Click(object sender, RoutedEventArgs e) { int changelistId = (int)(sender as MenuItem).Tag; string changelistDescription = null; if (changelistId == -1) { changelistId = -1; changelistDescription = "new changelist"; MessageBoxManager.GetMessageBoxStandardWindow("", "TODO: need an input box to specify this").Show(); return; /* * if (InputBox.Show("New changelist", "Enter a description for the new changelist", ref changelistDescription) != DialogResult.OK) * { * return; * } */ } GitEngine.Get().MoveFilesToChangelist(GetSelectedFiles(), changelistId, changelistDescription); }
public ViewModel_RepoInfo() { _SelectedRepoOrOption = Settings.Default.LastSelectedLocalRepo; Initialized = true; GitEngine.Get().StartTraversingNewRepo(_SelectedRepoOrOption); }
private void SpawnExternalDiff() { GitEngine.Get().SpawnExternalDiff(GetSelectedFiles()); }
public FileScanner(GitEngine gitEngine) { _gitEngine = gitEngine; }