private Path FindTopLevelDirectory(string directory) { try { var app = new GitApplication(directory); return app.Execute(new RevParse()); } catch { return null; } }
public void CloseRepository() { DisposeWatcher(); Git = new GitApplication(null); IsGitRepository = false; OnRepositoryChanged(null); }
public void OpenRepositoryAt(Path path) { DisposeWatcher(); var repositoryRoot = FindTopLevelDirectory(path); Git = new GitApplication(repositoryRoot ?? path); RepositoryDirectory = BaseDirectory.Combine(".git"); IsGitRepository = !ReferenceEquals(repositoryRoot, null); if (!IsGitRepository) Log.Info("Directory {0} is not in a Git working tree", path); else { Log.Debug("Found Git repository at {0}", repositoryRoot); CreateFileWatcher(); } // Notify everyone that the repository has changed OnRepositoryChanged(null); }
public void CreateRepository() { Git = new GitApplication(Root.FullName); Git.Execute(new Init()); }