protected override void ProcessRecord() { using (RepositoryParameter container = UseOrDiscoverRepository(Repository)) { LibGit2Sharp.Signature author; LibGit2Sharp.Signature committer; DateTimeOffset commitTime = DateTimeOffset.Now; DateTimeOffset authoredTime = Date.HasValue ? Date.Value : commitTime; if (Author != null) { author = ParseSignature(Author, authoredTime); } else { author = GetDefaultSignature(container.Repository, authoredTime); } committer = GetDefaultSignature(container.Repository, commitTime); Commit commit = container.Repository.Commit(Message, author, committer, new CommitOptions { AmendPreviousCommit = Amend }); if (PassThru) { WriteObject(commit); } } }
protected override void ProcessRecord() { using (RepositoryParameter container = UseOrDiscoverRepository(Repository)) { String[] paths = ArrayUtil.Combine(Path, LiteralPath); if (paths != null) { foreach (String path in paths) { FileStatus state = container.Repository.RetrieveStatus(path); WriteObject(new GitFileSystemStatusEntry(container.Repository.Info.WorkingDirectory, SessionState.Path.CurrentFileSystemLocation.Path, path, state)); } } else { RepositoryStatus status = container.Repository.RetrieveStatus(); foreach (StatusEntry entry in status) { WriteObject(new GitFileSystemStatusEntry(container.Repository.Info.WorkingDirectory, SessionState.Path.CurrentFileSystemLocation.Path, entry.FilePath, entry.State)); } } } }
protected RepositoryParameter UseOrDiscoverRepository(RepositoryParameter provided) { if (provided == null) { provided = DiscoverRepository(); } return(provided); }
protected override void ProcessRecord() { using (RepositoryParameter container = UseOrDiscoverRepository(Repository)) { foreach (Branch branch in container.Repository.Branches) { WriteObject(branch); } } }
protected override void ProcessRecord() { String[] addPaths = ArrayUtil.Combine(Path, LiteralPath); if (addPaths == null && !All && !Update) { throw new ArgumentException("You must specify paths to add using -Path or -LiteralPath, or use the -All or -Update parameter"); } else if (All && Update) { throw new ArgumentException("You cannot specify both the -All and -Update parameters"); } using (RepositoryParameter container = UseOrDiscoverRepository(Repository)) { if (addPaths != null) { foreach (String path in addPaths) { String repoRelativePath = FileSystemUtil.MakeRelative(path, container.Repository.Info.WorkingDirectory); WriteVerbose(String.Format("Adding {0}", repoRelativePath)); container.Repository.Stage(path); WriteObject(new GitFileSystemStatusEntry(container.Repository.Info.WorkingDirectory, SessionState.Path.CurrentFileSystemLocation.Path, path, container.Repository.RetrieveStatus(path))); } } else { foreach (StatusEntry statusEntry in container.Repository.RetrieveStatus()) { if ( (statusEntry.State == FileStatus.Untracked && All) || (statusEntry.State == FileStatus.Missing) || (statusEntry.State == FileStatus.Modified) ) { String repoRelativePath = FileSystemUtil.MakeRelative(statusEntry.FilePath, container.Repository.Info.WorkingDirectory); WriteVerbose(String.Format("Adding {0}", statusEntry.FilePath)); container.Repository.Stage(statusEntry.FilePath); WriteObject(new GitFileSystemStatusEntry(container.Repository.Info.WorkingDirectory, SessionState.Path.CurrentFileSystemLocation.Path, statusEntry.FilePath, container.Repository.RetrieveStatus(statusEntry.FilePath))); } } } } }
protected override void ProcessRecord() { String[] removePaths = ArrayUtil.Combine(pathParameters.Path, pathParameters.LiteralPath); if (removePaths == null) { throw new ArgumentException("You must specify paths to add using -Path or -LiteralPath"); } using (RepositoryParameter container = UseOrDiscoverRepository(Repository)) { /* Sanity check input, ensure it's in the index */ foreach (String path in removePaths) { FileStatus state = container.Repository.Index.RetrieveStatus(path); if (state == FileStatus.Nonexistent || state == FileStatus.Untracked) { throw new ArgumentException(String.Format("The item {0} is not tracked", path)); } } foreach (String path in removePaths) { if (!Cached) { File.Delete(path); } String repoRelativePath = FileSystemUtil.MakeRelative(path, container.Repository.Info.WorkingDirectory); WriteVerbose(String.Format("Removing {0}", repoRelativePath)); container.Repository.Index.Unstage(path); WriteObject(new GitFileSystemStatusEntry(container.Repository.Info.WorkingDirectory, SessionState.Path.CurrentFileSystemLocation.Path, path, container.Repository.Index.RetrieveStatus(path))); } } }