/// <summary>
        /// Strip changesets from the repository.
        /// </summary>
        /// <param name="repository">
        /// The <see cref="Repository"/> to strip changesets from.
        /// </param>
        /// <param name="command">
        /// Any extra options to the strip method, or <c>null</c> for default options.
        /// </param>
        /// <exception cref="ArgumentNullException">
        /// <para><paramref name="repository"/> is <c>null</c>.</para>
        /// </exception>
        public static void StripGui(this Repository repository, StripGuiCommand command = null)
        {
            if (repository == null)
                throw new ArgumentNullException("repository");

            command = command ?? new StripGuiCommand();

            repository.Execute(command);
        }
        /// <summary>
        /// Strip changesets from the repository.
        /// </summary>
        /// <param name="repository">
        /// The <see cref="Repository"/> to strip changesets from.
        /// </param>
        /// <param name="revision">
        /// The <see cref="RevSpec"/> of the revision to strip.
        /// </param>
        /// <param name="command">
        /// Any extra options to the strip method, or <c>null</c> for default options.
        /// </param>
        /// <exception cref="ArgumentNullException">
        /// <para><paramref name="repository"/> is <c>null</c>.</para>
        /// <para>- or -</para>
        /// <para><paramref name="revision"/> is <c>null</c>.</para>
        /// </exception>
        public static void StripGui(this Repository repository, RevSpec revision, StripGuiCommand command = null)
        {
            if (repository == null)
                throw new ArgumentNullException("repository");
            if (revision == null)
                throw new ArgumentNullException("revision");

            command = (command ?? new StripGuiCommand())
                .WithRevision(revision);

            repository.Execute(command);
        }