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);
                }
            }
        }
Example #2
0
        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));
                    }
                }
            }
        }
Example #3
0
        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)));
                }
            }
        }