Full Code of henon/GitSharp for AI

master 2c88c957cde0 cached
1047 files
7.5 MB
2.0M tokens
7129 symbols
1 requests
Download .txt
Showing preview only (8,014K chars total). Download the full file or copy to clipboard to get everything.
Repository: henon/GitSharp
Branch: master
Commit: 2c88c957cde0
Files: 1047
Total size: 7.5 MB

Directory structure:
gitextract_uc_l63ip/

├── .gitignore
├── ChangeLog
├── Demo.txt
├── Git/
│   ├── CmdParserOptionSet.cs
│   ├── Command.cs
│   ├── CommandCatalog.cs
│   ├── CommandRef.cs
│   ├── Commands/
│   │   ├── Add.cs
│   │   ├── Checkout.cs
│   │   ├── Clone.cs
│   │   ├── Commit.cs
│   │   ├── Config.cs
│   │   ├── Fetch.cs
│   │   ├── Help.cs
│   │   ├── Init.cs
│   │   ├── Log.cs
│   │   ├── Merge.cs
│   │   ├── Pull.cs
│   │   ├── Push.cs
│   │   ├── Rm.cs
│   │   ├── Status.cs
│   │   └── Version.cs
│   ├── Die.cs
│   ├── Git.csproj
│   ├── Options.cs
│   ├── Program.cs
│   ├── Properties/
│   │   └── AssemblyInfo.cs
│   ├── README.txt
│   ├── Resources/
│   │   └── Commands.xml
│   ├── Stubs/
│   │   ├── Am.cs
│   │   ├── Annotate.cs
│   │   ├── Apply.cs
│   │   ├── Archive.cs
│   │   ├── Blame.cs
│   │   ├── Branch.cs
│   │   ├── CatFile.cs
│   │   ├── CheckoutIndex.cs
│   │   ├── Cherry.cs
│   │   ├── CherryPick.cs
│   │   ├── Clean.cs
│   │   ├── CommitTree.cs
│   │   ├── CountObjects.cs
│   │   ├── Describe.cs
│   │   ├── Diff.cs
│   │   ├── DiffFiles.cs
│   │   ├── DiffIndex.cs
│   │   ├── DiffTree.cs
│   │   ├── Difftool.cs
│   │   ├── FastExport.cs
│   │   ├── FastImport.cs
│   │   ├── FetchPack.cs
│   │   ├── FilterBranch.cs
│   │   ├── FmtMergeMsg.cs
│   │   ├── ForEachRef.cs
│   │   ├── FormatPatch.cs
│   │   ├── Fsck.cs
│   │   ├── Gc.cs
│   │   ├── Grep.cs
│   │   ├── HashObject.cs
│   │   ├── IndexPack.cs
│   │   ├── LsFiles.cs
│   │   ├── LsRemote.cs
│   │   ├── LsTree.cs
│   │   ├── Mailinfo.cs
│   │   ├── Mailsplit.cs
│   │   ├── MergeBase.cs
│   │   ├── MergeFile.cs
│   │   ├── MergeIndex.cs
│   │   ├── Mergetool.cs
│   │   ├── Mktree.cs
│   │   ├── Mv.cs
│   │   ├── NameRev.cs
│   │   ├── Notes.cs
│   │   ├── PackObjects.cs
│   │   ├── PackRedundant.cs
│   │   ├── PackRefs.cs
│   │   ├── PatchId.cs
│   │   ├── PeekRemote.cs
│   │   ├── Prune.cs
│   │   ├── PrunePacked.cs
│   │   ├── Quiltimport.cs
│   │   ├── ReadTree.cs
│   │   ├── Rebase.cs
│   │   ├── ReceivePack.cs
│   │   ├── Reflog.cs
│   │   ├── Relink.cs
│   │   ├── Remote.cs
│   │   ├── Repack.cs
│   │   ├── Replace.cs
│   │   ├── RequestPull.cs
│   │   ├── Reset.cs
│   │   ├── RevParse.cs
│   │   ├── Revert.cs
│   │   ├── SendPack.cs
│   │   ├── Shortlog.cs
│   │   ├── Show.cs
│   │   ├── ShowBranch.cs
│   │   ├── ShowRef.cs
│   │   ├── Stripspace.cs
│   │   ├── Submodule.cs
│   │   ├── Svn.cs
│   │   ├── SymbolicRef.cs
│   │   ├── Tag.cs
│   │   ├── TarTree.cs
│   │   ├── UnpackFile.cs
│   │   ├── UnpackObjects.cs
│   │   ├── UpdateIndex.cs
│   │   ├── UpdateServerInfo.cs
│   │   ├── UploadArchive.cs
│   │   ├── UploadPack.cs
│   │   ├── Var.cs
│   │   ├── VerifyPack.cs
│   │   ├── VerifyTag.cs
│   │   └── Whatchanged.cs
│   └── TextBuiltin.cs
├── GitSharp/
│   ├── AbstractObject.cs
│   ├── AbstractTreeNode.cs
│   ├── Author.cs
│   ├── Blob.cs
│   ├── Branch.cs
│   ├── Change.cs
│   ├── Commands/
│   │   ├── AbstractCommand.cs
│   │   ├── AbstractFetchCommand.cs
│   │   ├── CloneCommand.cs
│   │   ├── FetchCommand.cs
│   │   ├── IGitCommand.cs
│   │   ├── InitCommand.cs
│   │   ├── LogCommand.cs
│   │   ├── MergeCommand.cs
│   │   ├── PushCommand.cs
│   │   ├── StatusCommand.cs
│   │   └── _NotSupportedCommands.txt
│   ├── Commit.cs
│   ├── Config.cs
│   ├── Diff.cs
│   ├── Examples.cs
│   ├── Git.cs
│   ├── GitSharp.csproj
│   ├── IReferenceObject.cs
│   ├── IgnoreRules.cs
│   ├── Index.cs
│   ├── Leaf.cs
│   ├── Properties/
│   │   └── AssemblyInfo.cs
│   ├── README.txt
│   ├── Ref.cs
│   ├── Remote.cs
│   ├── Repository.cs
│   ├── RepositoryStatus.cs
│   ├── ResetBehavior.cs
│   ├── Stash.cs
│   ├── Stubs/
│   │   ├── AddCommand.cs
│   │   ├── AmCommand.cs
│   │   ├── AnnotateCommand.cs
│   │   ├── ApplyCommand.cs
│   │   ├── ArchiveCommand.cs
│   │   ├── BlameCommand.cs
│   │   ├── BranchCommand.cs
│   │   ├── CatFileCommand.cs
│   │   ├── CheckoutCommand.cs
│   │   ├── CheckoutIndexCommand.cs
│   │   ├── CherryCommand.cs
│   │   ├── CherryPickCommand.cs
│   │   ├── CleanCommand.cs
│   │   ├── CommitCommand.cs
│   │   ├── CommitTreeCommand.cs
│   │   ├── ConfigCommand.cs
│   │   ├── CountObjectsCommand.cs
│   │   ├── DescribeCommand.cs
│   │   ├── DiffCommand.cs
│   │   ├── DiffFilesCommand.cs
│   │   ├── DiffIndexCommand.cs
│   │   ├── DiffTreeCommand.cs
│   │   ├── DifftoolCommand.cs
│   │   ├── FastExportCommand.cs
│   │   ├── FastImportCommand.cs
│   │   ├── FetchPackCommand.cs
│   │   ├── FilterBranchCommand.cs
│   │   ├── ForEachRefCommand.cs
│   │   ├── FormatPatchCommand.cs
│   │   ├── FsckCommand.cs
│   │   ├── GcCommand.cs
│   │   ├── GrepCommand.cs
│   │   ├── HashObjectCommand.cs
│   │   ├── IndexPackCommand.cs
│   │   ├── LsFilesCommand.cs
│   │   ├── LsRemoteCommand.cs
│   │   ├── LsTreeCommand.cs
│   │   ├── MailinfoCommand.cs
│   │   ├── MailsplitCommand.cs
│   │   ├── MergeBaseCommand.cs
│   │   ├── MergeFileCommand.cs
│   │   ├── MergeIndexCommand.cs
│   │   ├── MergetoolCommand.cs
│   │   ├── MktreeCommand.cs
│   │   ├── MvCommand.cs
│   │   ├── NameRevCommand.cs
│   │   ├── NotesCommand.cs
│   │   ├── PackObjectsCommand.cs
│   │   ├── PackRedundantCommand.cs
│   │   ├── PackRefsCommand.cs
│   │   ├── PatchIdCommand.cs
│   │   ├── PeekRemoteCommand.cs
│   │   ├── PruneCommand.cs
│   │   ├── PrunePackedCommand.cs
│   │   ├── QuiltimportCommand.cs
│   │   ├── ReadTreeCommand.cs
│   │   ├── RebaseCommand.cs
│   │   ├── ReceivePackCommand.cs
│   │   ├── ReflogCommand.cs
│   │   ├── RelinkCommand.cs
│   │   ├── RemoteCommand.cs
│   │   ├── RepackCommand.cs
│   │   ├── ReplaceCommand.cs
│   │   ├── RequestPullCommand.cs
│   │   ├── ResetCommand.cs
│   │   ├── RevParseCommand.cs
│   │   ├── RevertCommand.cs
│   │   ├── RmCommand.cs
│   │   ├── SendPackCommand.cs
│   │   ├── ShortlogCommand.cs
│   │   ├── ShowBranchCommand.cs
│   │   ├── ShowCommand.cs
│   │   ├── ShowRefCommand.cs
│   │   ├── StripspaceCommand.cs
│   │   ├── SubmoduleCommand.cs
│   │   ├── SvnCommand.cs
│   │   ├── SymbolicRefCommand.cs
│   │   ├── TagCommand.cs
│   │   ├── TarTreeCommand.cs
│   │   ├── UnpackFileCommand.cs
│   │   ├── UnpackObjectsCommand.cs
│   │   ├── UpdateIndexCommand.cs
│   │   ├── UpdateServerInfoCommand.cs
│   │   ├── UploadArchiveCommand.cs
│   │   ├── UploadPackCommand.cs
│   │   ├── VarCommand.cs
│   │   ├── VerifyPackCommand.cs
│   │   ├── VerifyTagCommand.cs
│   │   └── WhatchangedCommand.cs
│   ├── Tag.cs
│   ├── Text.cs
│   ├── Tree.cs
│   └── UserInfoProvider.cs
├── GitSharp licence.txt
├── GitSharp.Core/
│   ├── AbbreviatedObjectId.cs
│   ├── AbstractIndexTreeVisitor.cs
│   ├── AlternateRepositoryDatabase.cs
│   ├── AnyObjectId.cs
│   ├── BinaryDelta.cs
│   ├── BlobBasedConfig.cs
│   ├── ByteArrayExtensions.cs
│   ├── ByteArrayWindow.cs
│   ├── ByteBufferWindow.cs
│   ├── ByteWindow.cs
│   ├── CachedObjectDatabase.cs
│   ├── CachedObjectDirectory.cs
│   ├── Codec.cs
│   ├── Commit.cs
│   ├── CompleteAttribute.cs
│   ├── Config.cs
│   ├── ConsoleUserInfoProvider.cs
│   ├── Constants.cs
│   ├── CoreConfig.cs
│   ├── DeltaOfsPackedObjectLoader.cs
│   ├── DeltaPackedObjectLoader.cs
│   ├── DeltaRefPackedObjectLoader.cs
│   ├── Diff/
│   │   ├── DiffFormatter.cs
│   │   ├── Edit.cs
│   │   ├── EditList.cs
│   │   ├── MyersDiff.cs
│   │   ├── RawText.cs
│   │   └── Sequence.cs
│   ├── DirectoryCache/
│   │   ├── BaseDirCacheEditor.cs
│   │   ├── DirCache.cs
│   │   ├── DirCacheBuildIterator.cs
│   │   ├── DirCacheBuilder.cs
│   │   ├── DirCacheEditor.cs
│   │   ├── DirCacheEntry.cs
│   │   ├── DirCacheIterator.cs
│   │   └── DirCacheTree.cs
│   ├── Ensure.cs
│   ├── Exceptions/
│   │   ├── CancelledException.cs
│   │   ├── CheckoutConflictException.cs
│   │   ├── CompoundException.cs
│   │   ├── ConfigInvalidException.cs
│   │   ├── CorruptObjectException.cs
│   │   ├── EntryExistsException.cs
│   │   ├── ExceptionExtensions.cs
│   │   ├── FileLockedException.cs
│   │   ├── GitlinksNotSupportedException.cs
│   │   ├── IncorrectObjectTypeException.cs
│   │   ├── InvalidObjectIdException.cs
│   │   ├── InvalidPackException.cs
│   │   ├── InvalidPatternException.cs
│   │   ├── MissingBundlePrerequisiteException.cs
│   │   ├── MissingObjectException.cs
│   │   ├── NoClosingBracketException.cs
│   │   ├── NoRemoteRepositoryException.cs
│   │   ├── ObjectWritingException.cs
│   │   ├── PackMismatchException.cs
│   │   ├── PackProtocolException.cs
│   │   ├── RepositoryNotFoundException.cs
│   │   ├── RevWalkException.cs
│   │   ├── RevisionSyntaxException.cs
│   │   ├── StopWalkException.cs
│   │   ├── SymlinksNotSupportedException.cs
│   │   ├── TransportException.cs
│   │   └── UnmergedPathException.cs
│   ├── FileBasedConfig.cs
│   ├── FileMode.cs
│   ├── FileTreeEntry.cs
│   ├── FnMatch/
│   │   ├── AbstractHead.cs
│   │   ├── CharacterHead.cs
│   │   ├── FileNameMatcher.cs
│   │   ├── GroupHead.cs
│   │   ├── IHead.cs
│   │   ├── LastHead.cs
│   │   ├── RestrictedWildCardHead.cs
│   │   └── WildCardHead.cs
│   ├── ForceModified.cs
│   ├── GitException.cs
│   ├── GitIndex.cs
│   ├── GitSharp.Core.csproj
│   ├── GitlinkTreeEntry.cs
│   ├── IgnoreHandler.cs
│   ├── IndexChangedEventArgs.cs
│   ├── IndexDiff.cs
│   ├── IndexTreeVisitor.cs
│   ├── IndexTreeWalker.cs
│   ├── InflaterCache.cs
│   ├── LockFile.cs
│   ├── Merge/
│   │   ├── MergeAlgorithm.cs
│   │   ├── MergeChunk.cs
│   │   ├── MergeFormatter.cs
│   │   ├── MergeResult.cs
│   │   ├── MergeStrategy.cs
│   │   ├── Merger.cs
│   │   ├── StrategyOneSided.cs
│   │   ├── StrategySimpleTwoWayInCore.cs
│   │   ├── ThreeWayMergeStrategy.cs
│   │   └── ThreeWayMerger.cs
│   ├── MutableObjectId.cs
│   ├── NullProgressMonitor.cs
│   ├── ObjectChecker.cs
│   ├── ObjectDatabase.cs
│   ├── ObjectDirectory.cs
│   ├── ObjectId.cs
│   ├── ObjectIdRef.cs
│   ├── ObjectIdSubclassMap.cs
│   ├── ObjectLoader.cs
│   ├── ObjectType.cs
│   ├── ObjectWriter.cs
│   ├── OffsetCache.cs
│   ├── PackFile.cs
│   ├── PackIndex.cs
│   ├── PackIndexV1.cs
│   ├── PackIndexV2.cs
│   ├── PackIndexWriter.cs
│   ├── PackIndexWriterV1.cs
│   ├── PackIndexWriterV2.cs
│   ├── PackLock.cs
│   ├── PackOutputStream.cs
│   ├── PackReverseIndex.cs
│   ├── PackWriter.cs
│   ├── PackedObjectLoader.cs
│   ├── Patch/
│   │   ├── BinaryHunk.cs
│   │   ├── CombinedFileHeader.cs
│   │   ├── CombinedHunkHeader.cs
│   │   ├── FileHeader.cs
│   │   ├── FormatError.cs
│   │   ├── HunkHeader.cs
│   │   └── Patch.cs
│   ├── PersonIdent.cs
│   ├── Platform/
│   │   ├── Linux.cs
│   │   ├── Mac.cs
│   │   ├── Platform.cs
│   │   └── Windows.cs
│   ├── ProgressMonitor.cs
│   ├── Properties/
│   │   └── AssemblyInfo.cs
│   ├── Ref.cs
│   ├── RefComparator.cs
│   ├── RefDatabase.cs
│   ├── RefDirectory.cs
│   ├── RefDirectoryRename.cs
│   ├── RefDirectoryUpdate.cs
│   ├── RefRename.cs
│   ├── RefUpdate.cs
│   ├── RefWriter.cs
│   ├── ReflogReader.cs
│   ├── RefsChangedEventArgs.cs
│   ├── Repository.cs
│   ├── RepositoryCache.cs
│   ├── RepositoryChangedEventArgs.cs
│   ├── RepositoryConfig.cs
│   ├── RepositoryListener.cs
│   ├── RepositoryState.cs
│   ├── RevPlot/
│   │   ├── AbstractPlotRenderer.cs
│   │   ├── PlotCommit.cs
│   │   ├── PlotCommitList.cs
│   │   ├── PlotLane.cs
│   │   └── PlotWalk.cs
│   ├── RevWalk/
│   │   ├── AbstractRevQueue.cs
│   │   ├── BlockObjQueue.cs
│   │   ├── BlockRevQueue.cs
│   │   ├── BoundaryGenerator.cs
│   │   ├── DateRevQueue.cs
│   │   ├── DelayRevQueue.cs
│   │   ├── EndGenerator.cs
│   │   ├── FIFORevQueue.cs
│   │   ├── Filter/
│   │   │   ├── AndRevFilter.cs
│   │   │   ├── AuthorRevFilter.cs
│   │   │   ├── CommitTimeRevFilter.cs
│   │   │   ├── CommitterRevFilter.cs
│   │   │   ├── MessageRevFilter.cs
│   │   │   ├── NotRevFilter.cs
│   │   │   ├── OrRevFilter.cs
│   │   │   ├── PatternMatchRevFilter.cs
│   │   │   ├── RevFilter.cs
│   │   │   ├── RevFlagFilter.cs
│   │   │   └── SubStringRevFilter.cs
│   │   ├── FixUninterestingGenerator.cs
│   │   ├── FooterKey.cs
│   │   ├── FooterLine.cs
│   │   ├── Generator.cs
│   │   ├── LIFORevQueue.cs
│   │   ├── MergeBaseGenerator.cs
│   │   ├── ObjectWalk.cs
│   │   ├── PendingGenerator.cs
│   │   ├── RevBlob.cs
│   │   ├── RevCommit.cs
│   │   ├── RevCommitList.cs
│   │   ├── RevFlag.cs
│   │   ├── RevFlagSet.cs
│   │   ├── RevObject.cs
│   │   ├── RevObjectList.cs
│   │   ├── RevSort.cs
│   │   ├── RevTag.cs
│   │   ├── RevTree.cs
│   │   ├── RevWalk.cs
│   │   ├── RewriteGenerator.cs
│   │   ├── RewriteTreeFilter.cs
│   │   ├── StartGenerator.cs
│   │   └── TopoSortGenerator.cs
│   ├── SubmoduleConfig.cs
│   ├── SymbolicRef.cs
│   ├── SymlinkTreeEntry.cs
│   ├── SystemReader.cs
│   ├── Tag.cs
│   ├── TextProgressMonitor.cs
│   ├── TransferConfig.cs
│   ├── Transport/
│   │   ├── BaseConnection.cs
│   │   ├── BaseFetchConnection.cs
│   │   ├── BasePackConnection.cs
│   │   ├── BasePackFetchConnection.cs
│   │   ├── BasePackPushConnection.cs
│   │   ├── BundleFetchConnection.cs
│   │   ├── BundleWriter.cs
│   │   ├── Daemon.cs
│   │   ├── DaemonClient.cs
│   │   ├── DaemonService.cs
│   │   ├── DefaultSshSessionFactory.cs
│   │   ├── FetchHeadRecord.cs
│   │   ├── FetchProcess.cs
│   │   ├── FetchResult.cs
│   │   ├── HttpTransport.cs
│   │   ├── IConnection.cs
│   │   ├── IFetchConnection.cs
│   │   ├── IPackTransport.cs
│   │   ├── IPostReceiveHook.cs
│   │   ├── IPreReceiveHook.cs
│   │   ├── IPushConnection.cs
│   │   ├── ITransportBundle.cs
│   │   ├── IWalkTransport.cs
│   │   ├── IndexPack.cs
│   │   ├── LongMap.cs
│   │   ├── OpenSshConfig.cs
│   │   ├── OperationResult.cs
│   │   ├── PackedObjectInfo.cs
│   │   ├── PacketLineIn.cs
│   │   ├── PacketLineOut.cs
│   │   ├── PushProcess.cs
│   │   ├── PushResult.cs
│   │   ├── ReceiveCommand.cs
│   │   ├── ReceivePack.cs
│   │   ├── RefAdvertiser.cs
│   │   ├── RefFilter.cs
│   │   ├── RefSpec.cs
│   │   ├── RemoteConfig.cs
│   │   ├── RemoteRefUpdate.cs
│   │   ├── SideBandInputStream.cs
│   │   ├── SideBandOutputStream.cs
│   │   ├── SideBandProgressMonitor.cs
│   │   ├── SshConfigSessionFactory.cs
│   │   ├── SshSessionFactory.cs
│   │   ├── SshTransport.cs
│   │   ├── TagOpt.cs
│   │   ├── TcpTransport.cs
│   │   ├── TrackingRefUpdate.cs
│   │   ├── Transport.cs
│   │   ├── TransportAmazonS3.cs
│   │   ├── TransportBundleFile.cs
│   │   ├── TransportBundleStream.cs
│   │   ├── TransportGitAnon.cs
│   │   ├── TransportGitSsh.cs
│   │   ├── TransportHttp.cs
│   │   ├── TransportLocal.cs
│   │   ├── TransportSftp.cs
│   │   ├── URIish.cs
│   │   ├── UploadPack.cs
│   │   ├── WalkEncryption.cs
│   │   ├── WalkFetchConnection.cs
│   │   ├── WalkPushConnection.cs
│   │   └── WalkRemoteObjectDatabase.cs
│   ├── Tree.cs
│   ├── TreeEntry.cs
│   ├── TreeIterator.cs
│   ├── TreeVisitor.cs
│   ├── TreeVisitorWithCurrentDirectory.cs
│   ├── TreeWalk/
│   │   ├── AbstractTreeIterator.cs
│   │   ├── CanonicalTreeParser.cs
│   │   ├── EmptyTreeIterator.cs
│   │   ├── FileTreeIterator.cs
│   │   ├── Filter/
│   │   │   ├── AndTreeFilter.cs
│   │   │   ├── NotTreeFilter.cs
│   │   │   ├── OrTreeFilter.cs
│   │   │   ├── PathFilter.cs
│   │   │   ├── PathFilterGroup.cs
│   │   │   ├── PathSuffixFilter.cs
│   │   │   └── TreeFilter.cs
│   │   ├── NameConflictTreeWalk.cs
│   │   ├── TreeWalk.cs
│   │   └── WorkingTreeIterator.cs
│   ├── Treeish.cs
│   ├── UnpackedObjectCache.cs
│   ├── UnpackedObjectLoader.cs
│   ├── UserConfig.cs
│   ├── UserInfoProvider.cs
│   ├── Util/
│   │   ├── ArrayExtensions.cs
│   │   ├── AtomicReferenceArray.cs
│   │   ├── BigEndianBitConverter.cs
│   │   ├── CRC32.cs
│   │   ├── CheckedOutputStream.cs
│   │   ├── DateTimeExtensions.cs
│   │   ├── DigestOutputStream.cs
│   │   ├── EndianBinaryReader.cs
│   │   ├── EndianBinaryWriter.cs
│   │   ├── EndianBitConverter.cs
│   │   ├── Endianness.cs
│   │   ├── Extensions.cs
│   │   ├── FS.cs
│   │   ├── GenericComparer.cs
│   │   ├── Hex.cs
│   │   ├── ICharSequence.cs
│   │   ├── IListUtil.cs
│   │   ├── IO/
│   │   │   ├── InterruptTimer.cs
│   │   │   ├── TimeoutStream.cs
│   │   │   └── UnionInputStream.cs
│   │   ├── IO.cs
│   │   ├── Inspect.cs
│   │   ├── Int32.cs
│   │   ├── IntList.cs
│   │   ├── JavaHelper/
│   │   │   ├── AtomicInteger.cs
│   │   │   ├── AtomicReference.cs
│   │   │   ├── AtomicValue.cs
│   │   │   ├── Charset.cs
│   │   │   └── Properties.cs
│   │   ├── ListIterator.cs
│   │   ├── LittleEndianBitConverter.cs
│   │   ├── LongList.cs
│   │   ├── MessageDigest.cs
│   │   ├── MutableInteger.cs
│   │   ├── NB.cs
│   │   ├── NestedDictionary.cs
│   │   ├── PathUtil.cs
│   │   ├── PipeStream.cs
│   │   ├── QuotedString.cs
│   │   ├── RawCharSequence.cs
│   │   ├── RawParseUtils.cs
│   │   ├── RawSubstringPattern.cs
│   │   ├── RefList.cs
│   │   ├── RefMap.cs
│   │   ├── Stream.cs
│   │   ├── StringExtension.cs
│   │   ├── StringUtils.cs
│   │   ├── TemporaryBuffer.cs
│   │   └── WeakReference.cs
│   ├── WholePackedObjectLoader.cs
│   ├── WindowCache.cs
│   ├── WindowCacheConfig.cs
│   ├── WindowCursor.cs
│   ├── WorkDirCheckout.cs
│   └── WriteTree.cs
├── GitSharp.Tests/
│   ├── Git/
│   │   └── CLI/
│   │       ├── CustomOptionTests.cs
│   │       ├── OptionContextTest.cs
│   │       ├── OptionSetTest.cs
│   │       ├── OptionTest.cs
│   │       └── Utils.cs
│   ├── GitSharp/
│   │   ├── AbstractTreeNodeTests.cs
│   │   ├── ApiTestCase.cs
│   │   ├── BlobTests.cs
│   │   ├── BranchTest.cs
│   │   ├── CloneTests.cs
│   │   ├── CommitDateTests.cs
│   │   ├── CommitTests.cs
│   │   ├── DiffTests.cs
│   │   ├── EncodingTests.cs
│   │   ├── FindGitDirectoryTests.cs
│   │   ├── IgnoreTests.cs
│   │   ├── IndexTest.cs
│   │   ├── InitTests.cs
│   │   ├── MergeTests.cs
│   │   ├── ObjectEqualityTests.cs
│   │   ├── RefModelTests.cs
│   │   ├── RepositoryConfigTest.cs
│   │   ├── RepositoryStatusTests.cs
│   │   ├── RepositoryTests.cs
│   │   ├── StatusTests.cs
│   │   └── TextTests.cs
│   ├── GitSharp.Core/
│   │   ├── AbbreviatedObjectIdTest.cs
│   │   ├── CanReadMsysgitIndexFixture.cs
│   │   ├── ConcurrentRepackTest.cs
│   │   ├── ConstantsEncodingTest.cs
│   │   ├── Crc32Tests.cs
│   │   ├── Diff/
│   │   │   ├── DiffFormatterReflowTest.cs
│   │   │   ├── DiffTestDataGenerator.cs
│   │   │   ├── EditListTest.cs
│   │   │   ├── EditTest.cs
│   │   │   ├── MyersDiffPerformanceTest.cs
│   │   │   ├── MyersDiffTest.cs
│   │   │   └── RawTextTest.cs
│   │   ├── DirectoryCache/
│   │   │   ├── DirCacheBasicTest.cs
│   │   │   ├── DirCacheBuilderIteratorTest.cs
│   │   │   ├── DirCacheBuilderTest.cs
│   │   │   ├── DirCacheCGitCompatabilityTest.cs
│   │   │   ├── DirCacheEntryTest.cs
│   │   │   ├── DirCacheFindTest.cs
│   │   │   ├── DirCacheIteratorTest.cs
│   │   │   ├── DirCacheLargePathTest.cs
│   │   │   └── DirCacheTreeTest.cs
│   │   ├── FnMatch/
│   │   │   └── FileNameMatcherTest.cs
│   │   ├── IgnoreHandlerTest.cs
│   │   ├── IndexDiffTest.cs
│   │   ├── IndexModifiedTests.cs
│   │   ├── IndexTreeWalkerTest.cs
│   │   ├── Merge/
│   │   │   ├── CherryPickTest.cs
│   │   │   ├── MergeAlgorithmTest.cs
│   │   │   └── SimpleMergeTest.cs
│   │   ├── ObjectCheckerTests.cs
│   │   ├── ObjectIdRefTest.cs
│   │   ├── PackIndexTestCase.cs
│   │   ├── PackIndexTests.cs
│   │   ├── PackIndexV1Tests.cs
│   │   ├── PackIndexV2Tests.cs
│   │   ├── PackReverseIndexTest.cs
│   │   ├── PackWriterTest.cs
│   │   ├── Patch/
│   │   │   ├── BasePatchTest.cs
│   │   │   ├── EditListTest.cs
│   │   │   ├── FileHeaderTest.cs
│   │   │   ├── GetTextTest.cs
│   │   │   ├── PatchCcErrorTest.cs
│   │   │   ├── PatchCcTest.cs
│   │   │   ├── PatchErrorTest.cs
│   │   │   └── PatchTest.cs
│   │   ├── ReadTreeTest.cs
│   │   ├── RefDirectoryTest.cs
│   │   ├── RefTest.cs
│   │   ├── RefUpdateTest.cs
│   │   ├── ReflogConfigTest.cs
│   │   ├── ReflogReaderTest.cs
│   │   ├── RepositoryCacheTest.cs
│   │   ├── RepositoryConfigTest.cs
│   │   ├── RepositoryTestCase.cs
│   │   ├── RevWalk/
│   │   │   ├── AlwaysEmptyRevQueueTest.cs
│   │   │   ├── DateRevQueueTest.cs
│   │   │   ├── FIFORevQueueTest.cs
│   │   │   ├── FooterLineTest.cs
│   │   │   ├── LIFORevQueueTest.cs
│   │   │   ├── ObjectWalkTest.cs
│   │   │   ├── RevCommitParseTest.cs
│   │   │   ├── RevFlagSetTest.cs
│   │   │   ├── RevObjectTest.cs
│   │   │   ├── RevQueueTestCase.cs
│   │   │   ├── RevTagParseTest.cs
│   │   │   ├── RevWalkCullTest.cs
│   │   │   ├── RevWalkFilterTest.cs
│   │   │   ├── RevWalkMergeBaseTest.cs
│   │   │   ├── RevWalkPathFilter1Test.cs
│   │   │   ├── RevWalkPathFilter6012Test.cs
│   │   │   ├── RevWalkSortTest.cs
│   │   │   └── RevWalkTestCase.cs
│   │   ├── SampleDataRepositoryTestCase.cs
│   │   ├── SubmoduleTest.cs
│   │   ├── SymbolicRefTest.cs
│   │   ├── T0001_ObjectId.cs
│   │   ├── T0001_PersonIdent.cs
│   │   ├── T0002_Tree.cs
│   │   ├── T0003_Basic_Config.cs
│   │   ├── T0003_Basic_Write.cs
│   │   ├── T0004_PackReader.cs
│   │   ├── T0007_Index.cs
│   │   ├── T0008_testparserev.cs
│   │   ├── Transport/
│   │   │   ├── BaseConnectionTests.cs
│   │   │   ├── BundleWriterTest.cs
│   │   │   ├── IndexPackTests.cs
│   │   │   ├── LongMapTest.cs
│   │   │   ├── OpenSshConfigTest.cs
│   │   │   ├── OperationResultTests.cs
│   │   │   ├── PacketLineInTest.cs
│   │   │   ├── PacketLineOutTest.cs
│   │   │   ├── PushProcessTest.cs
│   │   │   ├── RefSpecTests.cs
│   │   │   ├── RemoteConfigTests.cs
│   │   │   ├── SideBandOutputStreamTest.cs
│   │   │   ├── TransportTest.cs
│   │   │   └── URIishTests.cs
│   │   ├── TreeIteratorLeafOnlyTest.cs
│   │   ├── TreeIteratorPostOrderTest.cs
│   │   ├── TreeIteratorPreOrderTest.cs
│   │   ├── TreeWalk/
│   │   │   ├── AbstractTreeIteratorTest.cs
│   │   │   ├── CanonicalTreeParserTest.cs
│   │   │   ├── EmptyTreeIteratorTest.cs
│   │   │   ├── FileTreeIteratorTest.cs
│   │   │   ├── Filter/
│   │   │   │   ├── AlwaysCloneTreeFilter.cs
│   │   │   │   ├── NotTreeFilterTest.cs
│   │   │   │   ├── PathSuffixFilterTestCase.cs
│   │   │   │   └── TreeFilterTest.cs
│   │   │   ├── NameConflictTreeWalkTest.cs
│   │   │   ├── PostOrderTreeWalkTest.cs
│   │   │   └── TreeWalkBasicDiffTest.cs
│   │   ├── Util/
│   │   │   ├── AssertHelper.cs
│   │   │   ├── AssertHelperFixture.cs
│   │   │   ├── ByteArrayExtensionsFixture.cs
│   │   │   ├── CPUTimeStopWatch.cs
│   │   │   ├── ExtensionsFixture.cs
│   │   │   ├── IO/
│   │   │   │   └── TimeoutStreamTest.cs
│   │   │   ├── IntListTest.cs
│   │   │   ├── LinkedListFixture.cs
│   │   │   ├── LocalDiskRepositoryTestCase.cs
│   │   │   ├── Md5MessageDigestTest.cs
│   │   │   ├── MockFileBasedConfig.cs
│   │   │   ├── MockSystemReader.cs
│   │   │   ├── NBTests.cs
│   │   │   ├── PathUtils.cs
│   │   │   ├── QuotedStringBourneStyleTest.cs
│   │   │   ├── QuotedStringBourneUserPathStyleTest.cs
│   │   │   ├── QuotedStringGitPathStyleTest.cs
│   │   │   ├── RawParseUtils_HexParseTest.cs
│   │   │   ├── RawParseUtils_LineMapTest.cs
│   │   │   ├── RawParseUtils_MatchTest.cs
│   │   │   ├── RefListTest.cs
│   │   │   ├── RefMapTest.cs
│   │   │   ├── Sha1MessageDigestTest.cs
│   │   │   ├── StringExtensionsFixture.cs
│   │   │   ├── StringUtilsTest.cs
│   │   │   ├── TemporaryBufferTest.cs
│   │   │   ├── TestRepository.cs
│   │   │   ├── TestRng.cs
│   │   │   ├── UnionInputStreamTest.cs
│   │   │   └── VariousUtilityTests.cs
│   │   ├── ValidRefNameTest.cs
│   │   ├── WindowCacheGetTest.cs
│   │   ├── WindowCacheReconfigureTest.cs
│   │   ├── WorkDirCheckoutTest.cs
│   │   ├── XInputStream.cs
│   │   └── sample/
│   │       ├── README
│   │       └── unpacked
│   ├── GitSharp.Tests.csproj
│   ├── Properties/
│   │   └── AssemblyInfo.cs
│   ├── README.txt
│   └── Resources/
│       ├── CorruptIndex/
│       │   ├── .gitted/
│       │   │   ├── COMMIT_EDITMSG
│       │   │   ├── HEAD
│       │   │   ├── config
│       │   │   ├── description
│       │   │   ├── hooks/
│       │   │   │   ├── applypatch-msg.sample
│       │   │   │   ├── commit-msg.sample
│       │   │   │   ├── post-commit.sample
│       │   │   │   ├── post-receive.sample
│       │   │   │   ├── post-update.sample
│       │   │   │   ├── pre-applypatch.sample
│       │   │   │   ├── pre-commit.sample
│       │   │   │   ├── pre-rebase.sample
│       │   │   │   ├── prepare-commit-msg.sample
│       │   │   │   └── update.sample
│       │   │   ├── index
│       │   │   ├── info/
│       │   │   │   └── exclude
│       │   │   ├── logs/
│       │   │   │   ├── HEAD
│       │   │   │   └── refs/
│       │   │   │       └── heads/
│       │   │   │           └── master
│       │   │   ├── objects/
│       │   │   │   ├── 1a/
│       │   │   │   │   └── 602d9bd07ce5272ddaa64e21da12dbca2b8c9f
│       │   │   │   ├── 2e/
│       │   │   │   │   └── 65efe2a145dda7ee51d1741299f848e5bf752e
│       │   │   │   ├── 63/
│       │   │   │   │   └── d8dbd40c23542e740659a7168a0ce3138ea748
│       │   │   │   ├── dc/
│       │   │   │   │   └── 8d7f3d2d19bdf3a6daa007102bc7bef76aa8ac
│       │   │   │   ├── info/
│       │   │   │   │   └── marker.txt
│       │   │   │   └── pack/
│       │   │   │       └── marker.txt
│       │   │   └── refs/
│       │   │       └── heads/
│       │   │           └── master
│       │   ├── a.txt
│       │   └── b.txt
│       ├── Diff/
│       │   ├── .gitattributes
│       │   ├── E.patch
│       │   ├── E_PostImage
│       │   ├── E_PreImage
│       │   ├── X.patch
│       │   ├── X_PostImage
│       │   ├── X_PreImage
│       │   ├── Y.patch
│       │   ├── Y_PostImage
│       │   ├── Y_PreImage
│       │   ├── Z.patch
│       │   ├── Z_PostImage
│       │   ├── Z_PreImage
│       │   ├── testContext0.out
│       │   ├── testContext1.out
│       │   ├── testContext10.out
│       │   ├── testContext100.out
│       │   ├── testContext3.out
│       │   └── testContext5.out
│       ├── JapaneseRepo/
│       │   └── .gitted/
│       │       ├── HEAD
│       │       ├── config
│       │       ├── description
│       │       ├── hooks/
│       │       │   ├── applypatch-msg.sample
│       │       │   ├── commit-msg.sample
│       │       │   ├── post-commit.sample
│       │       │   ├── post-receive.sample
│       │       │   ├── post-update.sample
│       │       │   ├── pre-applypatch.sample
│       │       │   ├── pre-commit.sample
│       │       │   ├── pre-rebase.sample
│       │       │   ├── prepare-commit-msg.sample
│       │       │   └── update.sample
│       │       ├── index
│       │       ├── info/
│       │       │   └── exclude
│       │       ├── logs/
│       │       │   ├── HEAD
│       │       │   └── refs/
│       │       │       └── heads/
│       │       │           └── master
│       │       ├── objects/
│       │       │   ├── 24/
│       │       │   │   └── ed0e20ceff5e2cdf768345b6853213f840ff8f
│       │       │   ├── 2f/
│       │       │   │   └── 3c75408acf76bb7122b91c418d015252708552
│       │       │   ├── 4b/
│       │       │   │   └── 825dc642cb6eb9a060e54bf8d69288fbee4904
│       │       │   ├── 54/
│       │       │   │   └── 75030f2b57d9956d23ef4ead6f9a4983c234b5
│       │       │   ├── 6d/
│       │       │   │   └── c9b6c490154e9627a8aed8ca74039a34084677
│       │       │   ├── 9b/
│       │       │   │   └── c63090dd221bace8b2e5f278580946be26efdd
│       │       │   ├── a8/
│       │       │   │   └── a51035f70bec2d3e00c0a11a33ff709a6ab40e
│       │       │   ├── fe/
│       │       │   │   └── 0856a5873decc1a8e47f63c5707520121b2e9e
│       │       │   ├── info/
│       │       │   │   └── marker.txt
│       │       │   └── pack/
│       │       │       └── marker.txt
│       │       └── refs/
│       │           └── heads/
│       │               └── master
│       ├── OneFileRepository/
│       │   ├── .gitted/
│       │   │   ├── COMMIT_EDITMSG
│       │   │   ├── HEAD
│       │   │   ├── config
│       │   │   ├── description
│       │   │   ├── hooks/
│       │   │   │   ├── applypatch-msg.sample
│       │   │   │   ├── commit-msg.sample
│       │   │   │   ├── post-commit.sample
│       │   │   │   ├── post-receive.sample
│       │   │   │   ├── post-update.sample
│       │   │   │   ├── pre-applypatch.sample
│       │   │   │   ├── pre-commit.sample
│       │   │   │   ├── pre-rebase.sample
│       │   │   │   ├── prepare-commit-msg.sample
│       │   │   │   └── update.sample
│       │   │   ├── index
│       │   │   ├── info/
│       │   │   │   └── exclude
│       │   │   ├── logs/
│       │   │   │   ├── HEAD
│       │   │   │   └── refs/
│       │   │   │       └── heads/
│       │   │   │           └── master
│       │   │   ├── objects/
│       │   │   │   ├── 5a/
│       │   │   │   │   └── 44c05f31a48e1492e7b375e502d97c3e72a1bc
│       │   │   │   ├── be/
│       │   │   │   │   └── cce7158b7ef8a86c4ddf2fe235df6923f94ec8
│       │   │   │   ├── f3/
│       │   │   │   │   └── ca78a01f1baa4eaddcc349c97dcab95a379981
│       │   │   │   ├── info/
│       │   │   │   │   └── marker.txt
│       │   │   │   └── pack/
│       │   │   │       └── marker.txt
│       │   │   └── refs/
│       │   │       └── heads/
│       │   │           └── master
│       │   └── dummy.txt
│       ├── Patch/
│       │   ├── .gitattributes
│       │   ├── testEditList_Types.patch
│       │   ├── testError_BodyTooLong.patch
│       │   ├── testError_CcTruncatedOld.patch
│       │   ├── testError_DisconnectedHunk.patch
│       │   ├── testError_GarbageBetweenFiles.patch
│       │   ├── testError_GitBinaryNoForwardHunk.patch
│       │   ├── testError_TruncatedNew.patch
│       │   ├── testError_TruncatedOld.patch
│       │   ├── testGetText_BothISO88591.patch
│       │   ├── testGetText_Convert.patch
│       │   ├── testGetText_DiffCc.patch
│       │   ├── testGetText_NoBinary.patch
│       │   ├── testParse_AddNoNewline.patch
│       │   ├── testParse_CcDeleteFile.patch
│       │   ├── testParse_CcNewFile.patch
│       │   ├── testParse_ConfigCaseInsensitive.patch
│       │   ├── testParse_FixNoNewline.patch
│       │   ├── testParse_GitBinaryDelta.patch
│       │   ├── testParse_GitBinaryLiteral.patch
│       │   ├── testParse_NoBinary.patch
│       │   └── testParse_OneFileCc.patch
│       ├── SubmoduleRepository.git/
│       │   ├── COMMIT_EDITMSG
│       │   ├── HEAD
│       │   ├── config
│       │   ├── description
│       │   ├── hooks/
│       │   │   ├── applypatch-msg.sample
│       │   │   ├── commit-msg.sample
│       │   │   ├── post-commit.sample
│       │   │   ├── post-receive.sample
│       │   │   ├── post-update.sample
│       │   │   ├── pre-applypatch.sample
│       │   │   ├── pre-commit.sample
│       │   │   ├── pre-rebase.sample
│       │   │   ├── prepare-commit-msg.sample
│       │   │   └── update.sample
│       │   ├── index
│       │   ├── info/
│       │   │   └── exclude
│       │   ├── logs/
│       │   │   ├── HEAD
│       │   │   └── refs/
│       │   │       └── heads/
│       │   │           └── master
│       │   ├── objects/
│       │   │   ├── 16/
│       │   │   │   └── 3678aef05371dc8636cbae9486233fddbede36
│       │   │   ├── 7c/
│       │   │   │   └── 0646bfd53c1f0ed45ffd81563f30017717ca58
│       │   │   ├── 83/
│       │   │   │   └── 36793a1b803478c1c654847373f0f106c467ce
│       │   │   ├── 92/
│       │   │   │   └── 2522d0a1c9a031f5c6e11d3e20423e44806a3b
│       │   │   ├── b8/
│       │   │   │   └── 1197d9c02c98247424be82a7dd55dc419f39e5
│       │   │   ├── c3/
│       │   │   │   └── 88fdefe1f4aa420eef11abd4e88fd38236dfb5
│       │   │   ├── info/
│       │   │   │   └── dummy
│       │   │   └── pack/
│       │   │       └── dummy
│       │   └── refs/
│       │       └── heads/
│       │           └── master
│       ├── all_packed_objects.txt
│       ├── create-second-pack
│       ├── gitgit.index
│       ├── gitgit.index.ZZZZ
│       ├── gitgit.index.aaaa
│       ├── gitgit.index.badchecksum
│       ├── gitgit.lsfiles
│       ├── gitgit.lstree
│       ├── index_originating_from_msysgit
│       ├── pack-3280af9c07ee18a87705ef50b0cc4cd20266cf12.idx
│       ├── pack-3280af9c07ee18a87705ef50b0cc4cd20266cf12.pack
│       ├── pack-34be9032ac282b11fa9babdc2b2a93ca996c9c2f.idx
│       ├── pack-34be9032ac282b11fa9babdc2b2a93ca996c9c2f.idxV2
│       ├── pack-34be9032ac282b11fa9babdc2b2a93ca996c9c2f.pack
│       ├── pack-546ff360fe3488adb20860ce3436a2d6373d2796.idx
│       ├── pack-546ff360fe3488adb20860ce3436a2d6373d2796.pack
│       ├── pack-9fb5b411fe6dfa89cc2e6b89d2bd8e5de02b5745.idx
│       ├── pack-9fb5b411fe6dfa89cc2e6b89d2bd8e5de02b5745.pack
│       ├── pack-cbdeda40019ae0e6e789088ea0f51f164f489d14.idx
│       ├── pack-cbdeda40019ae0e6e789088ea0f51f164f489d14.pack
│       ├── pack-df2982f284bbabb6bdb59ee3fcc6eb0983e20371.idx
│       ├── pack-df2982f284bbabb6bdb59ee3fcc6eb0983e20371.idxV2
│       ├── pack-df2982f284bbabb6bdb59ee3fcc6eb0983e20371.pack
│       ├── pack-e6d07037cbcf13376308a0a995d1fa48f8f76aaa.idx
│       ├── pack-e6d07037cbcf13376308a0a995d1fa48f8f76aaa.pack
│       ├── pack-huge.idx
│       ├── packed-refs
│       ├── sample.git/
│       │   ├── COMMIT_EDITMSG
│       │   ├── HEAD
│       │   ├── ORIG_HEAD
│       │   ├── config
│       │   ├── description
│       │   ├── gitk.cache
│       │   ├── hooks/
│       │   │   ├── applypatch-msg.sample
│       │   │   ├── commit-msg.sample
│       │   │   ├── post-commit.sample
│       │   │   ├── post-receive.sample
│       │   │   ├── post-update.sample
│       │   │   ├── pre-applypatch.sample
│       │   │   ├── pre-commit.sample
│       │   │   ├── pre-rebase.sample
│       │   │   ├── prepare-commit-msg.sample
│       │   │   └── update.sample
│       │   ├── index
│       │   ├── info/
│       │   │   ├── exclude
│       │   │   └── refs
│       │   ├── logs/
│       │   │   ├── HEAD
│       │   │   └── refs/
│       │   │       └── heads/
│       │   │           ├── first
│       │   │           └── master
│       │   ├── objects/
│       │   │   ├── 3f/
│       │   │   │   └── a4c1907a23c8c345ba65bd9bc17336b012259b
│       │   │   ├── 66/
│       │   │   │   └── d7e337f35ff98d6bddd7e730655080454c3fdd
│       │   │   ├── 76/
│       │   │   │   └── e984096c69db581a6d48eb444e5490d727ebac
│       │   │   ├── a1/
│       │   │   │   └── 3973bc29346193c4a023fc83cc5b0645784262
│       │   │   ├── info/
│       │   │   │   └── packs
│       │   │   └── pack/
│       │   │       ├── pack-845b2ba3349cc201321e752b01c5ada8102a9a08.idx
│       │   │       └── pack-845b2ba3349cc201321e752b01c5ada8102a9a08.pack
│       │   ├── packed-refs
│       │   └── refs/
│       │       ├── heads/
│       │       │   ├── first
│       │       │   └── master
│       │       └── tags/
│       │           └── my_tag
│       └── single_file_commit/
│           ├── .gitattributes
│           ├── 16c0beaf7523eb3ef5df45bd42dd4fc6343de864
│           ├── 917c130bd4fa5bf2df0c399dc1b03401860aa448
│           ├── 95ea6a6859af6791464bd8b6de76ad5a6f9fad81
│           └── i-am-a-file
├── GitSharp.build
├── GitSharp.sln
├── Indentation.txt
├── Indentation.vssettings
├── JGit licence.txt
├── MiscUtil licence.txt
├── README.txt
├── Winterdom.IO.FileMap License.txt
├── generate-Docs.bat
├── lib/
│   ├── ICSharpCode.SharpZipLib.xml
│   └── Winterdom.IO.FileMap.pdb
├── package-GitSharp.cmd
├── runtests-GitSharp.cmd
├── tools/
│   ├── docu/
│   │   ├── .gitignore
│   │   ├── docu.XML
│   │   ├── docu.pdb
│   │   ├── generate_documentation.bat
│   │   └── templates/
│   │       ├── !namespace/
│   │       │   ├── !type.htm.spark
│   │       │   ├── _comment.spark
│   │       │   ├── _events.spark
│   │       │   ├── _fields.spark
│   │       │   ├── _methods.spark
│   │       │   ├── _namespaces.spark
│   │       │   ├── _properties.spark
│   │       │   ├── _remarks.spark
│   │       │   ├── _types.spark
│   │       │   ├── _value.spark
│   │       │   └── index.html.spark
│   │       ├── _footer.spark
│   │       ├── _namespaces.spark
│   │       ├── _types.spark
│   │       ├── index.html.spark
│   │       ├── js/
│   │       │   ├── jquery.scrollTo-min.js
│   │       │   └── navigation.js
│   │       └── main.css
│   ├── nant/
│   │   ├── NAnt.CompressionTasks.pdb
│   │   ├── NAnt.CompressionTasks.xml
│   │   ├── NAnt.Core.pdb
│   │   ├── NAnt.Core.xml
│   │   ├── NAnt.DotNetTasks.pdb
│   │   ├── NAnt.DotNetTasks.xml
│   │   ├── NAnt.MSNetTasks.pdb
│   │   ├── NAnt.MSNetTasks.xml
│   │   ├── NAnt.NUnit.pdb
│   │   ├── NAnt.NUnit.xml
│   │   ├── NAnt.NUnit1Tasks.pdb
│   │   ├── NAnt.NUnit1Tasks.xml
│   │   ├── NAnt.NUnit2Tasks.pdb
│   │   ├── NAnt.NUnit2Tasks.xml
│   │   ├── NAnt.SourceControlTasks.pdb
│   │   ├── NAnt.SourceControlTasks.xml
│   │   ├── NAnt.VSNetTasks.pdb
│   │   ├── NAnt.VSNetTasks.xml
│   │   ├── NAnt.VisualCppTasks.pdb
│   │   ├── NAnt.VisualCppTasks.xml
│   │   ├── NAnt.Win32Tasks.pdb
│   │   ├── NAnt.Win32Tasks.xml
│   │   ├── NAnt.exe.config
│   │   ├── NAnt.pdb
│   │   ├── NAnt.xml
│   │   ├── NDoc.Documenter.NAnt.pdb
│   │   └── extensions/
│   │       └── common/
│   │           └── 2.0/
│   │               ├── NAnt.MSBuild.pdb
│   │               └── NAnt.MSBuild.xml
│   └── nunit/
│       └── nunit-console.exe.config
└── version.txt

================================================
FILE CONTENTS
================================================

================================================
FILE: .gitignore
================================================
*~
bin
obj
*.user
*.suo
*.bak
*.sln.cache
_ReSharper*
Reports
*/build
*/test-results
*.pidb
*.usertasks
*.userprefs
*.orig
test-results
dist
build
SharedAssemblyInfo.cs
VersionAssemblyInfo.cs

================================================
FILE: ChangeLog
================================================
2008-12-06  Miguel de Icaza  <miguel@novell.com>

	* Lib/Constants.cs: Add a handful of extra contants.

	* Lib/Codec.cs: Put here the coding/encoding routines that were
	originally in egit's lib/Constants.java class

	* Lib/*: Align some API doc comments, add some API docs.

	* Lib/RefDatabase.cs (Peel): Implement.

	* Lib/Constants.cs: Put all the constants here (not sure where
	some new constants should have gone). 

	* Lib/Ref.cs: Update to support `Peeled' property and
	`OriginalName' from newer eGits.

2008-12-03  Miguel de Icaza  <miguel@novell.com>

	* test.cs: make the sample program dump all the refs.

	* Lib/Repository.cs: Expose GetAllRefs.

	* Lib/RefDatabase.cs (ReadOneLooseRef): Do not crash if the
	refName is not present in the looseKeys.

	(RefreshPackedRefs): If the packed-refs file does not exist, do
	not try to continue, it would otherwise crash.

	* Lib/WindowedFile.cs: Implement another file from the original
	Java implementation.

	* Lib/PackIndex.cs: Fix indentation of comment.

	* Lib/WindowCursor.cs: Implement.

2008-12-02  Miguel de Icaza  <miguel@novell.com>

	* Lib/ByteArrayWindow.cs: Implement the functionality for
	ByteArrayWindow, do not derive from ByteWindow which is a design
	in the original Java implementation to use two different backends
	for storage.

	We could achieve the same in a cleaner way than the original
	implementation if we choose to do so using an interface. 



================================================
FILE: Demo.txt
================================================
Git# demo browser (Windows only) has been moved to http://github.com/henon/GitSharp.Demo/tree

================================================
FILE: Git/CmdParserOptionSet.cs
================================================
/*
 * Copyright (C) 2008, Shawn O. Pearce <spearce@spearce.org>
 * Copyright (C) 2009, Rolenun <rolenun@gmail.com>
 *
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or
 * without modification, are permitted provided that the following
 * conditions are met:
 *
 * - Redistributions of source code must retain the above copyright
 *   notice, this list of conditions and the following disclaimer.
 *
 * - Redistributions in binary form must reproduce the above
 *   copyright notice, this list of conditions and the following
 *   disclaimer in the documentation and/or other materials provided
 *   with the distribution.
 *
 * - Neither the name of the Git Development Community nor the
 *   names of its contributors may be used to endorse or promote
 *   products derived from this software without specific prior
 *   written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
 * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */

using System;
using System.Collections.Generic; 
using NDesk.Options;

namespace GitSharp.CLI
{
    public class CmdParserOptionSet : OptionSet
    {
        protected override void InsertItem(int index, Option item) 
        {
            base.InsertItem (index, item);     
        }     
        
        protected override OptionContext CreateOptionContext()
        {         
            return new OptionContext (this);     
        }     
        
        protected override bool Parse(string option, OptionContext c)     
        {         
            string f, n, s, v;         
            bool haveParts = GetOptionParts (option, out f, out n, out s, out v);         
            Option nextOption = null;         
            string newOption  = option;   
      
            if (haveParts) 
            {             
                nextOption = Contains (n) ? this [n] : null;             
                newOption = f + n + (v != null ? s + v : "");         
            }   
      
            if (c.Option != null) 
            {             
                // Prevent --a --b             
                if (c.Option != null && haveParts) 
                {                 
                    throw new OptionException (                         
                        string.Format ("Found option `{0}' as value for option `{1}'.",                             
                        option, c.OptionName), c.OptionName);             
                }             

                // have a option w/ required value; try to concat values.             
                if (AppendValue (option, c)) 
                {                 
                    if (!option.EndsWith ("\\") &&                          
                        c.Option.MaxValueCount == c.OptionValues.Count) 
                    {                     
                        c.Option.Invoke (c);                 
                    }                 
                    
                    return true;             
                }             
                else                 
                    base.Parse (newOption, c);         
            }         
            if (!haveParts || v == null) 
            {             
                // Not an option; let base handle as a non-option argument.             
                return base.Parse (newOption, c);         
            }         
            if (nextOption.OptionValueType != OptionValueType.None &&                  
                v.EndsWith ("\\")) 
            {             
                c.Option = nextOption;             
                c.OptionValues.Add (v);             
                c.OptionName = f + n;             
                return true;         
            }         
            return base.Parse (newOption, c);     
        }     
        
        private bool AppendValue(string value, OptionContext c)     
        {         
            bool added = false;         
            string[] seps = c.Option.GetValueSeparators ();
            foreach (var o in seps.Length != 0 ? value.Split(seps, StringSplitOptions.None) : new string[] { value })
            {
                int idx = c.OptionValues.Count - 1;
                if (idx == -1 || !c.OptionValues[idx].EndsWith("\\"))
                {
                    c.OptionValues.Add(o);
                    added = true;
                }
                else
                {
                    c.OptionValues[idx] += value;
                    added = true;
                }
            }         
            return added;     
        } 
    }
}


================================================
FILE: Git/Command.cs
================================================
/*
 * Copyright (C) 2008, Shawn O. Pearce <spearce@spearce.org>
 *
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or
 * without modification, are permitted provided that the following
 * conditions are met:
 *
 * - Redistributions of source code must retain the above copyright
 *   notice, this list of conditions and the following disclaimer.
 *
 * - Redistributions in binary form must reproduce the above
 *   copyright notice, this list of conditions and the following
 *   disclaimer in the documentation and/or other materials provided
 *   with the distribution.
 *
 * - Neither the name of the Git Development Community nor the
 *   names of its contributors may be used to endorse or promote
 *   products derived from this software without specific prior
 *   written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
 * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */

using System;

   /**
     * Annotation to document a {@link TextBuiltin}.
     * 
     * This is an optional annotation for TextBuiltin subclasses and it carries
     * documentation forward into the runtime system describing what the command is
     * and why users may want to invoke it.
     */
    [AttributeUsage(AttributeTargets.All, AllowMultiple = false)]
    public class Command : Attribute
    {
        public bool complete;
        public string usage;
        public bool common;
        public string helpUrl;
        public bool requiresRepository;

        public Command()
        {
            this.complete = false;
            this.common = false;
            this.usage = "";
            this.helpUrl = "";
            this.requiresRepository = false;
        }
    }


================================================
FILE: Git/CommandCatalog.cs
================================================
/*
 * Copyright (C) 2008, Shawn O. Pearce <spearce@spearce.org>
 * Copyright (C) 2009, Rolenun <rolenun@gmail.com>
 *
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or
 * without modification, are permitted provided that the following
 * conditions are met:
 *
 * - Redistributions of source code must retain the above copyright
 *   notice, this list of conditions and the following disclaimer.
 *
 * - Redistributions in binary form must reproduce the above
 *   copyright notice, this list of conditions and the following
 *   disclaimer in the documentation and/or other materials provided
 *   with the distribution.
 *
 * - Neither the name of the Git Development Community nor the
 *   names of its contributors may be used to endorse or promote
 *   products derived from this software without specific prior
 *   written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
 * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */

using System;
using System.Collections;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.IO;
using System.Reflection;
using System.Text;
using System.Xml;
using GitSharp;

namespace GitSharp.CLI
{

    /// <summary>
    ///  List of all commands known by the command line tools.
    ///  Commands are implementations of the TextBuiltin class, with a required
    ///  command attribute to insert additional documentation and add some extra
    ///  information such as if the command is common and completed.
    ///  
    ///  Commands may be registered by adding them to the Commands.xml file.
    ///  The Commands.xml file should contain:
    ///      a. The command name including namespace.
    ///      b. The website address for command specific online help.(optional)
    /// </summary>
    public class CommandCatalog
    {
        /// <summary>
        /// Stores the command catalog.
        /// </summary>
        private SortedList<String, CommandRef> commands = new SortedList<string, CommandRef>();

        /// <summary>
        /// Creates the command catalog from the Commands.xml file.
        /// </summary>
        public CommandCatalog()
        {
            const string commandsXmlPath = "GitSharp.CLI.Resources.Commands.xml";
            Stream fileStream = Assembly.GetExecutingAssembly().GetManifestResourceStream(commandsXmlPath);
            var doc = new XmlDocument();
            doc.Load(fileStream);

            XmlNodeList xmlNodeList = doc.SelectNodes("/root/CommandList/Command");
            foreach (XmlNode node in xmlNodeList)
            {
                XmlElement nameElement = node["Name"];
                XmlElement helpElement = node["Help"];
                if (nameElement != null)
                    Load(nameElement.InnerText, helpElement.InnerText);
            }
        }

        /// <summary>
        /// Returns all commands starting with a specified string, sorted by command name.
        /// </summary>
        public List<CommandRef> StartsWith(String s)
        {
            List<CommandRef> matches = new List<CommandRef>();
            foreach (CommandRef c in commands.Values)
            {
                if (c.getName().StartsWith(s))
                    matches.Add(c);
            }

            return toSortedArray(matches);
        }

        /// <summary>
        /// Create and loads the command name into the command catalog.
        /// </summary>
        /// <param name="commandName">Specifies the command name to load.</param>
        /// <param name="commandHelp">Specifies the command's website for faster reference.</param>
        public void Load(String commandName, String commandHelp)
        {
            TextBuiltin clazz;

            Type commandType = Type.GetType(commandName);
            if (commandType == null)
                return;

            clazz = Activator.CreateInstance(commandType) as TextBuiltin;
            if (clazz == null)
                return;

            int index = clazz.ToString().LastIndexOf(".");
            string cmdName = clazz.ToString().Substring(index + 1).ToLower();
            clazz.setCommandName(cmdName);
            clazz.setCommandHelp(commandHelp);

            CommandRef cr = new CommandRef(clazz);
            if (cr != null)
                commands.Add(cr.getName(), cr);
        }

        /// <summary>
        /// Locates a single command by its user friendly name.
        /// </summary>
        /// <param name="name">Specifies the name of the command.</param>
        /// <returns>Returns the CommandRef containing the command's information.</returns>
        public CommandRef Get(String name)
        {
            CommandRef value = null;
            commands.TryGetValue(name, out value);
            return value;
        }

        /// <summary>
        /// Returns all known commands, sorted by command name.
        /// </summary>
        public IList<CommandRef> All()
        {
            return commands.Values;
        }

        /// <summary>
        /// Returns all common commands, sorted by command name.
        /// </summary>
        public List<CommandRef> Common()
        {
            List<CommandRef> common = new List<CommandRef>();
            foreach (CommandRef c in commands.Values)
            {
                if (c.isCommon())
                    common.Add(c);
            }

            return toSortedArray(common);
        }

        /// <summary>
        /// Returns all incomplete commands, sorted by command name.
        /// </summary>
        public List<CommandRef> Incomplete()
        {
            List<CommandRef> incomplete = new List<CommandRef>();
            foreach (CommandRef c in commands.Values)
            {
                if (!c.isComplete())
                    incomplete.Add(c);
            }

            return toSortedArray(incomplete);
        }

        /// <summary>
        /// Returns all complete commands, sorted by command name.
        /// </summary>
        public List<CommandRef> Complete()
        {
            List<CommandRef> complete = new List<CommandRef>();
            foreach (CommandRef c in commands.Values)
            {
                if (c.isComplete())
                    complete.Add(c);
            }

            return toSortedArray(complete);
        }

        /// <summary>
        /// Sorts a list of specified commands by command name.
        /// </summary>
        /// <param name="c">Specifies the list of commands to be sorted.</param>
        /// <returns>Returns the sorted list of commands.</returns>
        private List<CommandRef> toSortedArray(List<CommandRef> c)
        {
            c.Sort(
                delegate(CommandRef ref1, CommandRef ref2)
                {
                    return ref1.getName().CompareTo(ref2.getName());
                }
            );
            return c;
        }
    }
}


================================================
FILE: Git/CommandRef.cs
================================================
/*
 * Copyright (C) 2008, Shawn O. Pearce <spearce@spearce.org>
 * Copyright (C) 2009, Rolenun <rolenun@gmail.com>
 *
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or
 * without modification, are permitted provided that the following
 * conditions are met:
 *
 * - Redistributions of source code must retain the above copyright
 *   notice, this list of conditions and the following disclaimer.
 *
 * - Redistributions in binary form must reproduce the above
 *   copyright notice, this list of conditions and the following
 *   disclaimer in the documentation and/or other materials provided
 *   with the distribution.
 *
 * - Neither the name of the Git Development Community nor the
 *   names of its contributors may be used to endorse or promote
 *   products derived from this software without specific prior
 *   written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
 * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */

using System;
using System.Text;


namespace GitSharp.CLI
{

    /// <summary>
    /// Description of a command subcommand.
    ///
    /// These descriptions are lightweight compared to creating a command instance
    /// and are therefore suitable for catalogs of "known" commands without linking
    /// the command's implementation and creating a dummy instance of the command.
    /// </summary>
    public class CommandRef
    {
        private TextBuiltin impl;
        private String name;
        private String usage;
        private String cmdHelp;
        private bool requiresRepository;
        bool complete;
        bool common;

        public CommandRef(TextBuiltin clazz)
            : this(clazz, clazz.getCommandName())
        {

        }

        public CommandRef(TextBuiltin clazz, String cn) 
        {
            impl = (TextBuiltin)clazz;
            name = cn;
            Command cmd = impl.GetCommand();
            if (cmd != null)
            {
                common = cmd.common;
                complete = cmd.complete;
                usage = cmd.usage;
                cmdHelp = clazz.getCommandHelp();
                requiresRepository = cmd.requiresRepository;
            }
        }

        /// <summary>
        /// Returns the friendly command name. The command as invoked from the command line.
        /// </summary>
        public String getName()
        {
            return name;
        }

        /// <summary>
        /// Returns a one line description of the command's feature set.
        /// </summary>
        public String getUsage()
        {
            return usage;
        }
         
        /// <summary>
        /// Returns true if this command is considered to be commonly used.
        /// </summary>
        /// <returns></returns>
        public bool isCommon()
        {
            return common;
        }

        /// <summary>
        /// Returns true if this command is considered to be completed.
        /// </summary>
        /// <returns></returns>
        public bool isComplete()
        {
            return complete;
        }

        /// <summary>
        /// Returns true if this command requires a repository.
        /// </summary>
        /// <returns></returns>
        public bool RequiresRepository()
        {
            return requiresRepository;
        }

        /// <summary>
        /// Returns the name of the class which implements this command.
        /// </summary>
        /// <returns></returns>
        public String getImplementationClassName()
        {
            return impl.ToString();
        }

        /// <summary>
        /// Returns a new instance of the command implementation.
        /// </summary>
        /// <returns></returns>
        public TextBuiltin Create()
        {
            TextBuiltin c = Activator.CreateInstance(Type.GetType(impl.ToString())) as TextBuiltin;
            if (c != null)
            {
                c.setCommandHelp(cmdHelp);
                c.RequiresRepository = requiresRepository;
                return c;
            }
            else
            {
                return null;
            }
        }
    }
}

================================================
FILE: Git/Commands/Add.cs
================================================
/*
 * Copyright (C) 2008, Shawn O. Pearce <spearce@spearce.org>
 * Copyright (C) 2009, Rolenun <rolenun@gmail.com>
 *
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or
 * without modification, are permitted provided that the following
 * conditions are met:
 *
 * - Redistributions of source code must retain the above copyright
 *   notice, this list of conditions and the following disclaimer.
 *
 * - Redistributions in binary form must reproduce the above
 *   copyright notice, this list of conditions and the following
 *   disclaimer in the documentation and/or other materials provided
 *   with the distribution.
 *
 * - Neither the name of the Git Development Community nor the
 *   names of its contributors may be used to endorse or promote
 *   products derived from this software without specific prior
 *   written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
 * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */

using System;
using System.Collections.Generic;
using NDesk.Options;
using GitSharp.Commands;

namespace GitSharp.CLI
{
    [Command(complete = false, common = true, requiresRepository = true, usage = "Add file contents to the index")]
    class Add : TextBuiltin
    {
        private AddCommand cmd = new AddCommand();

        private static Boolean isHelp = false;

#if ported
        private static Boolean isDryRun = false;
        private static Boolean isVerbose = false;
        private static Boolean isForced = false;
        private static Boolean isInteractive = false;
        private static Boolean isUpdateKnown = false;
        private static Boolean isUpdateAll = false;
        private static Boolean isIntentToAdd = false;
        private static Boolean isRefreshOnly = false;
        private static Boolean isIgnoreErrors = false;
#endif

        override public void Run(String[] args)
        {
            options = new CmdParserOptionSet()
            {
                { "h|help", "Display this help information. To see online help, use: git help <command>", v=>OfflineHelp()},
#if ported
                { "n|dry-run", "Don't actually add the files, just show if they exist.", v=>{isDryRun = true;}},
                { "v|verbose", "Be verbose.", v=> {isVerbose = true;}},
                { "f|force", "Allow adding otherwise ignored files.", v=> {isForced = true;}},
                { "i|interactive", "Interactive picking.", v=>{isInteractive = true;}},
                { "p|patch", "Interactive patching.", v=>DoPatch()},
                { "e|edit", "Open the diff vs. the index in an editor and let the user edit it.", v=>DoEdit()},
                { "u|update", "Update tracked files.", v=> {isUpdateKnown = true;}},
                { "A|all", "Add all files, noticing removal of tracked files.", v=>{isUpdateAll = true;}},
                { "N|intent-to-add", "Record only the fact the path will be added later.", v=>{isIntentToAdd = true;}},
                { "refresh", "Don't add the files, only refresh the index.", v=> {isRefreshOnly = true;}},
                { "ignore-errors", "Just skip files which cannot be added because of errors.", v=>{isIgnoreErrors = true;}},
#endif
            };

            try
            {
                List<String> arguments = ParseOptions(args);
                if (arguments.Count > 0)
                {
                    //Add the file(s)
                    //DoAdd(arguments);
                    try
                    {
                        cmd.Arguments = arguments;
                        cmd.Execute();
                    }
                    catch (ArgumentException e)
                    {
                        Console.WriteLine("Path does not exist: " + e.ParamName);
                        Console.WriteLine("Adding path(s) has been aborted.");
                    }
                }
                else if (args.Length <= 0)
                {
                    //Display the modified files for the existing repository
                    Console.WriteLine("Nothing specified, nothing added.");
                    Console.WriteLine("Maybe you wanted to say 'git add .'?");
                }
                else
                {
                    OfflineHelp();
                }
            }
            catch (OptionException e)
            {
                Console.WriteLine(e.Message);
            }
        }

        private void OfflineHelp()
        {
            if (!isHelp)
            {
                isHelp = true;
                Console.WriteLine("usage: git add [options] [--] <filepattern>..."); 
                Console.WriteLine(); 
                options.WriteOptionDescriptions(Console.Out); 
            }
        }

        private void DoAdd(List<String> filesAdded)
        {
            Console.WriteLine("This command still needs to be implemented.");
        }

        private void DoEdit()
        {
            Console.WriteLine("This option still needs to be implemented.");
        }

        private void DoPatch()
        {
            Console.WriteLine("This option still needs to be implemented.");
        }

    }
}


================================================
FILE: Git/Commands/Checkout.cs
================================================
/*
 * Copyright (C) 2008, Shawn O. Pearce <spearce@spearce.org>
 * Copyright (C) 2009, Rolenun <rolenun@gmail.com>
 *
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or
 * without modification, are permitted provided that the following
 * conditions are met:
 *
 * - Redistributions of source code must retain the above copyright
 *   notice, this list of conditions and the following disclaimer.
 *
 * - Redistributions in binary form must reproduce the above
 *   copyright notice, this list of conditions and the following
 *   disclaimer in the documentation and/or other materials provided
 *   with the distribution.
 *
 * - Neither the name of the Git Development Community nor the
 *   names of its contributors may be used to endorse or promote
 *   products derived from this software without specific prior
 *   written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
 * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
using System;
using System.Collections.Generic;
using System.Text;
using NDesk.Options;
using GitSharp.Commands;

namespace GitSharp.CLI
{
    [Command(complete = false, common = true, requiresRepository = true, usage = "Checkout a branch or paths to the working tree")]
    public class Checkout : TextBuiltin
    {
        private CheckoutCommand cmd = new CheckoutCommand();

        private static Boolean isHelp = false;

#if ported
        private static Boolean isQuiet = false;
        private static Boolean isForced = false;
        private static Boolean isTracked = false;
        private static Boolean isNoTrack = false;
        private static Boolean isMerging = false;
        private static Boolean isOurs = false;
        private static Boolean isTheirs = false;
        private static Boolean isConflict = false;
        private static string branchName = "";
#endif

        override public void Run(string[] args)
        {
            options = new CmdParserOptionSet()
            {
                { "h|help", "Display this help information. To see online help, use: git help <command>", v=>OfflineHelp()},
                { "q|quiet", "Quiet, suppress feedback messages", v => cmd.Quiet = false },
#if ported
                { "f|force", "Force checkout and ignore unmerged changes", v=>{isForced = true;}},
                { "ours", "For unmerged paths, checkout stage #2 from the index", v=>{isOurs = true;}},
                { "theirs", "For unmerged paths, checkout stage #3 from the index", v=>{isTheirs = true;}},
                { "b|branch=", "Create a new {branch}",(string v) => branchName = v },
                { "t|track", "Set the upstream configuration", v=>{isTracked = true;}},
                { "no-track", "Do not set the upstream configuration", v=>{isNoTrack = true;}},
                { "l", "Create the new branch's reflog", v=>RefLog()},
                { "m|merge", "Perform a three-way merge between the current branch, your working tree contents " +
                    "and the new branch", v=>{isMerging = true;}},
                { "conflict","Same as merge above, but changes how the conflicting hunks are presented", isConflict = true},
                { "p|patch", "Creates a diff and applies it in reverse order to the working tree", v=>Patch()}

               // [Mr Happy] this should be compatible w/ the CommandStub, haven't checked yet tho.
               //{ "f|force", "When switching branches, proceed even if the index or the working tree differs from HEAD", v => cmd.Force = true },
               //{ "ours", "When checking out paths from the index, check out stage #2 ('ours') or #3 ('theirs') for unmerged paths", v => cmd.Ours = true },
               //{ "theirs", "When checking out paths from the index, check out stage #2 ('ours') or #3 ('theirs') for unmerged paths", v => cmd.Theirs = true },
               //{ "b=", "Create a new branch named <new_branch> and start it at <start_point>; see linkgit:git-branch[1] for details", v => cmd.B = v },
               //{ "t|track", "When creating a new branch, set up "upstream" configuration", v => cmd.Track = true },
               //{ "no-track", "Do not set up "upstream" configuration, even if the branch", v => cmd.NoTrack = true },
               //{ "l", "Create the new branch's reflog; see linkgit:git-branch[1] for details", v => cmd.L = true },
               //{ "m|merge", "When switching branches, if you have local modifications to one or more files that are different between the current branch and the branch to which you are switching, the command refuses to switch branches in order to preserve your modifications in context", v => cmd.Merge = true },
               //{ "conflict=", "The same as --merge option above, but changes the way the conflicting hunks are presented, overriding the merge", v => cmd.Conflict = v },
               //{ "p|patch", "Interactively select hunks in the difference between the <tree-ish> (or the index, if unspecified) and the working tree", v => cmd.Patch = true },
#endif
            };

            try
            {
                List<String> arguments = ParseOptions(args);
                if ((arguments.Count > 0) || (args.Length <=0))
                {
                    //Checkout the new repository
                    cmd.Arguments = arguments;
                    cmd.Execute();
                    
                    if (!cmd.Quiet)
                    {
                        //Display FileNotFound errors, but process checkout request for all found files first.
                        foreach (string file in cmd.Results.FileNotFoundList)
                            OutputStream.WriteLine("error: pathspec '" + file + "' did not match any file(s) known to GitSharp.");
                    }
                }
                else
                {
                    OfflineHelp();
                }
            } catch (OptionException e) {
                Console.WriteLine(e.Message);
            }
        }

        private void OfflineHelp()
        {
            if (!isHelp)
            {
                isHelp = true;
                Console.WriteLine("usage:");
                Console.WriteLine("       git checkout [-q] [-f] [-m] [<branch>]");
                Console.WriteLine("       git checkout [-q] [-f] [-m] [-b <new_branch>] [<start_point>]");
                Console.WriteLine("       git checkout [-f|--ours|--theirs|-m|--conflict=<style>] [<tree-ish>] [--] <paths>...");
                Console.WriteLine("       git checkout --patch [<tree-ish>] [--] [<paths>...]");
                Console.WriteLine("\nThe available options for this command are:\n");
                Console.WriteLine();
                options.WriteOptionDescriptions(Console.Out);
                Console.WriteLine();
            }
        }

        private void RefLog()
        {
        }

        private void Patch(String treeish)
        {
        }
    }
}


================================================
FILE: Git/Commands/Clone.cs
================================================
/*
 * Copyright (C) 2008, Google Inc.
 * Copyright (C) 2008, Caytchen 
 * Copyright (C) 2008, Rolenun
 *
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or
 * without modification, are permitted provided that the following
 * conditions are met:
 *
 * - Redistributions of source code must retain the above copyright
 *   notice, this list of conditions and the following disclaimer.
 *
 * - Redistributions in binary form must reproduce the above
 *   copyright notice, this list of conditions and the following
 *   disclaimer in the documentation and/or other materials provided
 *   with the distribution.
 *
 * - Neither the name of the Git Development Community nor the
 *   names of its contributors may be used to endorse or promote
 *   products derived from this software without specific prior
 *   written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
 * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */

using System;
using System.Collections.Generic;
using GitSharp.Commands;
using NDesk.Options;


namespace GitSharp.CLI
{

    [Command(common=true, requiresRepository=false, usage = "Clone a repository into a new directory")]
    public class Clone : TextBuiltin
    {
        private CloneCommand cmd = new CloneCommand();

        /*
         * private static Boolean isHelp = false;              //Complete        
        private static Boolean isQuiet = false;        
        private static Boolean isVerbose = false;        
        private static Boolean isNoCheckout = false;        //Complete        
        private static Boolean isCreateBareRepo = false;    //In progress        
        private static Boolean isCreateMirrorRepo = false;  //More info needed        
        private static Boolean isNoHardLinks = false;       //Unimplemented        
        private static Boolean isShared = false;            //Unimplemented        
        private static String templateRepo = "";            //More info needed        
        private static String referenceRepo = "";           //More info needed        
        private static String optionOrigin = "";            //Complete        
        private static String uploadPack = "";              //More info needed        
        private static Int32 depth = 0;                     //More info needed
        */
        private static Boolean isHelp = false;

        public override void Run(string[] args)
        {
            cmd.Quiet = false;
			
            options = new CmdParserOptionSet()
            {
                { "h|help", "Display this help information. To see online help, use: git help <command>", v=>OfflineHelp()},
                { "q|quiet", "Be quiet", v => cmd.Quiet = true},
                { "v|verbose", "Be verbose", v => cmd.Quiet = false},
                { "n|no-checkout", "Don't create a checkout", v => cmd.NoCheckout = true},
                { "bare", "Create a bare repository", v=> cmd.Bare = true},
                { "naked", "Create a bare repository", v => cmd.Bare = true},
                { "mirror", "Create a mirror repository (implies bare)", v => cmd.Mirror = true},
                { "l|local", "To clone from a local repository", v => {}}, // was: die("--local is the default behavior. This option is no-op.").  [henon] I think we should silently ignore that switch instead of exiting.
                { "no-hardlinks", "(No-op) Do not use hard links, always copy", v => die("--no-hardlinks is not supported")},
                { "s|shared", "(No-op) Setup as shared repository", v => die("--shared is not supported")},
                { "template=", "{Path} the template repository",(string v) => cmd.TemplateDirectory = v },
                { "reference=", "Reference {repo}sitory",(string v) => cmd.ReferenceRepository = v },
                { "o|origin=", "Use <{branch}> instead of 'origin' to track upstream",(string v) => cmd.OriginName = v },
                { "u|upload-pack=", "{Path} to git-upload-pack on the remote",(string v) => cmd.UploadPack = v },
                { "depth=", "Create a shallow clone of that {depth}",(int v) => cmd.Depth = v },
                { "git-dir", "Set the new directory to clone into", (string v) => cmd.GitDirectory = v },
            };

            try
            {
                List<String> arguments = ParseOptions(args);
                if (arguments.Count != 1 && arguments.Count != 2)
                {
                    OfflineHelp();
                    return;
                }

                cmd.Source = arguments[0];

                if (arguments.Count == 2) // <directory> parameter is optional
                {
                    cmd.Directory = arguments[1];
                }
                
                cmd.Execute();
            }
            catch (Exception e)            
            {
                cmd.OutputStream.WriteLine(e.Message);
            }
        }

        private void OfflineHelp()
        {
            if (!isHelp)
            {
                isHelp = true;
                cmd.OutputStream.WriteLine("usage: git clone [options] [--] <repo> [<dir>]");
                cmd.OutputStream.WriteLine();
                options.WriteOptionDescriptions(Console.Out);
                cmd.OutputStream.WriteLine();
            }
        }
    }
}

================================================
FILE: Git/Commands/Commit.cs
================================================
/*
 * Copyright (C) 2008, Shawn O. Pearce <spearce@spearce.org>
 * Copyright (C) 2009, Rolenun <rolenun@gmail.com>
 *
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or
 * without modification, are permitted provided that the following
 * conditions are met:
 *
 * - Redistributions of source code must retain the above copyright
 *   notice, this list of conditions and the following disclaimer.
 *
 * - Redistributions in binary form must reproduce the above
 *   copyright notice, this list of conditions and the following
 *   disclaimer in the documentation and/or other materials provided
 *   with the distribution.
 *
 * - Neither the name of the Git Development Community nor the
 *   names of its contributors may be used to endorse or promote
 *   products derived from this software without specific prior
 *   written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
 * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */

using System;
using System.Collections.Generic;
using NDesk.Options;

namespace GitSharp.CLI
{
    [Command(complete = false, common = true, usage = "Record changes to the repository")]
    class Commit : TextBuiltin
    {
        private static Boolean isHelp = false;

#if ported
        private static Boolean isCommitAll = false;
        private static String reUseMessage = "";
        private static String reEditMessage = "";
        private static String cleanupOption = "default";
        private static String untrackedFileMode = "all";
        private static String message = "";
        private static String author = "";
        private static String logFile = "";
        private static String templateFile = "";
        private static Boolean isSignOff= false;
        private static Boolean isNoVerify = false;
        private static Boolean isAllowEmpty = false;
        private static Boolean isAmend = false;
        private static Boolean isForceEdit = false;
        private static Boolean isInclude = false;
        private static Boolean isCommitOnly = false;
        private static Boolean isInteractive = false;
        private static Boolean isVerbose = false;
        private static Boolean isQuiet = false;
        private static Boolean isDryRun = false;
#endif

        override public void Run(String[] args)
        {
            options = new CmdParserOptionSet()
            {
                { "h|help", "Display this help information. To see online help, use: git help <command>", v=>OfflineHelp()},
#if ported
                { "v|verbose", "Be verbose", v=>{isVerbose = true;}},
                { "q|quiet", "Be quiet", v=>{isQuiet = true;}},
                { "F|file=", "Read log from {file}", (string v) => logFile = v },
                { "author=", "Override {author} for commit", (string v) => author = v },
                { "m|message=", "Specify commit {message}", (string v) => message = v },
                { "c|reedit-message=", "Reuse and edit {message} from specified commit", (string v) => reEditMessage = v },
                { "C|reuse-message=", "Reuse {message} from specified commit", (string v) => reUseMessage = v },
                { "s|signoff", "Add Signed-off-by:", v=>{isSignOff = true;}},
                { "t|template=", "Use specified {template} file", (string v) => templateFile = v },
                { "e|edit", "Force edit of commit", v=>{isForceEdit = true;}},
                { "a|all", "Commit all changed files.", v=>{isCommitAll = true;}},
                { "i|include", "Add specified files to index for commit", v=>{isInclude = true;}},
                { "interactive", "Interactively add files", v=>{isInteractive = true;}},
                { "o|only", "Commit only specified files", v=>{isCommitOnly = true;}},
                { "n|no-verify", "Bypass pre-commit hook", v=>{isNoVerify = true;}},
                { "amend", "Amend previous commit", v=>{isAmend = true;}},
                { "u|untracked-files=", "Show untracked files, optional {MODE}s: all, normal, no.", (string v) => untrackedFileMode = v },
                { "allow-empty", "Ok to record an empty change", v=> {isAllowEmpty = true;}},
                { "cleanup=", "How to strip spaces and #comments from message. Options are: " +
                    "verbatim, whitespace, strip, and default.", (string v) => cleanupOption = v },
                { "dry-run", "Don't actually commit the files, just show if they exist.", v=>{isDryRun = true;}},


               // [Mr Happy] There are the options that should be compatible w/ the stub, placed for convenience only.
 //              { "h|help", "Display this help information. To see online help, use: git help <command>", v=>OfflineHelp()},
 //              { "a|all", "Tell the command to automatically stage files that have been modified and deleted, but new files you have not told git about are not affected", v => cmd.All = true },
 //              { "C|reuse-message=", "Take an existing commit object, and reuse the log message and the authorship information (including the timestamp) when creating the commit", v => cmd.ReuseMessage = v },
 //              { "c|reedit-message=", "Like '-C', but with '-c' the editor is invoked, so that the user can further edit the commit message", v => cmd.ReeditMessage = v },
 //              { "reset-author", "When used with -C/-c/--amend options, declare that the authorship of the resulting commit now belongs of the committer", v => cmd.ResetAuthor = true },
 //              { "F|file=", "Take the commit message from the given file", v => cmd.File = v },
 //              { "author=", "Override the author name used in the commit", v => cmd.Author = v },
 //              { "m|message=", "Use the given <msg> as the commit message", v => cmd.Message = v },
 //              { "t|template=", "Use the contents of the given file as the initial version of the commit message", v => cmd.Template = v },
 //              { "s|signoff", "Add Signed-off-by line by the committer at the end of the commit log message", v => cmd.Signoff = true },
 //              { "n|no-verify", "This option bypasses the pre-commit and commit-msg hooks", v => cmd.NoVerify = true },
 //              { "allow-empty", "Usually recording a commit that has the exact same tree as its sole parent commit is a mistake, and the command prevents you from making such a commit", v => cmd.AllowEmpty = true },
 //              { "cleanup=", "This option sets how the commit message is cleaned up", v => cmd.Cleanup = v },
 //              { "e|edit", "The message taken from file with `-F`, command line with `-m`, and from file with `-C` are usually used as the commit log message unmodified", v => cmd.Edit = true },
 //              { "amend", "Used to amend the tip of the current branch", v => cmd.Amend = true },
 #endif
            };

            try
            {
                List<String> arguments = ParseOptions(args);
                if (arguments.Count > 0)
                {
                    //Execute the commit using the specified file pattern
                    DoCommit(arguments[0]);
                }
                else if (args.Length <= 0)
                {
                    //Display status if no changes are added to commit
                    //If changes have been made, commit them?
                    Console.WriteLine("These commands still need to be implemented.");
                }
                else
                {
                    OfflineHelp();
                }
            }
            catch (OptionException e)
            {
                Console.WriteLine(e.Message);
            }
        }

        private void OfflineHelp()
        {
            if (!isHelp)
            {
                isHelp = true;
                Console.WriteLine("usage: git commit [options] [--] <filepattern>...");
                Console.WriteLine();
                options.WriteOptionDescriptions(Console.Out);
            }
        }

        public void DoCommit(String filepattern)
        {
            Console.WriteLine("This command still needs to be implemented.");
        }
    }
}


================================================
FILE: Git/Commands/Config.cs
================================================
/*
 * Copyright (C) 2008, Google Inc.
 * Copyright (C) 2009, Rolenun
 *
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or
 * without modification, are permitted provided that the following
 * conditions are met:
 *
 * - Redistributions of source code must retain the above copyright
 *   notice, this list of conditions and the following disclaimer.
 *
 * - Redistributions in binary form must reproduce the above
 *   copyright notice, this list of conditions and the following
 *   disclaimer in the documentation and/or other materials provided
 *   with the distribution.
 *
 * - Neither the name of the Git Development Community nor the
 *   names of its contributors may be used to endorse or promote
 *   products derived from this software without specific prior
 *   written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
 * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */

using System;
using System.Collections.Generic;
using GitSharp.Commands;
using NDesk.Options;


namespace GitSharp.CLI
{

    [Command(complete=false, common=true, requiresRepository=true, usage = "Get and set repository or global options")]
    public class Config : TextBuiltin
    {
        private ConfigCommand cmd = new ConfigCommand();

        private static Boolean isHelp = false;

        public override void Run(string[] args)
        {
			
            options = new CmdParserOptionSet()
            {
                { "h|help", "Display this help information. To see online help, use: git help <command>", v=>OfflineHelp()},
/*                { "replace-all", "Replaces all lines matching the key (and optionally the value_regex).", v => cmd.ReplaceAll = true},
                { "add", "Adds a new line to the option without altering any existing values.", v => cmd.Add = false},
                { "get", "Get the value for a given key", v => cmd.Get = true},
                { "get-all", "Like get, but can handle multiple values for the key.", v=> cmd.GetAll = true},
                { "get-regexp", "Like --get-all, but interprets the name as a regular expression", v => cmd.GetRegExp = true},
                { "global", "Use the per-user config file instead of the default.", v => cmd.Global = true},
                { "system", "Use the system-wide config file instead of the default.", v => cmd.System = true},
                { "f|file", "Use the given config file instead of the one specified by GIT_CONFIG", (string v) => cmd.File = v},
                { "remove-section", "Remove the given section from the configuration file", v => cmd.RemoveSection = true},
                { "rename-section", "Rename the given section to a new name", v => cmd.RenameSection = true},
                { "unset", "Remove the line matching the key from config file", v => cmd.UnSet = true},
                { "unset-all", "Remove all lines matching the key from config file", v => cmd.UnSetAll = true},*/
                { "l|list", "List all variables set in config file", v => cmd.List = true},
/*                { "bool", "Ensure that the output is true or false", v => cmd.Bool = true },
                { "int", "Ensure that the output is a simple decimal number", v => cmd.Int = true },
                { "bool-or-int", "Ensure that the output matches the format of either --bool or --int, as described above", v => cmd.BoolOrInt = true },
                { "z|null", "Always end values with null character instead of newlines", v => cmd.Null = true },
                { "get-colorbool", "Find the color setting for {name} and output as true or false", v => cmd.GetColorBool = true },
                { "get-color", "Find the color configured for {name}", v => cmd.GetColor = true },
                { "e|edit", "Opens an editor to modify the specified config file as --global, --system, or repository (default)", v => cmd.Edit = true },*/
            };

            try
            {
                List<String> arguments = ParseOptions(args);
                if (arguments.Count > 0)
                {
                	cmd.Arg1 = arguments[0];
                	
                	if (arguments.Count > 1)
						cmd.Arg2 = arguments[1];
                	else
                		cmd.Arg2 = "";
	               	
                	if (arguments.Count > 2)
	                	cmd.Arg3 = arguments[2];
                	else
                		cmd.Arg3 = "";

                    cmd.Execute();
                }
                else if (cmd.List)
                {
                    cmd.Execute();
                }
                else
                {
                    OfflineHelp();
                }
            }
            catch (Exception e)            
            {
                cmd.OutputStream.WriteLine(e.Message);
            }
        }

        private void OfflineHelp()
        {
            if (!isHelp)
            {
                isHelp = true;
                cmd.OutputStream.WriteLine("usage: git config [file-option] [options]");
                cmd.OutputStream.WriteLine();
                options.WriteOptionDescriptions(Console.Out);
                cmd.OutputStream.WriteLine();
            }
        }
    }
}

================================================
FILE: Git/Commands/Fetch.cs
================================================
/*
 * Copyright (C) 2008, Shawn O. Pearce <spearce@spearce.org>
 * Copyright (C) 2009, Rolenun <rolenun@gmail.com>
 *
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or
 * without modification, are permitted provided that the following
 * conditions are met:
 *
 * - Redistributions of source code must retain the above copyright
 *   notice, this list of conditions and the following disclaimer.
 *
 * - Redistributions in binary form must reproduce the above
 *   copyright notice, this list of conditions and the following
 *   disclaimer in the documentation and/or other materials provided
 *   with the distribution.
 *
 * - Neither the name of the Git Development Community nor the
 *   names of its contributors may be used to endorse or promote
 *   products derived from this software without specific prior
 *   written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
 * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */

using System;
using System.Collections.Generic;
using NDesk.Options;

namespace GitSharp.CLI
{
    [Command(complete = false, common = true, usage = "Download objects and refs from another repository")]
    class Fetch : TextBuiltin
    {
        private static Boolean isHelp = false;

#if ported
        private static Boolean isQuiet = false;
        private static Boolean isVerbose = false;
        private static Boolean isAppend = false;
        private static String uploadPack = "";
        private static Boolean isForced = false;
        private static Boolean isTags = false;
        private static Boolean isNoTags = false;
        private static Boolean isKeep = false;
        private static Boolean isUpdateHeadOk = false;
        private static Int32 depth = 0;
#endif 

        override public void Run(String[] args)
        {
            options = new CmdParserOptionSet()
            {
                { "h|help", "Display this help information. To see online help, use: git help <command>", v=>OfflineHelp()},

#if ported
                { "q|quiet", "Be quiet", v=>{isQuiet = true;}},
                { "v|verbose", "Be verbose", v=>{isVerbose = true;}},
                { "append", "Append to .git/FETCH_HEAD instead of overwriting", v=>{isAppend = true;}},
                { "upload-pack=", "{Path} to upload pack on remote end", (string v) => uploadPack = v },
                { "force", "Force overwrite of local branch", v=> {isForced = true;}},
                { "tags", "Fetch all tags and associated objects", v=>{isTags = true;} },
                { "no-tags", "Disable tags from being fetched and stored locally", v=>{isNoTags = true;}},
                { "k|keep", "Keep download pack", v=>{isKeep = true;}},
                { "u|update-head-ok", "Allow updating of HEAD ref", v=>{isUpdateHeadOk = true;}},
                { "depth=", "Deepen the history of a shallow repository created by git clone", (int v) => depth = v },
#endif
            };

            try
            {
                List<String> arguments = ParseOptions(args);
                if (arguments.Count > 0)
                {
                    DoFetch(arguments);
                }
                else if (args.Length <= 0)
                {
                    // DoFetch with preset arguments
                    Console.WriteLine("This command still needs to be implemented.");

                }
                else
                {
                    OfflineHelp();
                }
            }
            catch (OptionException e)
            {
                Console.WriteLine(e.Message);
            }
        }

        private void OfflineHelp()
        {
            if (!isHelp)
            {
                isHelp = true;
                Console.WriteLine("usage: git fetch [options] [<repository> <refspec>...]");
                Console.WriteLine();
                options.WriteOptionDescriptions(Console.Out);
            }
        }

        private void DoFetch(List<String> args)
        {
            Console.WriteLine("This command still needs to be implemented.");
        }
    }
}


================================================
FILE: Git/Commands/Help.cs
================================================
/*
 * Copyright (C) 2008, Shawn O. Pearce <spearce@spearce.org>
 * Copyright (C) 2009, Henon <meinrad.recheis@gmail.com>
 *
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or
 * without modification, are permitted provided that the following
 * conditions are met:
 *
 * - Redistributions of source code must retain the above copyright
 *   notice, this list of conditions and the following disclaimer.
 *
 * - Redistributions in binary form must reproduce the above
 *   copyright notice, this list of conditions and the following
 *   disclaimer in the documentation and/or other materials provided
 *   with the distribution.
 *
 * - Neither the name of the Git Development Community nor the
 *   names of its contributors may be used to endorse or promote
 *   products derived from this software without specific prior
 *   written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
 * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */

using System;
using System.Linq;

namespace GitSharp.CLI.Nonstandard
{
    [Command(complete = false, common = true, usage = "Displays the online help for the command. Use --help for offline options")]
    class Help : TextBuiltin
    {

        override public void Run(String[] args)
        {
            CommandCatalog catalog = new CommandCatalog();
            if (args.Length > 0)
            {
                CommandRef subcommand = catalog.Get(args[0]);
                if (subcommand != null)
                {
                    TextBuiltin cmd = subcommand.Create();
                    cmd.OnlineHelp();
                }
                else
                {
                    OfflineHelp();
                }
            }
            else
            {
                OfflineHelp();
            }
        }

        private static void OfflineHelp()
        {
            Console.WriteLine("usage: git help <command> ");
        }
    }
}


================================================
FILE: Git/Commands/Init.cs
================================================
/*
 * Copyright (C) 2008, Google Inc.
 * Copyright (C) 2009, Henon <meinrad.recheis@gmail.com>
 *
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or
 * without modification, are permitted provided that the following
 * conditions are met:
 *
 * - Redistributions of source code must retain the above copyright
 *   notice, this list of conditions and the following disclaimer.
 *
 * - Redistributions in binary form must reproduce the above
 *   copyright notice, this list of conditions and the following
 *   disclaimer in the documentation and/or other materials provided
 *   with the distribution.
 *
 * - Neither the name of the Git Development Community nor the
 *   names of its contributors may be used to endorse or promote
 *   products derived from this software without specific prior
 *   written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
 * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */

using System;
using System.Collections.Generic;
using System.IO;
using GitSharp.Commands;

namespace GitSharp.CLI
{

    [Command(common = true, complete = false, usage = "Create an empty git repository")]
    class Init : TextBuiltin
    {
        private InitCommand cmd = new InitCommand();

        private static Boolean isHelp = false;

        public override void Run(string[] args)
        {
            cmd.Quiet = false; // [henon] the api defines the commands quiet by default. thus we need to override with git's default here.
            
            options = new CmdParserOptionSet
            {
                {"bare", "Create a bare repository", v => cmd.Bare = true},
                {"quiet|q", "Only print error and warning messages, all other output will be suppressed.", v => cmd.Quiet = true},
                {"template", "Not supported.", var => OutputStream.WriteLine("--template=<template dir> is not supported")},
                {"shared", "Not supported.", var => OutputStream.WriteLine("--shared is not supported")},
            };

            try
            {
                List<String> arguments = ParseOptions(args);
                cmd.Execute();
				cmd.OutputStream.WriteLine(cmd.Repository.Directory);
            }
            catch (Exception e)
            {
                cmd.OutputStream.WriteLine(e.Message);
            }

        }

        private void OfflineHelp()
        {
            if (!isHelp)
            {
                isHelp = true;
                cmd.OutputStream.WriteLine("usage: git init [options] [directory]");
                cmd.OutputStream.WriteLine();
                options.WriteOptionDescriptions(Console.Out);
                cmd.OutputStream.WriteLine();
            }
        }
        //private void create()
        //{
        //    if (gitdir == null)
        //        gitdir = bare ? Environment.CurrentDirectory : Path.Combine(Environment.CurrentDirectory, Constants.DOT_GIT);
        //    db = new Repository(new DirectoryInfo(gitdir));
        //    db.Create(bare);
        //    Console.WriteLine("Initialized empty Git repository in " + (new DirectoryInfo(gitdir)).FullName);
        //}
    }

}

================================================
FILE: Git/Commands/Log.cs
================================================
/*
 * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>
 * Copyright (C) 2010, Andrew Cooper <andymancooper@gmail.com>
 *
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or
 * without modification, are permitted provided that the following
 * conditions are met:
 *
 * - Redistributions of source code must retain the above copyright
 *   notice, this list of conditions and the following disclaimer.
 *
 * - Redistributions in binary form must reproduce the above
 *   copyright notice, this list of conditions and the following
 *   disclaimer in the documentation and/or other materials provided
 *   with the distribution.
 *
 * - Neither the name of the Git Development Community nor the
 *   names of its contributors may be used to endorse or promote
 *   products derived from this software without specific prior
 *   written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
 * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */

using GitSharp.Commands;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;

namespace GitSharp.CLI
{

    [Command(common=true, requiresRepository=true, usage = "")]
    public class Log : TextBuiltin
    {
        private LogCommand cmd = new LogCommand();
        private static Boolean isHelp;

        public override void Run(string[] args)
        {
            cmd.Quiet = false;
			
            options = new CmdParserOptionSet()
            {
               { "h|help", "Display this help information. To see online help, use: git help <command>", v=>OfflineHelp()},
               { "n=", "Limits the number of commits to show", v => cmd.n = v },
               { "decorate=", "Print out the ref names of any commits that are shown", v => cmd.Decorate = v },
               { "source", "Print out the ref name given on the command line by which each commit was reached", v => cmd.Source = true },
               { "full-diff=", "Without this flag, \"git log -p <path>", v => cmd.FullDiff = v },
               { "follow", "Continue listing the history of a file beyond renames", v => cmd.Follow = true },
               { "log-size", "Before the log message print out its size in bytes", v => cmd.LogSize = true },
               { "p|no-stat", "ifdef::git-format-patch[] Generate plain patches without any diffstats", v => cmd.NoStat = true },
               { "P", "ifndef::git-format-patch[] Generate patch (see section on generating patches)", v => cmd.P = true },
               { "u", "ifndef::git-format-patch[] Generate patch (see section on generating patches)", v => cmd.U = true },
               { "U|unified=", "Generate diffs with <n> lines of context instead of the usual three", v => cmd.Unified = v },
               { "raw", "ifndef::git-format-patch[] Generate the raw format", v => cmd.Raw = true },
               { "patch-with-raw", "ifndef::git-format-patch[] Synonym for `-p --raw`", v => cmd.PatchWithRaw = true },
               { "patience", "Generate a diff using the \"patience diff\" algorithm", v => cmd.Patience = true },
               { "stat=", "Generate a diffstat", v => cmd.Stat = v },
               { "numstat", "Similar to `--stat`, but shows number of added and deleted lines in decimal notation and pathname without abbreviation, to make it more machine friendly", v => cmd.Numstat = true },
               { "shortstat", "Output only the last line of the `--stat` format containing total number of modified files, as well as number of added and deleted lines", v => cmd.Shortstat = true },
               { "dirstat=", "Output the distribution of relative amount of changes (number of lines added or removed) for each sub-directory", v => cmd.Dirstat = v },
               { "dirstat-by-file=", "Same as `--dirstat`, but counts changed files instead of lines", v => cmd.DirstatByFile = v },
               { "summary", "Output a condensed summary of extended header information such as creations, renames and mode changes", v => cmd.Summary = true },
               { "patch-with-stat", "ifndef::git-format-patch[] Synonym for `-p --stat`", v => cmd.PatchWithStat = true },
               { "z", "ifdef::git-log[] Separate the commits with NULs instead of with new newlines", v => cmd.Z = true },
               { "name-only", "Show only names of changed files", v => cmd.NameOnly = true },
               { "name-status", "Show only names and status of changed files", v => cmd.NameStatus = true },
               { "submodule=", "Chose the output format for submodule differences", v => cmd.Submodule = v },
               { "color", "Show colored diff", v => cmd.Color = true },
               { "no-color", "Turn off colored diff, even when the configuration file gives the default to color output", v => cmd.NoColor = true },
               { "color-words=", "Show colored word diff, i", v => cmd.ColorWords = v },
               { "no-renames", "Turn off rename detection, even when the configuration file gives the default to do so", v => cmd.NoRenames = true },
               { "check", "ifndef::git-format-patch[] Warn if changes introduce trailing whitespace or an indent that uses a space before a tab", v => cmd.Check = true },
               { "full-index", "Instead of the first handful of characters, show the full pre- and post-image blob object names on the \"index\" line when generating patch format output", v => cmd.FullIndex = true },
               { "binary", "In addition to `--full-index`, output a binary diff that can be applied with `git-apply`", v => cmd.Binary = true },
               { "abbrev=", "Instead of showing the full 40-byte hexadecimal object name in diff-raw format output and diff-tree header lines, show only a partial prefix", v => cmd.Abbrev = v },
               { "B", "Break complete rewrite changes into pairs of delete and create", v => cmd.B = true },
               { "M", "Detect renames", v => cmd.M = true },
               { "C", "Detect copies as well as renames", v => cmd.C = true },
               { "diff-filter=", "ifndef::git-format-patch[] Select only files that are Added (`A`), Copied (`C`), Deleted (`D`), Modified (`M`), Renamed (`R`), have their type (i", v => cmd.DiffFilter = v },
               { "find-copies-harder", "For performance reasons, by default, `-C` option finds copies only if the original file of the copy was modified in the same changeset", v => cmd.FindCopiesHarder = true },
               { "l=", "The `-M` and `-C` options require O(n^2) processing time where n is the number of potential rename/copy targets", v => cmd.L = v },
               { "S=", "ifndef::git-format-patch[] Look for differences that introduce or remove an instance of <string>", v => cmd.S = v },
               { "pickaxe-all", "When `-S` finds a change, show all the changes in that changeset, not just the files that contain the change in <string>", v => cmd.PickaxeAll = true },
               { "pickaxe-regex=", "Make the <string> not a plain string but an extended POSIX regex to match", v => cmd.PickaxeRegex = v },
               { "O=", "Output the patch in the order specified in the <orderfile>, which has one shell glob pattern per line", v => cmd.O = v },
               { "R", "ifndef::git-format-patch[] Swap two inputs; that is, show differences from index or on-disk file to tree contents", v => cmd.R = true },
               { "relative=", "When run from a subdirectory of the project, it can be told to exclude changes outside the directory and show pathnames relative to it with this option", v => cmd.Relative = v },
               { "a|text", "Treat all files as text", v => cmd.Text = true },
               { "ignore-space-at-eol", "Ignore changes in whitespace at EOL", v => cmd.IgnoreSpaceAtEol = true },
               { "b|ignore-space-change", "Ignore changes in amount of whitespace", v => cmd.IgnoreSpaceChange = true },
               { "w|ignore-all-space", "Ignore whitespace when comparing lines", v => cmd.IgnoreAllSpace = true },
               { "inter-hunk-context=", "Show the context between diff hunks, up to the specified number of lines, thereby fusing hunks that are close to each other", v => cmd.InterHunkContext = v },
               { "exit-code", "ifndef::git-format-patch[] Make the program exit with codes similar to diff(1)", v => cmd.ExitCode = true },
               { "quiet", "Disable all output of the program", v => cmd.Quiet = true },
               { "ext-diff", "Allow an external diff helper to be executed", v => cmd.ExtDiff = true },
               { "no-ext-diff", "Disallow external diff drivers", v => cmd.NoExtDiff = true },
               { "ignore-submodules", "Ignore changes to submodules in the diff generation", v => cmd.IgnoreSubmodules = true },
               { "src-prefix=", "Show the given source prefix instead of \"a/\"", v => cmd.SrcPrefix = v },
               { "dst-prefix=", "Show the given destination prefix instead of \"b/\"", v => cmd.DstPrefix = v },
               { "no-prefix", "Do not show any source or destination prefix", v => cmd.NoPrefix = true },
            };

            try
            {
                List<String> arguments = ParseOptions(args);

                // log always uses a pager
                SetupPager();

                cmd.Arguments = arguments
                                    .Select(path => Path.GetFullPath(path))
                                    .ToList();
                cmd.Execute();
            }
            catch (System.IO.IOException)
            {
                // user closed pager
            }
            catch (Exception e)            
            {
                Console.Error.WriteLine(e.ToString());
                cmd.OutputStream.WriteLine(e.ToString());
            }
        }

        private void OfflineHelp()
        {
            if (!isHelp)
            {
                isHelp = true;
                cmd.OutputStream.WriteLine("Here should be the usage...");
                cmd.OutputStream.WriteLine();
                options.WriteOptionDescriptions(Console.Out);
                cmd.OutputStream.WriteLine();
            }
        }
    }
}


================================================
FILE: Git/Commands/Merge.cs
================================================
/*
 * Copyright (C) 2008, Shawn O. Pearce <spearce@spearce.org>
 * Copyright (C) 2009, Rolenun <rolenun@gmail.com>
 *
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or
 * without modification, are permitted provided that the following
 * conditions are met:
 *
 * - Redistributions of source code must retain the above copyright
 *   notice, this list of conditions and the following disclaimer.
 *
 * - Redistributions in binary form must reproduce the above
 *   copyright notice, this list of conditions and the following
 *   disclaimer in the documentation and/or other materials provided
 *   with the distribution.
 *
 * - Neither the name of the Git Development Community nor the
 *   names of its contributors may be used to endorse or promote
 *   products derived from this software without specific prior
 *   written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
 * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */

using System;
using System.Collections.Generic;
using NDesk.Options;

namespace GitSharp.CLI
{
    [Command(complete = false, common = true, usage = "Join two or more development histories together")]
    class Merge : TextBuiltin
    {

        private static Boolean isHelp = false;

#if ported
        private static Boolean isQuiet = false;
        private static Boolean isVerbose = false;
        private static Boolean isStat = false;
        private static Boolean isNoStat = false;
        private static Boolean isLog = false;
        private static Boolean isNoLog = false;
        private static Boolean isCommit = false;
        private static Boolean isNoCommit = false;
        private static Boolean isSquash = false;
        private static Boolean isNoSquash = false;
        private static Boolean isFF = false;
        private static Boolean isNoFF = false;
        private static Boolean strategyMode = false;
        private static String message = "";
#endif 

        override public void Run(String[] args)
        {

            options = new CmdParserOptionSet()
            {
                { "h|help", "Display this help information. To see online help, use: git help <command>", v=>OfflineHelp()},

#if ported
                { "q|quiet", "Be quiet", v=>{isQuiet = true;}},
                { "v|verbose", "Be verbose", v=>{isVerbose = true;}},
                { "stat", "Show a diffstat at the end of the merge", v=>{isStat = true;}},
                { "n|no-stat", "Do not show a diffstat at the end of the merge", v=>{isNoStat = true; }},
                { "log", "Add list of one-line log to merge commit message", v=>{isLog = true; }},
                { "no-log", "Do not add list of one-line log to merge commit message", v=>{isNoLog = true;} },
                { "commit", "Perform the merge and commit the result", v=>{isCommit = true;} },
                { "no-commit", "Perform the merge, but do not autocommit", v=>{isNoCommit = true;}},
                { "squash", "Create a single commit instead of doing a merge", v=>{isSquash = true;}},
                { "no-squash", "Perfom the merge and commit the result", v=>{isNoSquash = true;}},
                { "ff", "Do not generate a merge commit if the merge resolved as a fast forward", v=>{isFF = true;}},
                { "no-ff", "Generate a merge commit, even if the merge resolved as a fast forward", v=>{isNoFF = true;}},
                { "s|strategy=", "Use the given merge strategy. Options are resolve, recursive, octopus, " +
                    "ours, and subtree", (string v) => strategyMode = v},
                { "m=", "Message to be used for the merge commit (if any)", (string v) => message = v },
#endif
            };

            try
            {
                List<String> arguments = ParseOptions(args);
                if (arguments.Count > 0)
                {
                    DoMerge(arguments);
                }
                else if (args.Length <= 0)
                {
                    // DoMerge with preset arguments
                    Console.WriteLine("This command still needs to be implemented.");

                }
                else
                {
                    OfflineHelp();
                }
            }
            catch (OptionException e)
            {
                Console.WriteLine(e.Message);
            }
        }

        private void OfflineHelp()
        {
            if (!isHelp)
            {
                isHelp = true;
                Console.WriteLine("usage: git merge [options] <remote>...");
                Console.WriteLine("   or: git merge [options] <msg> HEAD <remote>");
                Console.WriteLine();
                options.WriteOptionDescriptions(Console.Out);
            }
        }

        private void DoMerge(List<String> args)
        {
            Console.WriteLine("This command still needs to be implemented.");
        }
    }
}


================================================
FILE: Git/Commands/Pull.cs
================================================
/*
 * Copyright (C) 2008, Shawn O. Pearce <spearce@spearce.org>
 * Copyright (C) 2009, Rolenun <rolenun@gmail.com>
 *
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or
 * without modification, are permitted provided that the following
 * conditions are met:
 *
 * - Redistributions of source code must retain the above copyright
 *   notice, this list of conditions and the following disclaimer.
 *
 * - Redistributions in binary form must reproduce the above
 *   copyright notice, this list of conditions and the following
 *   disclaimer in the documentation and/or other materials provided
 *   with the distribution.
 *
 * - Neither the name of the Git Development Community nor the
 *   names of its contributors may be used to endorse or promote
 *   products derived from this software without specific prior
 *   written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
 * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */

using System;
using System.Collections.Generic;
using NDesk.Options;

namespace GitSharp.CLI
{
    [Command(complete = false, common = true, usage = "Fetch from and merge with another repository or a local branch")]
    class Pull : TextBuiltin
    {

        private static Boolean isHelp = false;

#if ported
        private static Boolean isQuiet = false;
        private static Boolean isVerbose = false;
        private static Boolean isStat = false;
        private static Boolean isNoStat = false;
        private static Boolean isLog = false;
        private static Boolean isNoLog = false;
        private static Boolean isCommit = false;
        private static Boolean isNoCommit = false;
        private static Boolean isSquash = false;
        private static Boolean isNoSquash = false;
        private static Boolean isFF = false;
        private static Boolean isNoFF = false;
        private static Boolean strategyMode = false;
        private static Boolean isRebase = false;
        private static Boolean isNoRebase = false;
        private static Boolean isAppend = false;
        private static String uploadPack = "";
        private static Boolean isForced = false;
        private static Boolean isTags = false;
        private static Boolean isNoTags = false;
        private static Boolean isKeep = false;
        private static Boolean isUpdateHeadOk = false;
        private static Int32 depth = 0;
#endif 

        override public void Run(String[] args)
        {
            options = new CmdParserOptionSet()
            {
                { "h|help", "Display this help information. To see online help, use: git help <command>", v=>OfflineHelp()},

#if ported
                { "q|quiet", "Be quiet", v=>{isQuiet = true;}},
                { "v|verbose", "Be verbose", v=>{isVerbose = true;}},
                { "stat", "Show a diffstat at the end of the merge", v=>{isStat = true;}},
                { "n|no-stat", "Do not show a diffstat at the end of the merge", v=>{isNoStat = true; }},
                { "log", "Add list of one-line log to merge commit message", v=>{isLog = true; }},
                { "no-log", "Do not add list of one-line log to merge commit message", v=>{isNoLog = true;} },
                { "commit", "Perform the merge and commit the result", v=>{isCommit = true;} },
                { "no-commit", "Perform the merge, but do not autocommit", v=>{isNoCommit = true;}},
                { "squash", "Create a single commit instead of doing a merge", v=>{isSquash = true;}},
                { "no-squash", "Perfom the merge and commit the result", v=>{isNoSquash = true;}},
                { "ff", "Do not generate a merge commit if the merge resolved as a fast forward", v=>{isFF = true;}},
                { "no-ff", "Generate a merge commit, even if the merge resolved as a fast forward", v=>{isNoFF = true;}},
                { "s|strategy=", "Use the given merge strategy. Options are resolve, recursive, octopus, " +
                    "ours, and subtree", (string v) => strategyMode = v},
                { "rebase", "Instead of merge, perform a rebase after fetching. Dangerous option. Use wisely.", v=>{isRebase = true;}},
                { "no-rebase", "Override the earlier rebase option", v=>{isNoRebase = true;}},
                { "append", "Append to .git/FETCH_HEAD instead of overwriting", v=>{isAppend = true;}},
                { "upload-pack=", "Path to upload pack on remote end", (string v) => uploadPack = v },
                { "force", "Force overwrite of local branch", v=> {isForced = true;}},
                { "tags", "Fetch all tags and associated objects", v=>{isTags = true;} },
                { "no-tags", "Disable tags from being fetched and stored locally", v=>{isNoTags = true;}},
                { "k|keep", "Keep download pack", v=>{isKeep = true;}},
                { "u|update-head-ok", "Allow updating of HEAD ref", v=>{isUpdateHeadOk = true;}},
                { "depth=", "Deepen the history of a shallow repository created by git clone", (int v) => depth = v },
#endif
            };

            try
            {
                List<String> arguments = ParseOptions(args);
                if (arguments.Count > 0)
                {
                    DoPull(arguments);
                }
                else if (args.Length <= 0)
                {
                    // DoPull with preset arguments
                    Console.WriteLine("This command still needs to be implemented.");
                    
                }
                else
                {
                    OfflineHelp();
                }
            }
            catch (OptionException e)
            {
                Console.WriteLine(e.Message);
            }
        }

        private void OfflineHelp()
        {
            if (!isHelp)
            {
                isHelp = true;
                Console.WriteLine("usage: git pull [options] [fetch-options] <repo> <head>...");
                Console.WriteLine();
                options.WriteOptionDescriptions(Console.Out);
            }
        }

        private void DoPull(List<String> args)
        {
            Console.WriteLine("This command still needs to be implemented.");
        }
    }
}


================================================
FILE: Git/Commands/Push.cs
================================================
/*
 * Copyright (C) 2008, Marek Zawirski <marek.zawirski@gmail.com>
 * Copyright (C) 2009, Rolenun <rolenun@gmail.com>
 * 
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or
 * without modification, are permitted provided that the following
 * conditions are met:
 *
 * - Redistributions of source code must retain the above copyright
 *   notice, this list of conditions and the following disclaimer.
 *
 * - Redistributions in binary form must reproduce the above
 *   copyright notice, this list of conditions and the following
 *   disclaimer in the documentation and/or other materials provided
 *   with the distribution.
 *
 * - Neither the name of the Git Development Community nor the
 *   names of its contributors may be used to endorse or promote
 *   products derived from this software without specific prior
 *   written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
 * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */

using System;
using System.Collections.Generic;
using NDesk.Options;

namespace GitSharp.CLI
{
    [Command(complete = false, common = true, usage = "Update remote refs along with associated objects")]
    class Push : TextBuiltin
    {
        private static Boolean isHelp = false;

#if ported
        private static Boolean isVerbose = false;
        private static string repo = "";
        private static Boolean pushAllRefs = false;
        private static Boolean mirrorAllRefs = false;
        private static Boolean pushTags = false;
        private static Boolean isDryRun = false;
        private static Boolean isForced = false;
        private static Boolean useThinPack = false;
        private static string receivePack = "";
#endif

        override public void Run(String[] args)
        {
            options = new CmdParserOptionSet()
            {
                { "h|help", "Display this help information. To see online help, use: git help <command>", v=>OfflineHelp()},
#if ported
                
                { "v|verbose", "Be verbose", v=> {isVerbose = true;}},
                { "repo=", "{repository}", (string v) => repo = v},
                { "all", "Push all refs", v=> {pushAllRefs = true;}},
                { "mirror", "Mirror all refs", v=> {mirrorAllRefs = true;}},
                { "tags", "Push tags", v=> {pushTags = true;}},
                { "n|dry-run", "Dry run", v=>{isDryRun = true;}},
                { "f|force", "Force updates", v=> {isForced = true;}},
                { "thin", "Use thin pack", v=> {useThinPack = true;}},
                { "receive-pack=", "{Receive pack} program", (string v) => receivePack = v},
                { "exec=", "{Receive pack} program", (string v) => receivePack = v},
#endif
            };

            try
            {
                List<String> arguments = ParseOptions(args);
                if (arguments.Count > 0)
                {
                    //Add the file(s)
                    DoPush(arguments);
                }
                else if (args.Length <= 0)
                {
                    //Display the modified files for the existing repository
                    Console.WriteLine("Warning: You did not specify any refspecs to push, and the current remote");
                    Console.WriteLine("Warning: has not configured any push refspecs. The default action in this");
                    Console.WriteLine("Warning: case is to push all matching refspecs, that is, all branches");
                    Console.WriteLine("Warning: that exist both locally and remotely will be updated. This may");
                    Console.WriteLine("Warning: not necessarily be what you want to happen.");
                    Console.WriteLine("Warning:");
                    Console.WriteLine("Warning: You can specify what action you want to take in this case, and");
                    Console.WriteLine("Warning: avoid seeing this message again, by configuring 'push.default' to:");
                    Console.WriteLine("Warning:   'nothing'  : Do not push anything");
                    Console.WriteLine("Warning:   'matching' : Push all matching branches (default)");
                    Console.WriteLine("Warning:   'tracking' : Push the current branch to whatever it is tracking");
                    Console.WriteLine("Warning:   'current'  : Push the current branch");
                    
                    // Enter passphrase
                    Console.WriteLine("This command still needs to be implemented.");

                }
                else
                {
                    OfflineHelp();
                }
            }
            catch (OptionException e)
            {
                Console.WriteLine(e.Message);
            }
        }

        private void OfflineHelp()
        {
            if (!isHelp)
            {
                isHelp = true;
                Console.WriteLine("usage: git push [options] [<repository> <refspec>...]");
                Console.WriteLine();
                options.WriteOptionDescriptions(Console.Out);
            }
        }

        private void DoPush(List<String> filesAdded)
        {
            Console.WriteLine("This command still needs to be implemented.");
        }
    }
}


================================================
FILE: Git/Commands/Rm.cs
================================================
/*
 * Copyright (C) 2008, Shawn O. Pearce <spearce@spearce.org>
 * Copyright (C) 2009, Rolenun <rolenun@gmail.com>
 *
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or
 * without modification, are permitted provided that the following
 * conditions are met:
 *
 * - Redistributions of source code must retain the above copyright
 *   notice, this list of conditions and the following disclaimer.
 *
 * - Redistributions in binary form must reproduce the above
 *   copyright notice, this list of conditions and the following
 *   disclaimer in the documentation and/or other materials provided
 *   with the distribution.
 *
 * - Neither the name of the Git Development Community nor the
 *   names of its contributors may be used to endorse or promote
 *   products derived from this software without specific prior
 *   written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
 * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */

using System;
using System.Collections.Generic;
using NDesk.Options;

namespace GitSharp.CLI
{
    [Command(complete = false, common = true, usage = "Remove files from the working tree and from the index")]
    class Rm : TextBuiltin
    {

        private static Boolean isHelp = false;

#if ported
        private static Boolean isDryRun = false;
        private static Boolean isForced = false;
        private static Boolean isQuiet = false;
        private static Boolean isCached = false;
        private static Boolean allowRecursiveRemoval = false;
        private static Boolean ignoreUnmatch = false;
#endif

        override public void Run(String[] args)
        {

            options = new CmdParserOptionSet()
            {
                { "h|help", "Display this help information. To see online help, use: git help <command>", v=>OfflineHelp()},
#if ported
                { "n|dry-run", "Dry run", v=> {isDryRun = true;}},
                { "f|force", "Override the up-to-date check", v=>{isForced = true;}},
                { "q|quiet", "Be quiet", v=>{isQuiet = true;}},
                { "cached", "Only remove from the index", v=>{isCached = true;}},
                { "r", "Allow recursive removal", v=>{allowRecursiveRemoval = true;}},
                { "ignore-match", "Exit with a zero status even if nothing is matched", v=>{ignoreUnmatch = true;}},
#endif
            };

            try
            {
                List<String> arguments = ParseOptions(args);
                if (arguments.Count > 0)
                {
                    DoRm(arguments);
                }
                else
                {
                    OfflineHelp();
                }
            } catch (OptionException e) {
                Console.WriteLine(e.Message);
            }
        }

        private void OfflineHelp()
        {
            if (!isHelp)
            {
                isHelp = true;
                Console.WriteLine("usage: git rm [options] [--] <file>...");
               Console.WriteLine();
                options.WriteOptionDescriptions(Console.Out);
                Console.WriteLine();
            }
        }

        private void DoRm(List<String> args)
        {
            Console.WriteLine("This command still needs to be implemented.");
        }

    }
}


================================================
FILE: Git/Commands/Status.cs
================================================
/*
 * Copyright (C) 2008, Shawn O. Pearce <spearce@spearce.org>
 * Copyright (C) 2009, Rolenun <rolenun@gmail.com>
 *
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or
 * without modification, are permitted provided that the following
 * conditions are met:
 *
 * - Redistributions of source code must retain the above copyright
 *   notice, this list of conditions and the following disclaimer.
 *
 * - Redistributions in binary form must reproduce the above
 *   copyright notice, this list of conditions and the following
 *   disclaimer in the documentation and/or other materials provided
 *   with the distribution.
 *
 * - Neither the name of the Git Development Community nor the
 *   names of its contributors may be used to endorse or promote
 *   products derived from this software without specific prior
 *   written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
 * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */

using System;
using System.Collections.Generic;
using GitSharp.Commands;
using NDesk.Options;

namespace GitSharp.CLI
{
    [Command(complete = false, common = true, requiresRepository=true, usage = "Show the working tree status")]
    class Status : TextBuiltin
    {
        private StatusCommand cmd = new StatusCommand();

        private static Boolean isHelp = false;

#if ported
        private static Boolean isCommitAll = false;
        private static String reUseMessage = "";
        private static String reEditMessage = "";
        private static String cleanupOption = "default";
        private static String untrackedFileMode = "all";
        private static String message = "";
        private static String author = "";
        private static String logFile = "";
        private static String templateFile = "";
        private static Boolean isSignOff= false;
        private static Boolean isNoVerify = false;
        private static Boolean isAllowEmpty = false;
        private static Boolean isAmend = false;
        private static Boolean isForceEdit = false;
        private static Boolean isInclude = false;
        private static Boolean isCommitOnly = false;
        private static Boolean isInteractive = false;
        private static Boolean isVerbose = false;
        private static Boolean isQuiet = false;
        private static Boolean isDryRun = false;
#endif

        override public void Run(String[] args)
        {
           
            // The command takes the same options as git-commit. It shows what would be 
            // committed if the same options are given.
            options = new CmdParserOptionSet()
            {
                { "h|help", "Display this help information. To see online help, use: git help <command>", v=>OfflineHelp()},
#if ported
                { "q|quiet", "Be quiet", v=>{isQuiet = true;}},
                { "v|verbose", "Be verbose", v=>{isVerbose = true;}},
                { "F|file=", "Read log from {file}", (string v) => logFile = v },
                { "author=", "Override {author} for commit", (string v) => author = v },
                { "m|message=", "Specify commit {message}", (string v) => message = v },
                { "c|reedit-message=", "Reuse and edit {message} from specified commit", (string v) => reEditMessage = v },
                { "C|reuse-message=", "Reuse {message} from specified commit", (string v) => reUseMessage = v },
                { "s|signoff", "Add Signed-off-by:", v=>{isSignOff = true;}},
                { "t|template=", "Use specified {template} file", (string v) => templateFile = v },
                { "e|edit", "Force edit of commit", v=>{isForceEdit = true;}},
                { "a|all", "Commit all changed files.", v=>{isCommitAll = true;}},
                { "i|include", "Add specified files to index for commit", v=>{isInclude = true;}},
                { "interactive", "Interactively add files", v=>{isInteractive = true;}},
                { "o|only", "Commit only specified files", v=>{isCommitOnly = true;}},
                { "n|no-verify", "Bypass pre-commit hook", v=>{isNoVerify = true;}},
                { "amend", "Amend previous commit", v=>{isAmend = true;}},
                { "u|untracked-files=", "Show untracked files, optional {MODE}s: all, normal, no.", (string v) => untrackedFileMode = v },
                { "allow-empty", "Ok to record an empty change", v=> {isAllowEmpty = true;}},
                { "cleanup=", "How to strip spaces and #comments from message. Options are: " +
                    "verbatim, whitespace, strip, and default.", (string v) => cleanupOption = v },
                { "dry-run", "Don't actually commit the files, just show if they exist.", v=>{isDryRun = true;}},
#endif
            };

            try
            {
                List<String> arguments = ParseOptions(args);
                if (arguments.Count > 0)
                {
                    //Execute the status using the specified file pattern
                    //cmd.Source = arguments[0];
                    cmd.Execute();
                    Display();
                }
                else if (args.Length <= 0)
                {
                    //Display status if no changes are added to commit
                    //If changes have been made, commit them?
                    //Console.WriteLine("These commands still need to be implemented.");
                    cmd.Execute();
                    Display();
                }
                else
                {
                    OfflineHelp();
                }
            }
            catch (OptionException e)
            {
                OutputStream.WriteLine(e.Message);
            }
        }

        private void OfflineHelp()
        {
            if (!isHelp)
            {
                isHelp = true;
                cmd.OutputStream.WriteLine("usage: git status [options] [--] <filepattern>...");
                cmd.OutputStream.WriteLine();
                options.WriteOptionDescriptions(Console.Out);
            }
        }

        public void Display()
        {
            if (cmd.AnyDifferences || cmd.Results.UntrackedList.Count > 0)
            {
                //Display the stages of all files
                doDisplayMergeConflict();
                OutputStream.WriteLine("# On branch " + cmd.Repository.CurrentBranch.Name);
                //OutputStream.WriteLine("# Your branch is ahead of 'xxx' by x commits."); //Todo
                OutputStream.WriteLine("#");

                doDisplayStaged();
                doDisplayUnstaged();
                doDisplayUntracked();

                if (cmd.Results.StagedList.Count <= 0)
                {
                    OutputStream.WriteLine("no changes added to commit (use \"git add\" and/or \"git commit -a\")");
                }
            }
            else if (cmd.IsEmptyRepository)
            {
                OutputStream.WriteLine("# On branch " + cmd.Repository.CurrentBranch.Name);
                OutputStream.WriteLine("#");
                OutputStream.WriteLine("# Initial commit");
                OutputStream.WriteLine("#");
                OutputStream.WriteLine("# nothing to commit (create/copy files and use \"git add\" to track)");
            }
            else
            {
                OutputStream.WriteLine("# nothing to commit (working directory clean)");
            }
            // [henon] we do not throw here, instead we mention this in the docs.
            //throw new NotImplementedException("The implementation is not yet complete. autocrlf support is not added."); 
        }

        private void displayStatusList(Dictionary<string, int> statusList)
        {
            foreach (KeyValuePair<string, int> pair in statusList)
            {
                switch (pair.Value)
                {
                    case StatusType.Missing:
                        OutputStream.WriteLine("#     missing: " + pair.Key);
                        break;
                    case StatusType.Removed:
                        OutputStream.WriteLine("#     deleted: " + pair.Key);
                        break;
                    case StatusType.Modified:
                    case StatusType.ModifiedStaged:
                        OutputStream.WriteLine("#     modified: " + pair.Key);
                        break;
                    case StatusType.Added:
                        OutputStream.WriteLine("#     new file: " + pair.Key);
                        break;
                    case StatusType.MergeConflict:
                        OutputStream.WriteLine("#     unmerged: " + pair.Key);
                        break;
                }
            }
        }

        private void doDisplayUnstaged()
        {
            if (cmd.Results.ModifiedList.Count > 0)
            {
                OutputStream.WriteLine("# Changed but not updated:");
                OutputStream.WriteLine("# (use \"git add (file)...\" to update what will be committed)");
                OutputStream.WriteLine("# (use \"git checkout -- (file)...\" to discard changes in working directory)");
                OutputStream.WriteLine("#");
                displayStatusList(cmd.Results.ModifiedList);
                OutputStream.WriteLine("#");
            }
        }

        private void doDisplayStaged()
        {
            if (cmd.Results.StagedList.Count > 0)
            {
                OutputStream.WriteLine("# Changes to be committed:");
                OutputStream.WriteLine("# (use \"git reset HEAD (file)...\" to unstage)");
                OutputStream.WriteLine("#");
                displayStatusList(cmd.Results.StagedList);
                OutputStream.WriteLine("#");
            }
        }

        private void doDisplayUntracked()
        {
            if (cmd.Results.UntrackedList.Count > 0)
            {
                OutputStream.WriteLine("# Untracked files:");
                OutputStream.WriteLine("# (use \"git add (file)...\" to include in what will be committed)");
                OutputStream.WriteLine("#");
                cmd.Results.UntrackedList.Sort();
                foreach (string hash in cmd.Results.UntrackedList)
                    OutputStream.WriteLine("#     " + hash);
            }
        }

        private void doDisplayMergeConflict()
        {
            foreach (KeyValuePair<string, int> hash in cmd.Results.ModifiedList)
            {
                if (hash.Value == 5)
                    OutputStream.WriteLine(hash + ": needs merge");
            }
        }

    }
}


================================================
FILE: Git/Commands/Version.cs
================================================
/*
 * Copyright (C) 2008, Google Inc.
 * Copyright (C) 2009, Henon <meinrad.recheis@gmail.com>
 *
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or
 * without modification, are permitted provided that the following
 * conditions are met:
 *
 * - Redistributions of source code must retain the above copyright
 *   notice, this list of conditions and the following disclaimer.
 *
 * - Redistributions in binary form must reproduce the above
 *   copyright notice, this list of conditions and the following
 *   disclaimer in the documentation and/or other materials provided
 *   with the distribution.
 *
 * - Neither the name of the Git Development Community nor the
 *   names of its contributors may be used to endorse or promote
 *   products derived from this software without specific prior
 *   written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
 * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */

using System;
using System.Linq;
using System.Reflection;

namespace GitSharp.CLI.Nonstandard
{
    [Command(complete = true, common = true, usage = "Display the version of GitSharp")]
    class Version : TextBuiltin
    {

        override public void Run(String[] args) 
        {
            //Assembly myAsm = Assembly.Load("git");
            //AssemblyName aName = myAsm.GetName();
            //System.Version ver = aName.Version;
            var ver = GitSharp.Git.Version;
            if (ver == null)
                throw die("Cannot read package information.");

		    OutputStream.Write("GitSharp version ");
            OutputStream.Write(ver);
            OutputStream.WriteLine();
            OutputStream.Flush();
	    }

        private static void OfflineHelp()
        {
            Console.WriteLine("usage: git version");
        }
    }
}


================================================
FILE: Git/Die.cs
================================================
/*
 * Copyright (C) 2008, Shawn O. Pearce <spearce@spearce.org>
 * Copyright (C) 2009, Henon <meinrad.recheis@gmail.com>
 *
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or
 * without modification, are permitted provided that the following
 * conditions are met:
 *
 * - Redistributions of source code must retain the above copyright
 *   notice, this list of conditions and the following disclaimer.
 *
 * - Redistributions in binary form must reproduce the above
 *   copyright notice, this list of conditions and the following
 *   disclaimer in the documentation and/or other materials provided
 *   with the distribution.
 *
 * - Neither the name of the Git Development Community nor the
 *   names of its contributors may be used to endorse or promote
 *   products derived from this software without specific prior
 *   written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
 * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */

using System;

namespace GitSharp.CLI
{
    /// <summary>
    /// Indicates a <see cref="TextBuiltin" /> implementation has failed during execution.
    /// <para>
    /// Typically the stack trace for a Die exception is not shown to the user as it
    /// may indicate a simple error condition that the end-user can fix on their own,
    /// without needing a screen of stack frames.
    /// </para>
    /// </summary>
    public class Die : Exception
    {
        /// <summary>
        /// Construct a new message explaining what has gone wrong.
        /// </summary>
        /// <param name="why">The message to show to the end-user.</param>
        public Die(string why)
            : base(why)
        {
        }
    }
}

================================================
FILE: Git/Git.csproj
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <ProductVersion>9.0.30729</ProductVersion>
    <SchemaVersion>2.0</SchemaVersion>
    <ProjectGuid>{2A467118-E885-44FC-B7AF-DFAD937F6012}</ProjectGuid>
    <OutputType>Exe</OutputType>
    <AppDesignerFolder>Properties</AppDesignerFolder>
    <RootNamespace>GitSharp.CLI</RootNamespace>
    <AssemblyName>git</AssemblyName>
    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
    <FileAlignment>512</FileAlignment>
    <StartupObject>GitSharp.CLI.Program</StartupObject>
    <IsWebBootstrapper>false</IsWebBootstrapper>
    <SourceAnalysisOverrideSettingsFile>C:\Users\rolenun\AppData\Roaming\ICSharpCode/SharpDevelop3.0\Settings.SourceAnalysis</SourceAnalysisOverrideSettingsFile>
    <AllowUnsafeBlocks>False</AllowUnsafeBlocks>
    <NoStdLib>False</NoStdLib>
    <TreatWarningsAsErrors>false</TreatWarningsAsErrors>
    <FileUpgradeFlags>
    </FileUpgradeFlags>
    <OldToolsVersion>3.5</OldToolsVersion>
    <UpgradeBackupLocation />
    <PublishUrl>publish\</PublishUrl>
    <Install>true</Install>
    <InstallFrom>Disk</InstallFrom>
    <UpdateEnabled>false</UpdateEnabled>
    <UpdateMode>Foreground</UpdateMode>
    <UpdateInterval>7</UpdateInterval>
    <UpdateIntervalUnits>Days</UpdateIntervalUnits>
    <UpdatePeriodically>false</UpdatePeriodically>
    <UpdateRequired>false</UpdateRequired>
    <MapFileExtensions>true</MapFileExtensions>
    <ApplicationRevision>0</ApplicationRevision>
    <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
    <UseApplicationTrust>false</UseApplicationTrust>
    <BootstrapperEnabled>true</BootstrapperEnabled>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    <DebugSymbols>true</DebugSymbols>
    <DebugType>Full</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>bin\Debug\</OutputPath>
    <DefineConstants>TRACE;DEBUG</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
    <Commandlineparameters>init</Commandlineparameters>
    <DocumentationFile>bin\Debug\git.XML</DocumentationFile>
    <NoWarn>1591</NoWarn>
    <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <DebugType>pdbonly</DebugType>
    <Optimize>true</Optimize>
    <OutputPath>bin\Release\</OutputPath>
    <DefineConstants>TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
    <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
    <CheckForOverflowUnderflow>False</CheckForOverflowUnderflow>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Platform)' == 'AnyCPU' ">
    <RegisterForComInterop>False</RegisterForComInterop>
    <GenerateSerializationAssemblies>Auto</GenerateSerializationAssemblies>
    <BaseAddress>4194304</BaseAddress>
    <PlatformTarget>AnyCPU</PlatformTarget>
  </PropertyGroup>
  <ItemGroup>
    <Reference Include="System" />
    <Reference Include="System.Core">
      <RequiredTargetFramework>3.5</RequiredTargetFramework>
    </Reference>
    <Reference Include="System.Xml" />
  </ItemGroup>
  <ItemGroup>
    <Compile Include="..\SharedAssemblyInfo.cs">
      <Link>Properties\SharedAssemblyInfo.cs</Link>
    </Compile>
    <Compile Include="Commands\Add.cs" />
    <Compile Include="Stubs\Am.cs" />
    <Compile Include="Stubs\Annotate.cs" />
    <Compile Include="Stubs\Apply.cs" />
    <Compile Include="Stubs\Archive.cs" />
    <Compile Include="Stubs\Blame.cs" />
    <Compile Include="Stubs\Branch.cs" />
    <Compile Include="Stubs\CatFile.cs" />
    <Compile Include="Commands\Checkout.cs" />
    <Compile Include="Stubs\CheckoutIndex.cs" />
    <Compile Include="Stubs\Cherry.cs" />
    <Compile Include="Stubs\CherryPick.cs" />
    <Compile Include="Stubs\Clean.cs" />
    <Compile Include="Commands\Clone.cs" />
    <Compile Include="CmdParserOptionSet.cs" />
    <Compile Include="Command.cs" />
    <Compile Include="CommandCatalog.cs" />
    <Compile Include="CommandRef.cs" />
    <Compile Include="Commands\Commit.cs" />
    <Compile Include="Stubs\CommitTree.cs" />
    <Compile Include="Commands\Config.cs" />
    <Compile Include="Stubs\CountObjects.cs" />
    <Compile Include="Stubs\Describe.cs" />
    <Compile Include="Die.cs" />
    <Compile Include="Stubs\Diff.cs" />
    <Compile Include="Stubs\DiffFiles.cs" />
    <Compile Include="Stubs\DiffIndex.cs" />
    <Compile Include="Stubs\Difftool.cs" />
    <Compile Include="Stubs\DiffTree.cs" />
    <Compile Include="Stubs\FastExport.cs" />
    <Compile Include="Stubs\FastImport.cs" />
    <Compile Include="Commands\Fetch.cs" />
    <Compile Include="Stubs\FetchPack.cs" />
    <Compile Include="Stubs\FilterBranch.cs" />
    <Compile Include="Stubs\FmtMergeMsg.cs" />
    <Compile Include="Stubs\ForEachRef.cs" />
    <Compile Include="Stubs\FormatPatch.cs" />
    <Compile Include="Stubs\Fsck.cs" />
    <Compile Include="Stubs\Gc.cs" />
    <Compile Include="Stubs\Grep.cs" />
    <Compile Include="Stubs\HashObject.cs" />
    <Compile Include="Commands\Help.cs" />
    <Compile Include="Stubs\IndexPack.cs" />
    <Compile Include="Commands\Init.cs" />
    <Compile Include="Commands\Log.cs" />
    <Compile Include="Stubs\LsFiles.cs" />
    <Compile Include="Stubs\LsRemote.cs" />
    <Compile Include="Stubs\LsTree.cs" />
    <Compile Include="Stubs\Mailinfo.cs" />
    <Compile Include="Stubs\Mailsplit.cs" />
    <Compile Include="Commands\Merge.cs" />
    <Compile Include="Stubs\MergeBase.cs" />
    <Compile Include="Stubs\MergeFile.cs" />
    <Compile Include="Stubs\MergeIndex.cs" />
    <Compile Include="Stubs\Mergetool.cs" />
    <Compile Include="Stubs\Mktree.cs" />
    <Compile Include="Stubs\Mv.cs" />
    <Compile Include="Stubs\NameRev.cs" />
    <Compile Include="Stubs\Notes.cs" />
    <Compile Include="Options.cs" />
    <Compile Include="Stubs\PackObjects.cs" />
    <Compile Include="Stubs\PackRedundant.cs" />
    <Compile Include="Stubs\PackRefs.cs" />
    <Compile Include="Stubs\PatchId.cs" />
    <Compile Include="Stubs\PeekRemote.cs" />
    <Compile Include="Program.cs" />
    <Compile Include="Properties\AssemblyInfo.cs" />
    <Compile Include="Stubs\Prune.cs" />
    <Compile Include="Stubs\PrunePacked.cs" />
    <Compile Include="Commands\Pull.cs" />
    <Compile Include="Commands\Push.cs" />
    <Compile Include="Stubs\Quiltimport.cs" />
    <Compile Include="Stubs\ReadTree.cs" />
    <Compile Include="Stubs\ReceivePack.cs" />
    <Compile Include="Stubs\Reflog.cs" />
    <Compile Include="Stubs\Relink.cs" />
    <Compile Include="Stubs\Remote.cs" />
    <Compile Include="Stubs\Repack.cs" />
    <Compile Include="Stubs\Replace.cs" />
    <Compile Include="Stubs\RequestPull.cs" />
    <Compile Include="Stubs\Reset.cs" />
    <Compile Include="Stubs\Revert.cs" />
    <Compile Include="Stubs\RevParse.cs" />
    <Compile Include="Commands\Rm.cs" />
    <Compile Include="Stubs\SendPack.cs" />
    <Compile Include="Stubs\Shortlog.cs" />
    <Compile Include="Stubs\Show.cs" />
    <Compile Include="Stubs\ShowBranch.cs" />
    <Compile Include="Stubs\ShowRef.cs" />
    <Compile Include="Commands\Status.cs" />
    <Compile Include="Stubs\Stripspace.cs" />
    <Compile Include="Stubs\Submodule.cs" />
    <Compile Include="Stubs\Svn.cs" />
    <Compile Include="Stubs\SymbolicRef.cs" />
    <Compile Include="Stubs\Tag.cs" />
    <Compile Include="Stubs\TarTree.cs" />
    <Compile Include="TextBuiltin.cs" />
    <Compile Include="Stubs\Rebase.cs" />
    <Compile Include="Stubs\UnpackFile.cs" />
    <Compile Include="Stubs\UnpackObjects.cs" />
    <Compile Include="Stubs\UpdateIndex.cs" />
    <Compile Include="Stubs\UpdateServerInfo.cs" />
    <Compile Include="Stubs\UploadArchive.cs" />
    <Compile Include="Stubs\UploadPack.cs" />
    <Compile Include="Stubs\Var.cs" />
    <Compile Include="Stubs\VerifyPack.cs" />
    <Compile Include="Stubs\VerifyTag.cs" />
    <Compile Include="Commands\Version.cs" />
    <Compile Include="Stubs\Whatchanged.cs" />
  </ItemGroup>
  <ItemGroup>
    <EmbeddedResource Include="Resources\Commands.xml">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </EmbeddedResource>
    <Content Include="README.txt" />
  </ItemGroup>
  <ItemGroup>
    <ProjectReference Include="..\GitSharp\GitSharp.csproj">
      <Project>{7311850F-619A-4241-B09F-157792C75FBA}</Project>
      <Name>GitSharp</Name>
    </ProjectReference>
    <ProjectReference Include="..\GitSharp.Core\GitSharp.Core.csproj">
      <Project>{C46EDD61-C202-465A-93F1-ADE20A83BB59}</Project>
      <Name>GitSharp.Core</Name>
    </ProjectReference>
  </ItemGroup>
  <ItemGroup>
    <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
      <Visible>False</Visible>
      <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
      <Install>false</Install>
    </BootstrapperPackage>
    <BootstrapperPackage Include="Microsoft.Net.Framework.2.0">
      <Visible>False</Visible>
      <ProductName>
      </ProductName>
      <Install>false</Install>
    </BootstrapperPackage>
    <BootstrapperPackage Include="Microsoft.Net.Framework.3.0">
      <Visible>False</Visible>
      <ProductName>
      </ProductName>
      <Install>false</Install>
    </BootstrapperPackage>
    <BootstrapperPackage Include="Microsoft.Net.Framework.3.5">
      <Visible>False</Visible>
      <ProductName>
      </ProductName>
      <Install>false</Install>
    </BootstrapperPackage>
    <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
      <Visible>False</Visible>
      <ProductName>.NET Framework 3.5 SP1</ProductName>
      <Install>false</Install>
    </BootstrapperPackage>
  </ItemGroup>
  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
       Other similar extension points exist, see Microsoft.Common.targets.
  <Target Name="BeforeBuild">
  </Target>
  <Target Name="AfterBuild">
  </Target>
  -->
</Project>

================================================
FILE: Git/Options.cs
================================================
//
// Options.cs
//
// Authors:
//  Jonathan Pryor <jpryor@novell.com>
//
// Copyright (C) 2008 Novell (http://www.novell.com)
//
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to
// permit persons to whom the Software is furnished to do so, subject to
// the following conditions:
// 
// The above copyright notice and this permission notice shall be
// included in all copies or substantial portions of the Software.
// 
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//

// Compile With:
//   gmcs -debug+ -r:System.Core Options.cs -o:NDesk.Options.dll
//   gmcs -debug+ -d:LINQ -r:System.Core Options.cs -o:NDesk.Options.dll
//
// The LINQ version just changes the implementation of
// OptionSet.Parse(IEnumerable<string>), and confers no semantic changes.

//
// A Getopt::Long-inspired option parsing library for C#.
//
// NDesk.Options.OptionSet is built upon a key/value table, where the
// key is a option format string and the value is a delegate that is 
// invoked when the format string is matched.
//
// Option format strings:
//  Regex-like BNF Grammar: 
//    name: .+
//    type: [=:]
//    sep: ( [^{}]+ | '{' .+ '}' )?
//    aliases: ( name type sep ) ( '|' name type sep )*
// 
// Each '|'-delimited name is an alias for the associated action.  If the
// format string ends in a '=', it has a required value.  If the format
// string ends in a ':', it has an optional value.  If neither '=' or ':'
// is present, no value is supported.  `=' or `:' need only be defined on one
// alias, but if they are provided on more than one they must be consistent.
//
// Each alias portion may also end with a "key/value separator", which is used
// to split option values if the option accepts > 1 value.  If not specified,
// it defaults to '=' and ':'.  If specified, it can be any character except
// '{' and '}' OR the *string* between '{' and '}'.  If no separator should be
// used (i.e. the separate values should be distinct arguments), then "{}"
// should be used as the separator.
//
// Options are extracted either from the current option by looking for
// the option name followed by an '=' or ':', or is taken from the
// following option IFF:
//  - The current option does not contain a '=' or a ':'
//  - The current option requires a value (i.e. not a Option type of ':')
//
// The `name' used in the option format string does NOT include any leading
// option indicator, such as '-', '--', or '/'.  All three of these are
// permitted/required on any named option.
//
// Option bundling is permitted so long as:
//   - '-' is used to start the option group
//   - all of the bundled options are a single character
//   - at most one of the bundled options accepts a value, and the value
//     provided starts from the next character to the end of the string.
//
// This allows specifying '-a -b -c' as '-abc', and specifying '-D name=value'
// as '-Dname=value'.
//
// Option processing is disabled by specifying "--".  All options after "--"
// are returned by OptionSet.Parse() unchanged and unprocessed.
//
// Unprocessed options are returned from OptionSet.Parse().
//
// Examples:
//  int verbose = 0;
//  OptionSet p = new OptionSet ()
//    .Add ("v", v => ++verbose)
//    .Add ("name=|value=", v => Console.WriteLine (v));
//  p.Parse (new string[]{"-v", "--v", "/v", "-name=A", "/name", "B", "extra"});
//
// The above would parse the argument string array, and would invoke the
// lambda expression three times, setting `verbose' to 3 when complete.  
// It would also print out "A" and "B" to standard output.
// The returned array would contain the string "extra".
//
// C# 3.0 collection initializers are supported and encouraged:
//  var p = new OptionSet () {
//    { "h|?|help", v => ShowHelp () },
//  };
//
// System.ComponentModel.TypeConverter is also supported, allowing the use of
// custom data types in the callback type; TypeConverter.ConvertFromString()
// is used to convert the value option to an instance of the specified
// type:
//
//  var p = new OptionSet () {
//    { "foo=", (Foo f) => Console.WriteLine (f.ToString ()) },
//  };
//
// Random other tidbits:
//  - Boolean options (those w/o '=' or ':' in the option format string)
//    are explicitly enabled if they are followed with '+', and explicitly
//    disabled if they are followed with '-':
//      string a = null;
//      var p = new OptionSet () {
//        { "a", s => a = s },
//      };
//      p.Parse (new string[]{"-a"});   // sets v != null
//      p.Parse (new string[]{"-a+"});  // sets v != null
//      p.Parse (new string[]{"-a-"});  // sets v == null
//

using System;
using System.Collections;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Globalization;
using System.IO;
using System.Runtime.Serialization;
using System.Security.Permissions;
using System.Text;
using System.Text.RegularExpressions;
using System.Linq;

#if TEST
using NDesk.Options;
#endif

namespace NDesk.Options
{
	public class OptionValueCollection : IList, IList<string>
	{

		List<string> values = new List<string>();
		OptionContext c;

		internal OptionValueCollection(OptionContext c)
		{
			this.c = c;
		}

		#region ICollection
		void ICollection.CopyTo(Array array, int index) { (values as ICollection).CopyTo(array, index); }
		bool ICollection.IsSynchronized { get { return (values as ICollection).IsSynchronized; } }
		object ICollection.SyncRoot { get { return (values as ICollection).SyncRoot; } }
		#endregion

		#region ICollection<T>
		public void Add(string item) { values.Add(item); }
		public void Clear() { values.Clear(); }
		public bool Contains(string item) { return values.Contains(item); }
		public void CopyTo(string[] array, int arrayIndex) { values.CopyTo(array, arrayIndex); }
		public bool Remove(string item) { return values.Remove(item); }
		public int Count { get { return values.Count; } }
		public bool IsReadOnly { get { return false; } }
		#endregion

		#region IEnumerable
		IEnumerator IEnumerable.GetEnumerator() { return values.GetEnumerator(); }
		#endregion

		#region IEnumerable<T>
		public IEnumerator<string> GetEnumerator() { return values.GetEnumerator(); }
		#endregion

		#region IList
		int IList.Add(object value) { return (values as IList).Add(value); }
		bool IList.Contains(object value) { return (values as IList).Contains(value); }
		int IList.IndexOf(object value) { return (values as IList).IndexOf(value); }
		void IList.Insert(int index, object value) { (values as IList).Insert(index, value); }
		void IList.Remove(object value) { (values as IList).Remove(value); }
		void IList.RemoveAt(int index) { (values as IList).RemoveAt(index); }
		bool IList.IsFixedSize { get { return false; } }
		object IList.this[int index] { get { return this[index]; } set { (values as IList)[index] = value; } }
		#endregion

		#region IList<T>
		public int IndexOf(string item) { return values.IndexOf(item); }
		public void Insert(int index, string item) { values.Insert(index, item); }
		public void RemoveAt(int index) { values.RemoveAt(index); }

		private void AssertValid(int index)
		{
			if (c.Option == null)
				throw new InvalidOperationException("OptionContext.Option is null.");
			if (index >= c.Option.MaxValueCount)
				throw new ArgumentOutOfRangeException("index");
			if (c.Option.OptionValueType == OptionValueType.Required &&
					index >= values.Count)
				throw new OptionException(string.Format(
							c.OptionSet.MessageLocalizer("Missing required value for option '{0}'."), c.OptionName),
						c.OptionName);
		}

		public string this[int index]
		{
			get
			{
				AssertValid(index);
				return index >= values.Count ? null : values[index];
			}
			set
			{
				values[index] = value;
			}
		}
		#endregion

		public List<string> ToList()
		{
			return new List<string>(values);
		}

		public string[] ToArray()
		{
			return values.ToArray();
		}

		public override string ToString()
		{
			return string.Join(", ", values.ToArray());
		}
	}

	public class OptionContext
	{
		private Option option;
		private string name;
		private int index;
		private OptionSet set;
		private OptionValueCollection c;

		public OptionContext(OptionSet set)
		{
			this.set = set;
			this.c = new OptionValueCollection(this);
		}

		public Option Option
		{
			get { return option; }
			set { option = value; }
		}

		public string OptionName
		{
			get { return name; }
			set { name = value; }
		}

		public int OptionIndex
		{
			get { return index; }
			set { index = value; }
		}

		public OptionSet OptionSet
		{
			get { return set; }
		}

		public OptionValueCollection OptionValues
		{
			get { return c; }
		}
	}

	public enum OptionValueType
	{
		None,
		Optional,
		Required,
	}

	public abstract class Option
	{
		string prototype, description;
		string[] names;
		OptionValueType type;
		int count;
		string[] separators;

		protected Option(string prototype, string description)
			: this(prototype, description, 1)
		{
		}

		protected Option(string prototype, string description, int maxValueCount)
		{
			if (prototype == null)
				throw new ArgumentNullException("prototype");
			if (prototype.Length == 0)
				throw new ArgumentException("Cannot be the empty string.", "prototype");
			if (maxValueCount < 0)
				throw new ArgumentOutOfRangeException("maxValueCount");

			this.prototype = prototype;
			this.names = prototype.Split('|');
			this.description = description;
			this.count = maxValueCount;
			this.type = ParsePrototype();

			if (this.count == 0 && type != OptionValueType.None)
				throw new ArgumentException(
						"Cannot provide maxValueCount of 0 for OptionValueType.Required or " +
							"OptionValueType.Optional.",
						"maxValueCount");
			if (this.type == OptionValueType.None && maxValueCount > 1)
				throw new ArgumentException(
						string.Format("Cannot provide maxValueCount of {0} for OptionValueType.None.", maxValueCount),
						"maxValueCount");
			if (Array.IndexOf(names, "<>") >= 0 &&
					((names.Length == 1 && this.type != OptionValueType.None) ||
					 (names.Length > 1 && this.MaxValueCount > 1)))
				throw new ArgumentException(
						"The default option handler '<>' cannot require values.",
						"prototype");
		}

		public string Prototype { get { return prototype; } }
		public string Description { get { return description; } }
		public OptionValueType OptionValueType { get { return type; } }
		public int MaxValueCount { get { return count; } }

		public string[] GetNames()
		{
			return (string[])names.Clone();
		}

		public string[] GetValueSeparators()
		{
			if (separators == null)
				return new string[0];
			return (string[])separators.Clone();
		}

		protected static T Parse<T>(string value, OptionContext c)
		{
			Type tt = typeof(T);
			bool nullable = tt.IsValueType && tt.IsGenericType &&
				!tt.IsGenericTypeDefinition &&
				tt.GetGenericTypeDefinition() == typeof(Nullable<>);
			Type targetType = nullable ? tt.GetGenericArguments()[0] : typeof(T);
			TypeConverter conv = TypeDescriptor.GetConverter(targetType);
			T t = default(T);
			try
			{
				if (value != null)
					t = (T)conv.ConvertFromString(value);
			}
			catch (Exception e)
			{
				throw new OptionException(
						string.Format(
							c.OptionSet.MessageLocalizer("Could not convert string `{0}' to type {1} for option `{2}'."),
							value, targetType.Name, c.OptionName),
						c.OptionName, e);
			}
			return t;
		}

		internal string[] Names { get { return names; } }
		internal string[] ValueSeparators { get { return separators; } }

		static readonly char[] NameTerminator = new char[] { '=', ':' };

		private OptionValueType ParsePrototype()
		{
			char type = '\0';
			List<string> seps = new List<string>();
			for (int i = 0; i < names.Length; ++i)
			{
				string name = names[i];
				if (name.Length == 0)
					throw new ArgumentException("Empty option names are not supported.", "prototype");

				int end = name.IndexOfAny(NameTerminator);
				if (end == -1)
					continue;
				names[i] = name.Substring(0, end);
				if (type == '\0' || type == name[end])
					type = name[end];
				else
					throw new ArgumentException(
							string.Format("Conflicting option types: '{0}' vs. '{1}'.", type, name[end]),
							"prototype");
				AddSeparators(name, end, seps);
			}

			if (type == '\0')
				return OptionValueType.None;

			if (count <= 1 && seps.Count != 0)
				throw new ArgumentException(
						string.Format("Cannot provide key/value separators for Options taking {0} value(s).", count),
						"prototype");
			if (count > 1)
			{
				if (seps.Count == 0)
					this.separators = new string[] { ":", "=" };
				else if (seps.Count == 1 && seps[0].Length == 0)
					this.separators = null;
				else
					this.separators = seps.ToArray();
			}

			return type == '=' ? OptionValueType.Required : OptionValueType.Optional;
		}

		private static void AddSeparators(string name, int end, ICollection<string> seps)
		{
			int start = -1;
			for (int i = end + 1; i < name.Length; ++i)
			{
				switch (name[i])
				{
					case '{':
						if (start != -1)
							throw new ArgumentException(
									string.Format("Ill-formed name/value separator found in \"{0}\".", name),
									"prototype");
						start = i + 1;
						break;
					case '}':
						if (start == -1)
							throw new ArgumentException(
									string.Format("Ill-formed name/value separator found in \"{0}\".", name),
									"prototype");
						seps.Add(name.Substring(start, i - start));
						start = -1;
						break;
					default:
						if (start == -1)
							seps.Add(name[i].ToString());
						break;
				}
			}
			if (start != -1)
				throw new ArgumentException(
						string.Format("Ill-formed name/value separator found in \"{0}\".", name),
						"prototype");
		}

		public void Invoke(OptionContext c)
		{
			OnParseComplete(c);
			c.OptionName = null;
			c.Option = null;
			c.OptionValues.Clear();
		}

		protected abstract void OnParseComplete(OptionContext c);

		public override string ToString()
		{
			return Prototype;
		}
	}

	[Serializable]
	public class OptionException : Exception
	{
		private string option;

		public OptionException()
		{
		}

		public OptionException(string message, string optionName)
			: base(message)
		{
			this.option = optionName;
		}

		public OptionException(string message, string optionName, Exception innerException)
			: base(message, innerException)
		{
			this.option = optionName;
		}

		protected OptionException(SerializationInfo info, StreamingContext context)
			: base(info, context)
		{
			this.option = info.GetString("OptionName");
		}

		public string OptionName
		{
			get { return this.option; }
		}

		[SecurityPermission(SecurityAction.LinkDemand, SerializationFormatter = true)]
		public override void GetObjectData(SerializationInfo info, StreamingContext context)
		{
			base.GetObjectData(info, context);
			info.AddValue("OptionName", option);
		}
	}

	public delegate void OptionAction<TKey, TValue>(TKey key, TValue value);

	public class OptionSet : KeyedCollection<string, Option>
	{
		public OptionSet()
			: this(delegate(string f) { return f; })
		{
		}

		public OptionSet(Converter<string, string> localizer)
		{
			this.localizer = localizer;
		}

		Converter<string, string> localizer;

		public Converter<string, string> MessageLocalizer
		{
			get { return localizer; }
		}

		protected override string GetKeyForItem(Option item)
		{
			if (item == null)
				throw new ArgumentNullException("option");
			if (item.Names != null && item.Names.Length > 0)
				return item.Names[0];
			// This should never happen, as it's invalid for Option to be
			// constructed w/o any names.
			throw new InvalidOperationException("Option has no names!");
		}

		[Obsolete("Use KeyedCollection.this[string]")]
		protected Option GetOptionForName(string option)
		{
			if (option == null)
				throw new ArgumentNullException("option");
			try
			{
				return base[option];
			}
			catch (KeyNotFoundException)
			{
				return null;
			}
		}

		protected override void InsertItem(int index, Option item)
		{
			base.InsertItem(index, item);
			AddImpl(item);
		}

		protected override void RemoveItem(int index)
		{
			base.RemoveItem(index);
			Option p = Items[index];
			// KeyedCollection.RemoveItem() handles the 0th item
			for (int i = 1; i < p.Names.Length; ++i)
			{
				Dictionary.Remove(p.Names[i]);
			}
		}

		protected override void SetItem(int index, Option item)
		{
			base.SetItem(index, item);
			RemoveItem(index);
			AddImpl(item);
		}

		private void AddImpl(Option option)
		{
			if (option == null)
				throw new ArgumentNullException("option");
			List<string> added = new List<string>(option.Names.Length);
			try
			{
				// KeyedCollection.InsertItem/SetItem handle the 0th name.
				for (int i = 1; i < option.Names.Length; ++i)
				{
					Dictionary.Add(option.Names[i], option);
					added.Add(option.Names[i]);
				}
			}
			catch (Exception)
			{
				foreach (string name in added)
					Dictionary.Remove(name);
				throw;
			}
		}

		public new OptionSet Add(Option option)
		{
			base.Add(option);
			return this;
		}

		sealed class ActionOption : Option
		{
			Action<OptionValueCollection> action;

			public ActionOption(string prototype, string description, int count, Action<OptionValueCollection> action)
				: base(prototype, description, count)
			{
				if (action == null)
					throw new ArgumentNullException("action");
				this.action = action;
			}

			protected override void OnParseComplete(OptionContext c)
			{
				action(c.OptionValues);
			}
		}

		public OptionSet Add(string prototype, Action<string> action)
		{
			return Add(prototype, null, action);
		}

		public OptionSet Add(string prototype, string description, Action<string> action)
		{
			if (action == null)
				throw new ArgumentNullException("action");
			Option p = new ActionOption(prototype, description, 1,
					delegate(OptionValueCollection v) { action(v[0]); });
			base.Add(p);
			return this;
		}

		public OptionSet Add(string prototype, OptionAction<string, string> action)
		{
			return Add(prototype, null, action);
		}

		public OptionSet Add(string prototype, string description, OptionAction<string, string> action)
		{
			if (action == null)
				throw new ArgumentNullException("action");
			Option p = new ActionOption(prototype, description, 2,
					delegate(OptionValueCollection v) { action(v[0], v[1]); });
			base.Add(p);
			return this;
		}

		sealed class ActionOption<T> : Option
		{
			Action<T> action;

			public ActionOption(string prototype, string description, Action<T> action)
				: base(prototype, description, 1)
			{
				if (action == null)
					throw new ArgumentNullException("action");
				this.action = action;
			}

			protected override void OnParseComplete(OptionContext c)
			{
				action(Parse<T>(c.OptionValues[0], c));
			}
		}

		sealed class ActionOption<TKey, TValue> : Option
		{
			OptionAction<TKey, TValue> action;

			public ActionOption(string prototype, string description, OptionAction<TKey, TValue> action)
				: base(prototype, description, 2)
			{
				if (action == null)
					throw new ArgumentNullException("action");
				this.action = action;
			}

			protected override void OnParseComplete(OptionContext c)
			{
				action(
						Parse<TKey>(c.OptionValues[0], c),
						Parse<TValue>(c.OptionValues[1], c));
			}
		}

		public OptionSet Add<T>(string prototype, Action<T> action)
		{
			return Add(prototype, null, action);
		}

		public OptionSet Add<T>(string prototype, string description, Action<T> action)
		{
			return Add(new ActionOption<T>(prototype, description, action));
		}

		public OptionSet Add<TKey, TValue>(string prototype, OptionAction<TKey, TValue> action)
		{
			return Add(prototype, null, action);
		}

		public OptionSet Add<TKey, TValue>(string prototype, string description, OptionAction<TKey, TValue> action)
		{
			return Add(new ActionOption<TKey, TValue>(prototype, description, action));
		}

		protected virtual OptionContext CreateOptionContext()
		{
			return new OptionContext(this);
		}

		/// <summary>
		/// Internal Use Only. Used by NDesk.OptionSetTest for unit testing purposes of OptionSet.Parse. 
		/// </summary>
		public List<string> Parse(IEnumerable<string> arguments)
		{
			List<string> filePaths = null;
			List<string> remainingArguments = new List<string>();

			Parse(arguments.ToArray<string>(), out filePaths, out remainingArguments);
			return remainingArguments;
		}

		/// <summary>
		/// Used to parse the options (aka arguments) denoted by a "-" or "--" in the command line and return the remaining arguments in a list.
		/// </summary>
		/// <param name="arguments">The command line arguments.</param>
		/// <param name="remainingArguments">Return value for the arguments remaining after parsing is complete.</param>
		public void Parse(string[] arguments, out List<string> remainingArguments)
		{
			List<string> filePaths = null;
			Parse(arguments, out filePaths, out remainingArguments);
		}

		/// <summary>
		/// Used to parse the options (aka arguments) denoted by a "-" or "--" in the command line.
		/// This method also returns the multiple file references denoted by -- &amp;filepattern> in git.
		/// </summary>
		/// <param name="arguments">The command line arguments.</param>
		/// <param name="filePaths">Return value for multiple file references, if specified. Setting the value to null will disable this option.</param>
		/// <param name="remainingArguments">Return value for the arguments remaining after parsing is complete.</param>
		public void Parse(string[] arguments, out List<string> filePaths, out List<string> remainingArguments)
		{
			List<string> args = new List<string>();
			filePaths = new List<string>();

			foreach (string a in arguments)
				args.Add(a);

			bool process = true;
			OptionContext c = CreateOptionContext();
			c.OptionIndex = -1;
			//var def = GetOptionForName ("<>");
			//Deviation from NDesk's Options.cs to remove the warning message.
			Option def = Contains("<>") ? base["<>"] : null;

			int index = args.IndexOf("--");
			if (index != -1 && args.Count > index)
			{
				//Strip the additional filepaths and return as a separate value
				for (int x = index + 1; x < args.Count; x++)
					filePaths.Add(args[x]);
				//filePaths = (List<String>) arguments.Skip(index);
				args.RemoveRange(index, args.Count - index);
			}

			var unprocessed =
					 from argument in args
					 where ++c.OptionIndex >= 0 && (process || def != null)
						 ? process
							 ? argument == "--"
								 ? (process = false)
								 : !Parse(argument, c)
									 ? def != null
										 ? Unprocessed(null, def, c, argument)
										 : true
									 : false
							 : def != null
								 ? Unprocessed(null, def, c, argument)
								 : true
						 : true
					 select argument;
			List<string> r = unprocessed.ToList();
			if (c.Option != null)
				c.Option.Invoke(c);
			remainingArguments = r;
		}

		private static bool Unprocessed(ICollection<string> extra, Option def, OptionContext c, string argument)
		{
			if (def == null)
			{
				extra.Add(argument);
				return false;
			}
			c.OptionValues.Add(argument);
			c.Option = def;
			c.Option.Invoke(c);
			return false;
		}

		private readonly Regex ValueOption = new Regex(
			@"^(?<flag>--|-|/)(?<name>[^:=]+)((?<sep>[:=])(?<value>.*))?$");

		protected bool GetOptionParts(string argument, out string flag, out string name, out string sep, out string value)
		{
			if (argument == null)
				throw new ArgumentNullException("argument");

			flag = name = sep = value = null;
			Match m = ValueOption.Match(argument);
			if (!m.Success)
			{
				return false;
			}
			flag = m.Groups["flag"].Value;
			name = m.Groups["name"].Value;
			if (m.Groups["sep"].Success && m.Groups["value"].Success)
			{
				sep = m.Groups["sep"].Value;
				value = m.Groups["value"].Value;
			}
			return true;
		}

		protected virtual bool Parse(string argument, OptionContext c)
		{
			if (c.Option != null)
			{
				ParseValue(argument, c);
				return true;
			}

			string f, n, s, v;
			if (!GetOptionParts(argument, out f, out n, out s, out v))
				return false;

			Option p;
			if (Contains(n))
			{
				p = this[n];
				c.OptionName = f + n;
				c.Option = p;
				switch (p.OptionValueType)
				{
					case OptionValueType.None:
						c.OptionValues.Add(n);
						c.Option.Invoke(c);
						break;
					case OptionValueType.Optional:
					case OptionValueType.Required:
						ParseValue(v, c);
						break;
				}
				return true;
			}
			// no match; is it a bool option?
			if (ParseBool(argument, n, c))
				return true;
			// is it a bundled option?
			if (ParseBundledValue(f, string.Concat(n + s + v), c))
				return true;

			return false;
		}

		private void ParseValue(string option, OptionContext c)
		{
			if (option != null)
				foreach (string o in c.Option.ValueSeparators != null
						? option.Split(c.Option.ValueSeparators, StringSplitOptions.None)
						: new string[] { option })
				{
					c.OptionValues.Add(o);
				}
			if (c.OptionValues.Count == c.Option.MaxValueCount ||
					c.Option.OptionValueType == OptionValueType.Optional)
				c.Option.Invoke(c);
			else if (c.OptionValues.Count > c.Option.MaxValueCount)
			{
				throw new OptionException(localizer(string.Format(
								"Error: Found {0} option values when expecting {1}.",
								c.OptionValues.Count, c.Option.MaxValueCount)),
						c.OptionName);
			}
		}

		private bool ParseBool(string option, string n, OptionContext c)
		{
			Option p;
			string rn;
			if (n.Length >= 1 && (n[n.Length - 1] == '+' || n[n.Length - 1] == '-') &&
					Contains((rn = n.Substring(0, n.Length - 1))))
			{
				p = this[rn];
				string v = n[n.Length - 1] == '+' ? option : null;
				c.OptionName = option;
				c.Option = p;
				c.OptionValues.Add(v);
				p.Invoke(c);
				return true;
			}
			return false;
		}

		private bool ParseBundledValue(string f, string n, OptionContext c)
		{
			if (f != "-")
				return false;
			for (int i = 0; i < n.Length; ++i)
			{
				Option p;
				string opt = f + n[i].ToString();
				string rn = n[i].ToString();
				if (!Contains(rn))
				{
					if (i == 0)
						return false;
					throw new OptionException(string.Format(localizer(
									"Cannot bundle unregistered option '{0}'."), opt), opt);
				}
				p = this[rn];
				switch (p.OptionValueType)
				{
					case OptionValueType.None:
						Invoke(c, opt, n, p);
						break;
					case OptionValueType.Optional:
					case OptionValueType.Required:
						{
							string v = n.Substring(i + 1);
							c.Option = p;
							c.OptionName = opt;
							ParseValue(v.Length != 0 ? v : null, c);
							return true;
						}
					default:
						throw new InvalidOperationException("Unknown OptionValueType: " + p.OptionValueType);
				}
			}
			return true;
		}

		private static void Invoke(OptionContext c, string name, string value, Option option)
		{
			c.OptionName = name;
			c.Option = option;
			c.OptionValues.Add(value);
			option.Invoke(c);
		}

		private const int OptionWidth = 29;

		public void WriteOptionDescriptions(TextWriter o)
		{
			foreach (Option p in this)
			{
				int written = 0;
				if (!WriteOptionPrototype(o, p, ref written))
					continue;

				if (written < OptionWidth)
					o.Write(new string(' ', OptionWidth - written));
				else
				{
					o.WriteLine();
					o.Write(new string(' ', OptionWidth));
				}

				bool indent = false;
				string prefix = new string(' ', OptionWidth + 2);
				foreach (string line in GetLines(localizer(GetDescription(p.Description))))
				{
					if (indent)
						o.Write(prefix);
					o.WriteLine(line);
					indent = true;
				}
			}
		}

		bool WriteOptionPrototype(TextWriter o, Option p, ref int written)
		{
			string[] names = p.Names;

			int i = GetNextOptionIndex(names, 0);
			if (i == names.Length)
				return false;

			if (names[i].Length == 1)
			{
				Write(o, ref written, "  -");
				Write(o, ref written, names[0]);
			}
			else
			{
				Write(o, ref written, "      --");
				Write(o, ref written, names[0]);
			}

			for (i = GetNextOptionIndex(names, i + 1);
					i < names.Length; i = GetNextOptionIndex(names, i + 1))
			{
				Write(o, ref written, ", ");
				Write(o, ref written, names[i].Length == 1 ? "-" : "--");
				Write(o, ref written, names[i]);
			}

			if (p.OptionValueType == OptionValueType.Optional ||
					p.OptionValueType == OptionValueType.Required)
			{
				if (p.OptionValueType == OptionValueType.Optional)
				{
					Write(o, ref written, localizer("["));
				}
				Write(o, ref written, localizer("=" + GetArgumentName(0, p.MaxValueCount, p.Description)));
				string sep = p.ValueSeparators != null && p.ValueSeparators.Length > 0
					? p.ValueSeparators[0]
					: " ";
				for (int c = 1; c < p.MaxValueCount; ++c)
				{
					Write(o, ref written, localizer(sep + GetArgumentName(c, p.MaxValueCount, p.Description)));
				}
				if (p.OptionValueType == OptionValueType.Optional)
				{
					Write(o, ref written, localizer("]"));
				}
			}
			return true;
		}

		static int GetNextOptionIndex(string[] names, int i)
		{
			while (i < names.Length && names[i] == "<>")
			{
				++i;
			}
			return i;
		}

		static void Write(TextWriter o, ref int n, string s)
		{
			n += s.Length;
			o.Write(s);
		}

		private static string GetArgumentName(int index, int maxIndex, string description)
		{
			if (description == null)
				return maxIndex == 1 ? "VALUE" : "VALUE" + (index + 1);
			string[] nameStart;
			if (maxIndex == 1)
				nameStart = new string[] { "{0:", "{" };
			else
				nameStart = new string[] { "{" + index + ":" };
			for (int i = 0; i < nameStart.Length; ++i)
			{
				int start, j = 0;
				do
				{
					start = description.IndexOf(nameStart[i], j);
				} while (start >= 0 && j != 0 ? description[j++ - 1] == '{' : false);
				if (start == -1)
					continue;
				int end = description.IndexOf("}", start);
				if (end == -1)
					continue;
				return description.Substring(start + nameStart[i].Length, end - start - nameStart[i].Length);
			}
			return maxIndex == 1 ? "VALUE" : "VALUE" + (index + 1);
		}

		private static string GetDescription(string description)
		{
			if (description == null)
				return string.Empty;
			StringBuilder sb = new StringBuilder(description.Length);
			int start = -1;
			for (int i = 0; i < description.Length; ++i)
			{
				switch (description[i])
				{
					case '{':
						if (i == start)
						{
							sb.Append('{');
							start = -1;
						}
						else if (start < 0)
							start = i + 1;
						break;
					case '}':
						if (start < 0)
						{
							if ((i + 1) == description.Length || description[i + 1] != '}')
								throw new InvalidOperationException("Invalid option description: " + description);
							++i;
							sb.Append("}");
						}
						else
						{
							sb.Append(description.Substring(start, i - start));
							start = -1;
						}
						break;
					case ':':
						if (start < 0)
							goto default;
						start = i + 1;
						break;
					default:
						if (start < 0)
							sb.Append(description[i]);
						break;
				}
			}
			return sb.ToString();
		}

		private static IEnumerable<string> GetLines(string description)
		{
			if (string.IsNullOrEmpty(description))
			{
				yield return string.Empty;
				yield break;
			}
			int length = 80 - OptionWidth - 1;
			int start = 0, end;
			do
			{
				end = GetLineEnd(start, length, description);
				char c = description[end - 1];
				if (char.IsWhiteSpace(c))
					--end;
				bool writeContinuation = end != description.Length && !IsEolChar(c);
				string line = description.Substring(start, end - start) +
						(writeContinuation ? "-" : "");
				yield return line;
				start = end;
				if (char.IsWhiteSpace(c))
					++start;
				length = 80 - OptionWidth - 2 - 1;
			} while (end < description.Length);
		}

		private static bool IsEolChar(char c)
		{
			return !char.IsLetterOrDigit(c);
		}

		private static int GetLineEnd(int start, int length, string description)
		{
			int end = System.Math.Min(start + length, description.Length);
			int sep = -1;
			for (int i = start + 1; i < end; ++i)
			{
				if (description[i] == '\n')
					return i + 1;
				if (IsEolChar(description[i]))
					sep = i + 1;
			}
			if (sep == -1 || end == description.Length)
				return end;
			return sep;
		}
	}
}



================================================
FILE: Git/Program.cs
================================================
/*
 * Copyright (C) 2006, Robin Rosenberg <robin.rosenberg@dewire.com>
 * Copyright (C) 2008, Shawn O. Pearce <spearce@spearce.org>
 * Copyright (C) 2009, Henon <meinrad.recheis@gmail.com>
 * Copyrigth (C) 2010, Andrew Cooper <andymancooper@gmail.com>
 *
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or
 * without modification, are permitted provided that the following
 * conditions are met:
 *
 * - Redistributions of source code must retain the above copyright
 *   notice, this list of conditions and the following disclaimer.
 *
 * - Redistributions in binary form must reproduce the above
 *   copyright notice, this list of conditions and the following
 *   disclaimer in the documentation and/or other materials provided
 *   with the distribution.
 *
 * - Neither the name of the Git Development Community nor the
 *   names of its contributors may be used to endorse or promote
 *   products derived from this software without specific prior
 *   written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
 * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */


using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.IO;
using GitSharp.Core;
using GitSharp.Core.Exceptions;
using NDesk.Options;

// [henon] ported from org.spearce.jgit.pgm\src\org\spearce\jgit\pgm
namespace GitSharp.CLI
{
    /// <summary>
    /// Command line entry point.
    /// </summary>
    public class Program
    {
        private static CmdParserOptionSet options;

        /// <summary>
        /// Display the stack trace on exceptions
        /// </summary>
        private static bool showStackTrace;

        /// <summary>
        /// 
        /// </summary>
        private static List<String> arguments = new List<String>();

        /// <summary>
        /// Load the parser options and 
        /// </summary>
        /// <param name="args"></param>
        public static void Main(string[] args)
        {
            options = new CmdParserOptionSet()
            {
                { "complete", "display the complete commands", v => ShowComplete() },    

                { "help|h", "display this help text", v => ShowHelp() },
                { "incomplete", "display the incomplete commands", v => ShowIncomplete() },
                { "show-stack-trace", "display the C# stack trace on exceptions", v => showStackTrace=true },
                { "version", "", v => ShowVersion() },
                { "git-dir", "", v => NoOp()},
            };
            try
            {
#if ported
                //AwtAuthenticator.install();
                //HttpSupport.configureHttpProxy();
#endif
                execute(args);
            }
            catch (Die err)
            {
                Console.Error.WriteLine("fatal: " + err.Message);
                if (showStackTrace)
                    err.printStackTrace();
                Exit(128);
            }
            catch (Exception err)
            {
                if (!showStackTrace && err.InnerException != null
                        && err is TransportException)
                    Console.Error.WriteLine("fatal: " + err.InnerException.Message);

                if (err.GetType().Name.StartsWith("GitSharp.Exceptions."))
                {
                    Console.Error.WriteLine("fatal: " + err.Message);
                    if (showStackTrace)
                        err.printStackTrace();
                    Exit(128);
                }
                err.printStackTrace();
                Exit(1);
            }

        }

        /// <summary>
        /// Execute the command line
        /// </summary>
        /// <param name="argv"></param>
        private static void execute(string[] argv)
        {
            if (argv.Count() == 0)
            {
                ShowHelp();
            }
            else if (!argv[0].StartsWith("--") && !argv[0].StartsWith("-"))
            {

                CommandCatalog catalog = new CommandCatalog();
                CommandRef subcommand = catalog.Get(argv[0]);
                string gitdir = null;

                if (subcommand != null)
                {
                    TextBuiltin cmd = subcommand.Create();
                    List<String> args = argv.ToList();
                    GitSharp.Repository repo = null;

                    try
                    {
                        for (int x = 0; x < args.Count; x++)
                        {
                            if (args[x].IndexOf("--git-dir=") > -1)
                            {
                                if (args[x].Length > 10)
                                {
                                    gitdir = args[x].Substring(10);
                                    args.RemoveAt(x);
                                    break;
                                }
                            }
                        }
                    }
                    catch (ArgumentException)
                    {
                        if (Git.DefaultOutputStream != null)
                        {
                            Git.DefaultOutputStream.WriteLine("error: can't find git directory");
                            Git.DefaultOutputStream.Flush();
                        }
                        Exit(1);
                    }

                    if (cmd.RequiresRepository)
                    {
                        if (gitdir == null)
                        {
                            gitdir = Commands.AbstractCommand.FindGitDirectory(null, true, false);
                            if (gitdir == null)
                            {
                                Console.Error.WriteLine("fatal: Not a git repository (or any of the parent directories): .git");
                                Exit(0);
                            }
                        }

                        repo = new GitSharp.Repository(gitdir);
                        cmd.Init(repo, gitdir);
                    }
                    else
                        cmd.Init(null, gitdir);

                    try
                    {
                        // Remove the subcommand from the command line
                        args.RemoveAt(0);
                        cmd.Execute(args.ToArray());
                    }
                    finally
                    {
                        if (Git.DefaultOutputStream != null)
                            Git.DefaultOutputStream.Flush();

                        if (repo != null)
                            repo.Close();
                    }
                }
                else
                {
                    // List all available commands starting with argv[0] if the command
                    // specified does not exist.
                    // If no commands exist starting with argv[0], show the help screen.
                    if (!ShowCommandMatches(argv[0]))
                        ShowHelp();
                }
            }
            else
            {
                // If the first argument in the command line is an option (denoted by starting with - or --), 
                // no subcommand has been specified in the command line.
                try
                {
                    options.Parse(argv, out arguments);
                }
                catch (OptionException err)
                {
                    if (arguments.Count > 0)
                    {
                        Console.Error.WriteLine("fatal: " + err.Message);
                        Exit(1);
                    }
                }
            }
            Exit(0);
        }

        /// <summary>
        /// Display the main offline help screen.
        /// </summary>
        private static void ShowHelp()
        {
            Console.Write("usage: git ");
            Console.Write(string.Join(" ", options.Select(o => "[--" + string.Join("|-", o.Names) + "]").ToArray()));
            Console.WriteLine("\nCOMMAND [ARGS]\n\nThe most commonly used git commands are:");
            options.WriteOptionDescriptions(Console.Error);
            Console.WriteLine();

            CommandCatalog catalog = new CommandCatalog();
            foreach (CommandRef c in catalog.Common())
            {
                Console.Write("      ");
                Console.Write(c.getName());
                for (int i = c.getName().Length + 8; i < 31; i++)
                    Console.Write(" ");
                Console.Write(c.getUsage());
                Console.WriteLine();
            }
            Console.Error.WriteLine();
            Console.Error.Write(@"See 'git help COMMAND' for more information on a specific command.");
        }

        /// <summary>
        /// Implementation of --version
        /// </summary>
        private static void ShowVersion()
        {
            var version_command = new GitSharp.CLI.Nonstandard.Version();
            version_command.Init(null, null);
            version_command.Execute(new string[0]);
        }

        /// <summary>
        /// Display the incomplete commands in GitSharp. Primarily for development use.
        /// </summary>
        private static void ShowIncomplete()
        {
            CommandCatalog catalog = new CommandCatalog();
            foreach (CommandRef c in catalog.Incomplete())
            {
                Console.Write("      ");
                Console.Write(c.getName());
                for (int i = c.getName().Length + 8; i < 31; i++)
                    Console.Write(" ");
                Console.Write(c.getUsage());
                Console.WriteLine();
            }
        }

        /// <summary>
        /// Display the complete commands in GitSharp.
        /// </summary>
        private static void ShowComplete()
        {
            CommandCatalog catalog = new CommandCatalog();
            foreach (CommandRef c in catalog.Complete())
            {
                Console.Write("      ");
                Console.Write(c.getName());
                for (int i = c.getName().Length + 8; i < 31; i++)
                    Console.Write(" ");
                Console.Write(c.getUsage());
                Console.WriteLine();
            }
        }

        /// <summary>
        /// Display the commands that start with the specified string.
        /// </summary>
        /// <param name="s"></param>
        /// <returns>Returns true if matches exist, otherwise false.</returns>
        private static bool ShowCommandMatches(String s)
        {
            CommandCatalog catalog = new CommandCatalog();
            List<CommandRef> matches = catalog.StartsWith(s);
            if (matches.Count > 0)
            {
                foreach (CommandRef c in matches)
                {
                    Console.WriteLine("git: '" + s + "' is not a git command. See 'git --help'.");
                    Console.WriteLine();
                    Console.WriteLine("Did you mean this?");
                    Console.Write("      ");
                    Console.Write(c.getName());
                    for (int i = c.getName().Length + 8; i < 31; i++)
                        Console.Write(" ");
                    Console.Write(c.getUsage());
                    Console.WriteLine();
                }
                return true;
            }
            else
            {
                return false;
            }
        }

        /// <summary>
        /// Wait for Enter key if in DEBUG mode
        /// </summary>
        /// <param name="exit_code"></param>
        static public void Exit(int exit_code)
        {
            //Close the static global repository before exiting
            if (Git.DefaultRepository != null)
                Git.DefaultRepository.Close();

#if DEBUG
            Console.WriteLine("\n\nrunning in DEBUG mode, press any key to exit.");
            Console.In.ReadLine();
#endif
            Environment.Exit(exit_code);
        }

        /// <summary>
        /// Placeholder for the --git-dir command-line option. It is handled before it reaches this method.
        /// </summary>
        static private void NoOp()
        {
        }

    }

}


================================================
FILE: Git/Properties/AssemblyInfo.cs
================================================
using System.Reflection;

[assembly: AssemblyTitle("git")]
[assembly: AssemblyDescription("Command line interface for GitSharp")]


================================================
FILE: Git/README.txt
================================================
CLI (Command Line Interface) is a not so close port of jgit's pgm-package and 
shall be equivalent to the original git command line.

The implemented git commands are located in Commands
The auto-generated command stubs are located in Stubs. They will be moved to Commands once implemented.

The CLI commands rely on the command API in GitSharp.Commands

================================================
FILE: Git/Resources/Commands.xml
================================================
<?xml version="1.0" encoding="utf-8" ?>
<root>
  <CommandList>
    <Command>
      <Name>GitSharp.CLI.Add</Name>
      <Help>http://www.kernel.org/pub/software/scm/git/docs/git-add.html</Help>
    </Command>
    <Command>
      <Name>GitSharp.CLI.Bisect</Name>
      <Help>http://www.kernel.org/pub/software/scm/git/docs/git-bisect.html</Help>
    </Command>
    <Command>
      <Name>GitSharp.CLI.Branch</Name>
      <Help>http://www.kernel.org/pub/software/scm/git/docs/git-branch.html</Help>
    </Command>
    <Command>
      <Name>GitSharp.CLI.Checkout</Name>
      <Help>http://www.kernel.org/pub/software/scm/git/docs/git-checkout.html</Help>
    </Command>
    <Command>
      <Name>GitSharp.CLI.Clone</Name>
      <Help>http://www.kernel.org/pub/software/scm/git/docs/git-clone.html</Help>
    </Command>
    <Command>
      <Name>GitSharp.CLI.Commit</Name>
      <Help>http://www.kernel.org/pub/software/scm/git/docs/git-commit.html</Help>
    </Command>
    <Command>
      <Name>GitSharp.CLI.Config</Name>
      <Help>http://www.kernel.org/pub/software/scm/git/docs/git-config.html</Help>
    </Command>
    <Command>
      <Name>GitSharp.CLI.Daemon</Name>
      <Help>http://www.kernel.org/pub/software/scm/git/docs/git-daemon.html</Help>
    </Command>
    <Command>
      <Name>GitSharp.CLI.Diff</Name>
      <Help>http://www.kernel.org/pub/software/scm/git/docs/git-diff.html</Help>
    </Command>
    <Command>
      <Name>GitSharp.CLI.DiffTree</Name>
      <Help>http://www.kernel.org/pub/software/scm/git/docs/git-diff-tree.html</Help>
    </Command>
    <Command>
      <Name>GitSharp.CLI.Fetch</Name>
    <Help>http://www.kernel.org/pub/software/scm/git/docs/git-fetch.html</Help>
    </Command>
    <Command>
      <Name>GitSharp.CLI.Grep</Name>
      <Help>http://www.kernel.org/pub/software/scm/git/docs/git-grep.html</Help>
    </Command>
    <Command>
      <Name>GitSharp.CLI.IndexPack</Name>
      <Help>http://www.kernel.org/pub/software/scm/git/docs/git-index-pack.html</Help>
    </Command>
    <Command>
      <Name>GitSharp.CLI.Init</Name>
    <Help>http://www.kernel.org/pub/software/scm/git/docs/git-init.html</Help>
    </Command>
    <Command>
      <Name>GitSharp.CLI.Log</Name>
    <Help>http://www.kernel.org/pub/software/scm/git/docs/git-log.html</Help>
    </Command>
    <Command>
      <Name>GitSharp.CLI.LsRemote</Name>
      <Help>http://www.kernel.org/pub/software/scm/git/docs/git-ls-remote.html</Help>
    </Command>
    <Command>
      <Name>GitSharp.CLI.LsTree</Name>
      <Help>http://www.kernel.org/pub/software/scm/git/docs/git-ls-tree.html</Help>
    </Command>
    <Command>
      <Name>GitSharp.CLI.Merge</Name>
      <Help>http://www.kernel.org/pub/software/scm/git/docs/git-merge.html</Help>
    </Command>
    <Command>
      <Name>GitSharp.CLI.MergeBase</Name>
      <Help>http://www.kernel.org/pub/software/scm/git/docs/git-merge-base.html</Help>
    </Command>
    <Command>
      <Name>GitSharp.CLI.Mv</Name>
      <Help>http://www.kernel.org/pub/software/scm/git/docs/git-mv.html</Help>
    </Command>
    <Command>
      <Name>GitSharp.CLI.Pull</Name>
      <Help>http://www.kernel.org/pub/software/scm/git/docs/git-pull.html</Help>
    </Command>
    <Command>
      <Name>GitSharp.CLI.Push</Name>
    <Help>http://www.kernel.org/pub/software/scm/git/docs/git-push.html</Help>
    </Command>
    <Command>
      <Name>GitSharp.CLI.Rebase</Name>
      <Help>http://www.kernel.org/pub/software/scm/git/docs/git-rebase.html</Help>
    </Command>
    <Command>
      <Name>GitSharp.CLI.ReceivePack</Name>
      <Help>http://www.kernel.org/pub/software/scm/git/docs/git-receive-pack.html</Help>
    </Command>
    <Command>
      <Name>GitSharp.CLI.Reset</Name>
      <Help>http://www.kernel.org/pub/software/scm/git/docs/git-reset.html</Help>
    </Command>
    <Command>
      <Name>GitSharp.CLI.RevList</Name>
      <Help>http://www.kernel.org/pub/software/scm/git/docs/git-rev-list.html</Help>
    </Command>
    <Command>
      <Name>GitSharp.CLI.RevParse</Name>
      <Help>http://www.kernel.org/pub/software/scm/git/docs/git-rev-parse.html</Help>
    </Command>
    <Command>
      <Name>GitSharp.CLI.Rm</Name>
    <Help>http://www.kernel.org/pub/software/scm/git/docs/git-rm.html</Help>
    </Command>
    <Command>
      <Name>GitSharp.CLI.Show</Name>
      <Help>http://www.kernel.org/pub/software/scm/git/docs/git-show.html</Help>
    </Command>
    <Command>
      <Name>GitSharp.CLI.ShowRef</Name>
      <Help>http://www.kernel.org/pub/software/scm/git/docs/git-show-ref.html</Help>
    </Command>
    <Command>
      <Name>GitSharp.CLI.Status</Name>
      <Help>http://www.kernel.org/pub/software/scm/git/docs/git-status.html</Help>
    </Command>
    <Command>
      <Name>GitSharp.CLI.Tag</Name>
      <Help>http://www.kernel.org/pub/software/scm/git/docs/git-tag.html</Help>
    </Command>
    <Command>
      <Name>GitSharp.CLI.UploadPack</Name>
      <Help>http://www.kernel.org/pub/software/scm/git/docs/git-upload-pack.html</Help>
    </Command>
    <Command>
      <Name>GitSharp.CLI.Nonstandard.Help</Name>
      <Help></Help>
    </Command>
    <Command>
      <Name>GitSharp.CLI.Nonstandard.Version</Name>
      <Help></Help>
    </Command>
    <Command>
      <Name>GitSharp.CLI.Nonstandard.Glog</Name>
      <Help></Help>
    </Command>
    <Command>
      <Name>GitSharp.CLI.Nonstandard.ShowRev</Name>
      <Help></Help>
    </Command>
    <Command>
      <Name>GitSharp.CLI.Debug.MakeCacheTree</Name>
      <Help></Help>
  </Command>
    <Command>
      <Name>GitSharp.CLI.Debug.ReadDirCache</Name>
      <Help></Help>
  </Command>
    <Command>
      <Name>GitSharp.CLI.Debug.RebuildCommitGraph</Name>
      <Help></Help>
  </Command>
    <Command>
      <Name>GitSharp.CLI.Debug.ShowCacheTree</Name>
      <Help></Help>
  </Command>
    <Command>
      <Name>GitSharp.CLI.Debug.ShowCommands</Name>
      <Help></Help>
  </Command>
    <Command>
      <Name>GitSharp.CLI.Debug.ShowDirCache</Name>
      <Help></Help>
  </Command>
    <Command>
      <Name>GitSharp.CLI.Debug.WriteDirCache</Name>
      <Help></Help>
  </Command>
  </CommandList>
</root>

================================================
FILE: Git/Stubs/Am.cs
================================================
/*
 * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>
 *
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or
 * without modification, are permitted provided that the following
 * conditions are met:
 *
 * - Redistributions of source code must retain the above copyright
 *   notice, this list of conditions and the following disclaimer.
 *
 * - Redistributions in binary form must reproduce the above
 *   copyright notice, this list of conditions and the following
 *   disclaimer in the documentation and/or other materials provided
 *   with the distribution.
 *
 * - Neither the name of the Git Development Community nor the
 *   names of its contributors may be used to endorse or promote
 *   products derived from this software without specific prior
 *   written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
 * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */

using System;
using System.Collections.Generic;
using NDesk.Options;
using GitSharp.Commands;

namespace GitSharp.CLI
{

    [Command(common=true, requiresRepository=true, usage = "")]
    public class Am : TextBuiltin
    {
        private AmCommand cmd = new AmCommand();
        private static Boolean isHelp;

        public override void Run(string[] args)
        {
            cmd.Quiet = false;
			
            options = new CmdParserOptionSet()
            {
               { "h|help", "Display this help information. To see online help, use: git help <command>", v=>OfflineHelp()},
               { "s|signoff", "Add a `Signed-off-by:` line to the commit message, using the committer identity of yourself", v => cmd.Signoff = true },
               { "k|keep", "Pass `-k` flag to 'git-mailinfo' (see linkgit:git-mailinfo[1])", v => cmd.Keep = true },
               { "c|scissors", "Remove everything in body before a scissors line (see linkgit:git-mailinfo[1])", v => cmd.Scissors = true },
               { "no-scissors", "Ignore scissors lines (see linkgit:git-mailinfo[1])", v => cmd.NoScissors = true },
               { "q|quiet", "Be quiet", v => cmd.Quiet = true },
               { "u|utf8", "Pass `-u` flag to 'git-mailinfo' (see linkgit:git-mailinfo[1])", v => cmd.Utf8 = true },
               { "no-utf8", "Pass `-n` flag to 'git-mailinfo' (see linkgit:git-mailinfo[1])", v => cmd.NoUtf8 = true },
               { "3|3way", "When the patch does not apply cleanly, fall back on 3-way merge if the patch records the identity of blobs it is supposed to apply to and we have those blobs available locally", v => cmd.ThreeWay = true },
               { "ignore-date", "These flags are passed to the 'git-apply' (see linkgit:git-apply[1]) program that applies the patch", v => cmd.IgnoreDate = true },
               { "ignore-space-change", "These flags are passed to the 'git-apply' (see linkgit:git-apply[1]) program that applies the patch", v => cmd.IgnoreSpaceChange = true },
               { "ignore-whitespace=", "These flags are passed to the 'git-apply' (see linkgit:git-apply[1]) program that applies the patch", v => cmd.IgnoreWhitespace = v },
               { "w|whitespace=", "These flags are passed to the 'git-apply' (see linkgit:git-apply[1]) program that applies the patch", v => cmd.Whitespace = v },
               { "p|directory=", "These flags are passed to the 'git-apply' (see linkgit:git-apply[1]) program that applies the patch", v => cmd.Directory = v },
               { "reject", "These flags are passed to the 'git-apply' (see linkgit:git-apply[1]) program that applies the patch", v => cmd.Reject = true },
               { "i|interactive", "Run interactively", v => cmd.Interactive = true },
               { "committer-date-is-author-date", "By default the command records the date from the e-mail message as the commit author date, and uses the time of commit creation as the committer date", v => cmd.CommitterDateIsAuthorDate = true },
               { "ignore-date", "By default the command records the date from the e-mail message as the commit author date, and uses the time of commit creation as the committer date", v => cmd.IgnoreDate = true },
               { "skip", "Skip the current patch", v => cmd.Skip = true },
               { "r|resolved", "After a patch failure (e", v => cmd.Resolved = true },
               { "resolvemsg=", "When a patch failure occurs, <msg> will be printed to the screen before exiting", v => cmd.Resolvemsg = v },
               { "abort", "Restore the original branch and abort the patching operation", v => cmd.Abort = true },
            };

            try
            {
                List<String> arguments = ParseOptions(args);
                if (arguments.Count > 0)
                {
                    cmd.Arguments = arguments;
                    cmd.Execute();
                }
                else
                {
                    OfflineHelp();
                }
            }
            catch (Exception e)            
            {
                cmd.OutputStream.WriteLine(e.Message);
            }
        }

        private void OfflineHelp()
        {
            if (!isHelp)
            {
                isHelp = true;
                cmd.OutputStream.WriteLine("Here should be the usage...");
                cmd.OutputStream.WriteLine();
                options.WriteOptionDescriptions(Console.Out);
                cmd.OutputStream.WriteLine();
            }
        }
    }
}


================================================
FILE: Git/Stubs/Annotate.cs
================================================
/*
 * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>
 *
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or
 * without modification, are permitted provided that the following
 * conditions are met:
 *
 * - Redistributions of source code must retain the above copyright
 *   notice, this list of conditions and the following disclaimer.
 *
 * - Redistributions in binary form must reproduce the above
 *   copyright notice, this list of conditions and the following
 *   disclaimer in the documentation and/or other materials provided
 *   with the distribution.
 *
 * - Neither the name of the Git Development Community nor the
 *   names of its contributors may be used to endorse or promote
 *   products derived from this software without specific prior
 *   written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
 * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */

using System;
using System.Collections.Generic;
using NDesk.Options;
using GitSharp.Commands;

namespace GitSharp.CLI
{
    // [Mr Happy] This will probably point to git-blame later on.
    [Command(common=true, requiresRepository=true, usage = "")]
    public class Annotate : TextBuiltin
    {
        private AnnotateCommand cmd = new AnnotateCommand();
        private static Boolean isHelp;

        public override void Run(string[] args)
        {
			
            options = new CmdParserOptionSet()
            {
               { "h|help", "Display this help information. To see online help, use: git help <command>", v=>OfflineHelp()},
               { "b", "Show blank SHA-1 for boundary commits", v => cmd.B = true },
               { "root", "Do not treat root commits as boundaries", v => cmd.Root = true },
               { "show-stats", "Include additional statistics at the end of blame output", v => cmd.ShowStats = true },
               { "L=", "Annotate only the given line range", v => cmd.L = v },
               { "l", "Show long rev (Default: off)", v => cmd.l = true },
               { "t", "Show raw timestamp (Default: off)", v => cmd.T = true },
               { "S=", "Use revisions from revs-file instead of calling linkgit:git-rev-list[1]", v => cmd.S = v },
               { "reverse", "Walk history forward instead of backward", v => cmd.Reverse = true },
               { "p|porcelain", "Show in a format designed for machine consumption", v => cmd.Porcelain = true },
               { "incremental", "Show the result incrementally in a format designed for machine consumption", v => cmd.Incremental = true },
               { "encoding=", "Specifies the encoding used to output author names and commit summaries", v => cmd.Encoding = v },
               { "contents=", "When <rev> is not specified, the command annotates the changes starting backwards from the working tree copy", v => cmd.Contents = v },
               { "date=", "The value is one of the following alternatives: {relative,local,default,iso,rfc,short}", v => cmd.Date = v },
               { "M=", "Detect moving lines in the file as well", v => cmd.M = v },
               { "C=", "In addition to `-M`, detect lines copied from other files that were modified in the same commit", v => cmd.C = v },
               { "h|help", "Show help message", v => cmd.Help = true },
            };

            try
            {
                List<String> arguments = ParseOptions(args);
                if (arguments.Count > 0)
                {
                    cmd.Arguments = arguments;
                    cmd.Execute();
                }
                else
                {
                    OfflineHelp();
                }
            }
            catch (Exception e)            
            {
                cmd.OutputStream.WriteLine(e.Message);
            }
        }

        private void OfflineHelp()
        {
            if (!isHelp)
            {
                isHelp = true;
                cmd.OutputStream.WriteLine("Here should be the usage...");
                cmd.OutputStream.WriteLine();
                options.WriteOptionDescriptions(Console.Out);
                cmd.OutputStream.WriteLine();
            }
        }
    }
}


================================================
FILE: Git/Stubs/Apply.cs
================================================
/*
 * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>
 *
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or
 * without modification, are permitted provided that the following
 * conditions are met:
 *
 * - Redistributions of source code must retain the above copyright
 *   notice, this list of conditions and the following disclaimer.
 *
 * - Redistributions in binary form must reproduce the above
 *   copyright notice, this list of conditions and the following
 *   disclaimer in the documentation and/or other materials provided
 *   with the distribution.
 *
 * - Neither the name of the Git Development Community nor the
 *   names of its contributors may be used to endorse or promote
 *   products derived from this software without specific prior
 *   written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
 * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */

using System;
using System.Collections.Generic;
using NDesk.Options;
using GitSharp.Commands;

namespace GitSharp.CLI
{

    [Command(common=true, requiresRepository=true, usage = "")]
    public class Apply : TextBuiltin
    {
        private ApplyCommand cmd = new ApplyCommand();
        private static Boolean isHelp;

        public override void Run(string[] args)
        {			
            options = new CmdParserOptionSet()
            {
               { "h|help", "Display this help information. To see online help, use: git help <command>", v=>OfflineHelp()},
               { "stat", "Instead of applying the patch, output diffstat for the input", v => cmd.Stat = true },
               { "numstat", "Similar to `--stat`, but shows the number of added and deleted lines in decimal notation and the pathname without abbreviation, to make it more machine friendly", v => cmd.Numstat = true },
               { "summary", "Instead of applying the patch, output a condensed summary of information obtained from git diff extended headers, such as creations, renames and mode changes", v => cmd.Summary = true },
               { "check", "Instead of applying the patch, see if the patch is applicable to the current working tree and/or the index file and detects errors", v => cmd.Check = true },
               { "index", "When `--check` is in effect, or when applying the patch (which is the default when none of the options that disables it is in effect), make sure the patch is applicable to what the current index file records", v => cmd.Index = true },
               { "cached", "Apply a patch without touching the working tree", v => cmd.Cached = true },
               { "build-fake-ancestor=", "Newer 'git-diff' output has embedded 'index information' for each blob to help identify the original version that the patch applies to", v => cmd.BuildFakeAncestor = v },
               { "R|reverse", "Apply the patch in reverse", v => cmd.Reverse = true },
               { "reject", "For atomicity, 'git-apply' by default fails the whole patch and does not touch the working tree when some of the hunks do not apply", v => cmd.Reject = true },
               { "z", "When `--numstat` has been given, do not munge pathnames, but use a NUL-terminated machine-readable format", v => cmd.Z = true },
               { "p=", "Remove <n> leading slashes from traditional diff paths", v => cmd.P = v },
               { "C=", "Ensure at least <n> lines of surrounding context match before and after each change", v => cmd.C = v },
               { "unidiff-zero", "By default, 'git-apply' expects that the patch being applied is a unified diff with at least one line of context", v => cmd.UnidiffZero = true },
               { "apply", "If you use any of the options marked \"Turns off 'apply'\" above, 'git-apply' reads and outputs the requested information without actually applying the patch", v => cmd.Apply = true },
               { "no-add", "When applying a patch, ignore additions made by the patch", v => cmd.NoAdd = true 
Download .txt
gitextract_uc_l63ip/

├── .gitignore
├── ChangeLog
├── Demo.txt
├── Git/
│   ├── CmdParserOptionSet.cs
│   ├── Command.cs
│   ├── CommandCatalog.cs
│   ├── CommandRef.cs
│   ├── Commands/
│   │   ├── Add.cs
│   │   ├── Checkout.cs
│   │   ├── Clone.cs
│   │   ├── Commit.cs
│   │   ├── Config.cs
│   │   ├── Fetch.cs
│   │   ├── Help.cs
│   │   ├── Init.cs
│   │   ├── Log.cs
│   │   ├── Merge.cs
│   │   ├── Pull.cs
│   │   ├── Push.cs
│   │   ├── Rm.cs
│   │   ├── Status.cs
│   │   └── Version.cs
│   ├── Die.cs
│   ├── Git.csproj
│   ├── Options.cs
│   ├── Program.cs
│   ├── Properties/
│   │   └── AssemblyInfo.cs
│   ├── README.txt
│   ├── Resources/
│   │   └── Commands.xml
│   ├── Stubs/
│   │   ├── Am.cs
│   │   ├── Annotate.cs
│   │   ├── Apply.cs
│   │   ├── Archive.cs
│   │   ├── Blame.cs
│   │   ├── Branch.cs
│   │   ├── CatFile.cs
│   │   ├── CheckoutIndex.cs
│   │   ├── Cherry.cs
│   │   ├── CherryPick.cs
│   │   ├── Clean.cs
│   │   ├── CommitTree.cs
│   │   ├── CountObjects.cs
│   │   ├── Describe.cs
│   │   ├── Diff.cs
│   │   ├── DiffFiles.cs
│   │   ├── DiffIndex.cs
│   │   ├── DiffTree.cs
│   │   ├── Difftool.cs
│   │   ├── FastExport.cs
│   │   ├── FastImport.cs
│   │   ├── FetchPack.cs
│   │   ├── FilterBranch.cs
│   │   ├── FmtMergeMsg.cs
│   │   ├── ForEachRef.cs
│   │   ├── FormatPatch.cs
│   │   ├── Fsck.cs
│   │   ├── Gc.cs
│   │   ├── Grep.cs
│   │   ├── HashObject.cs
│   │   ├── IndexPack.cs
│   │   ├── LsFiles.cs
│   │   ├── LsRemote.cs
│   │   ├── LsTree.cs
│   │   ├── Mailinfo.cs
│   │   ├── Mailsplit.cs
│   │   ├── MergeBase.cs
│   │   ├── MergeFile.cs
│   │   ├── MergeIndex.cs
│   │   ├── Mergetool.cs
│   │   ├── Mktree.cs
│   │   ├── Mv.cs
│   │   ├── NameRev.cs
│   │   ├── Notes.cs
│   │   ├── PackObjects.cs
│   │   ├── PackRedundant.cs
│   │   ├── PackRefs.cs
│   │   ├── PatchId.cs
│   │   ├── PeekRemote.cs
│   │   ├── Prune.cs
│   │   ├── PrunePacked.cs
│   │   ├── Quiltimport.cs
│   │   ├── ReadTree.cs
│   │   ├── Rebase.cs
│   │   ├── ReceivePack.cs
│   │   ├── Reflog.cs
│   │   ├── Relink.cs
│   │   ├── Remote.cs
│   │   ├── Repack.cs
│   │   ├── Replace.cs
│   │   ├── RequestPull.cs
│   │   ├── Reset.cs
│   │   ├── RevParse.cs
│   │   ├── Revert.cs
│   │   ├── SendPack.cs
│   │   ├── Shortlog.cs
│   │   ├── Show.cs
│   │   ├── ShowBranch.cs
│   │   ├── ShowRef.cs
│   │   ├── Stripspace.cs
│   │   ├── Submodule.cs
│   │   ├── Svn.cs
│   │   ├── SymbolicRef.cs
│   │   ├── Tag.cs
│   │   ├── TarTree.cs
│   │   ├── UnpackFile.cs
│   │   ├── UnpackObjects.cs
│   │   ├── UpdateIndex.cs
│   │   ├── UpdateServerInfo.cs
│   │   ├── UploadArchive.cs
│   │   ├── UploadPack.cs
│   │   ├── Var.cs
│   │   ├── VerifyPack.cs
│   │   ├── VerifyTag.cs
│   │   └── Whatchanged.cs
│   └── TextBuiltin.cs
├── GitSharp/
│   ├── AbstractObject.cs
│   ├── AbstractTreeNode.cs
│   ├── Author.cs
│   ├── Blob.cs
│   ├── Branch.cs
│   ├── Change.cs
│   ├── Commands/
│   │   ├── AbstractCommand.cs
│   │   ├── AbstractFetchCommand.cs
│   │   ├── CloneCommand.cs
│   │   ├── FetchCommand.cs
│   │   ├── IGitCommand.cs
│   │   ├── InitCommand.cs
│   │   ├── LogCommand.cs
│   │   ├── MergeCommand.cs
│   │   ├── PushCommand.cs
│   │   ├── StatusCommand.cs
│   │   └── _NotSupportedCommands.txt
│   ├── Commit.cs
│   ├── Config.cs
│   ├── Diff.cs
│   ├── Examples.cs
│   ├── Git.cs
│   ├── GitSharp.csproj
│   ├── IReferenceObject.cs
│   ├── IgnoreRules.cs
│   ├── Index.cs
│   ├── Leaf.cs
│   ├── Properties/
│   │   └── AssemblyInfo.cs
│   ├── README.txt
│   ├── Ref.cs
│   ├── Remote.cs
│   ├── Repository.cs
│   ├── RepositoryStatus.cs
│   ├── ResetBehavior.cs
│   ├── Stash.cs
│   ├── Stubs/
│   │   ├── AddCommand.cs
│   │   ├── AmCommand.cs
│   │   ├── AnnotateCommand.cs
│   │   ├── ApplyCommand.cs
│   │   ├── ArchiveCommand.cs
│   │   ├── BlameCommand.cs
│   │   ├── BranchCommand.cs
│   │   ├── CatFileCommand.cs
│   │   ├── CheckoutCommand.cs
│   │   ├── CheckoutIndexCommand.cs
│   │   ├── CherryCommand.cs
│   │   ├── CherryPickCommand.cs
│   │   ├── CleanCommand.cs
│   │   ├── CommitCommand.cs
│   │   ├── CommitTreeCommand.cs
│   │   ├── ConfigCommand.cs
│   │   ├── CountObjectsCommand.cs
│   │   ├── DescribeCommand.cs
│   │   ├── DiffCommand.cs
│   │   ├── DiffFilesCommand.cs
│   │   ├── DiffIndexCommand.cs
│   │   ├── DiffTreeCommand.cs
│   │   ├── DifftoolCommand.cs
│   │   ├── FastExportCommand.cs
│   │   ├── FastImportCommand.cs
│   │   ├── FetchPackCommand.cs
│   │   ├── FilterBranchCommand.cs
│   │   ├── ForEachRefCommand.cs
│   │   ├── FormatPatchCommand.cs
│   │   ├── FsckCommand.cs
│   │   ├── GcCommand.cs
│   │   ├── GrepCommand.cs
│   │   ├── HashObjectCommand.cs
│   │   ├── IndexPackCommand.cs
│   │   ├── LsFilesCommand.cs
│   │   ├── LsRemoteCommand.cs
│   │   ├── LsTreeCommand.cs
│   │   ├── MailinfoCommand.cs
│   │   ├── MailsplitCommand.cs
│   │   ├── MergeBaseCommand.cs
│   │   ├── MergeFileCommand.cs
│   │   ├── MergeIndexCommand.cs
│   │   ├── MergetoolCommand.cs
│   │   ├── MktreeCommand.cs
│   │   ├── MvCommand.cs
│   │   ├── NameRevCommand.cs
│   │   ├── NotesCommand.cs
│   │   ├── PackObjectsCommand.cs
│   │   ├── PackRedundantCommand.cs
│   │   ├── PackRefsCommand.cs
│   │   ├── PatchIdCommand.cs
│   │   ├── PeekRemoteCommand.cs
│   │   ├── PruneCommand.cs
│   │   ├── PrunePackedCommand.cs
│   │   ├── QuiltimportCommand.cs
│   │   ├── ReadTreeCommand.cs
│   │   ├── RebaseCommand.cs
│   │   ├── ReceivePackCommand.cs
│   │   ├── ReflogCommand.cs
│   │   ├── RelinkCommand.cs
│   │   ├── RemoteCommand.cs
│   │   ├── RepackCommand.cs
│   │   ├── ReplaceCommand.cs
│   │   ├── RequestPullCommand.cs
│   │   ├── ResetCommand.cs
│   │   ├── RevParseCommand.cs
│   │   ├── RevertCommand.cs
│   │   ├── RmCommand.cs
│   │   ├── SendPackCommand.cs
│   │   ├── ShortlogCommand.cs
│   │   ├── ShowBranchCommand.cs
│   │   ├── ShowCommand.cs
│   │   ├── ShowRefCommand.cs
│   │   ├── StripspaceCommand.cs
│   │   ├── SubmoduleCommand.cs
│   │   ├── SvnCommand.cs
│   │   ├── SymbolicRefCommand.cs
│   │   ├── TagCommand.cs
│   │   ├── TarTreeCommand.cs
│   │   ├── UnpackFileCommand.cs
│   │   ├── UnpackObjectsCommand.cs
│   │   ├── UpdateIndexCommand.cs
│   │   ├── UpdateServerInfoCommand.cs
│   │   ├── UploadArchiveCommand.cs
│   │   ├── UploadPackCommand.cs
│   │   ├── VarCommand.cs
│   │   ├── VerifyPackCommand.cs
│   │   ├── VerifyTagCommand.cs
│   │   └── WhatchangedCommand.cs
│   ├── Tag.cs
│   ├── Text.cs
│   ├── Tree.cs
│   └── UserInfoProvider.cs
├── GitSharp licence.txt
├── GitSharp.Core/
│   ├── AbbreviatedObjectId.cs
│   ├── AbstractIndexTreeVisitor.cs
│   ├── AlternateRepositoryDatabase.cs
│   ├── AnyObjectId.cs
│   ├── BinaryDelta.cs
│   ├── BlobBasedConfig.cs
│   ├── ByteArrayExtensions.cs
│   ├── ByteArrayWindow.cs
│   ├── ByteBufferWindow.cs
│   ├── ByteWindow.cs
│   ├── CachedObjectDatabase.cs
│   ├── CachedObjectDirectory.cs
│   ├── Codec.cs
│   ├── Commit.cs
│   ├── CompleteAttribute.cs
│   ├── Config.cs
│   ├── ConsoleUserInfoProvider.cs
│   ├── Constants.cs
│   ├── CoreConfig.cs
│   ├── DeltaOfsPackedObjectLoader.cs
│   ├── DeltaPackedObjectLoader.cs
│   ├── DeltaRefPackedObjectLoader.cs
│   ├── Diff/
│   │   ├── DiffFormatter.cs
│   │   ├── Edit.cs
│   │   ├── EditList.cs
│   │   ├── MyersDiff.cs
│   │   ├── RawText.cs
│   │   └── Sequence.cs
│   ├── DirectoryCache/
│   │   ├── BaseDirCacheEditor.cs
│   │   ├── DirCache.cs
│   │   ├── DirCacheBuildIterator.cs
│   │   ├── DirCacheBuilder.cs
│   │   ├── DirCacheEditor.cs
│   │   ├── DirCacheEntry.cs
│   │   ├── DirCacheIterator.cs
│   │   └── DirCacheTree.cs
│   ├── Ensure.cs
│   ├── Exceptions/
│   │   ├── CancelledException.cs
│   │   ├── CheckoutConflictException.cs
│   │   ├── CompoundException.cs
│   │   ├── ConfigInvalidException.cs
│   │   ├── CorruptObjectException.cs
│   │   ├── EntryExistsException.cs
│   │   ├── ExceptionExtensions.cs
│   │   ├── FileLockedException.cs
│   │   ├── GitlinksNotSupportedException.cs
│   │   ├── IncorrectObjectTypeException.cs
│   │   ├── InvalidObjectIdException.cs
│   │   ├── InvalidPackException.cs
│   │   ├── InvalidPatternException.cs
│   │   ├── MissingBundlePrerequisiteException.cs
│   │   ├── MissingObjectException.cs
│   │   ├── NoClosingBracketException.cs
│   │   ├── NoRemoteRepositoryException.cs
│   │   ├── ObjectWritingException.cs
│   │   ├── PackMismatchException.cs
│   │   ├── PackProtocolException.cs
│   │   ├── RepositoryNotFoundException.cs
│   │   ├── RevWalkException.cs
│   │   ├── RevisionSyntaxException.cs
│   │   ├── StopWalkException.cs
│   │   ├── SymlinksNotSupportedException.cs
│   │   ├── TransportException.cs
│   │   └── UnmergedPathException.cs
│   ├── FileBasedConfig.cs
│   ├── FileMode.cs
│   ├── FileTreeEntry.cs
│   ├── FnMatch/
│   │   ├── AbstractHead.cs
│   │   ├── CharacterHead.cs
│   │   ├── FileNameMatcher.cs
│   │   ├── GroupHead.cs
│   │   ├── IHead.cs
│   │   ├── LastHead.cs
│   │   ├── RestrictedWildCardHead.cs
│   │   └── WildCardHead.cs
│   ├── ForceModified.cs
│   ├── GitException.cs
│   ├── GitIndex.cs
│   ├── GitSharp.Core.csproj
│   ├── GitlinkTreeEntry.cs
│   ├── IgnoreHandler.cs
│   ├── IndexChangedEventArgs.cs
│   ├── IndexDiff.cs
│   ├── IndexTreeVisitor.cs
│   ├── IndexTreeWalker.cs
│   ├── InflaterCache.cs
│   ├── LockFile.cs
│   ├── Merge/
│   │   ├── MergeAlgorithm.cs
│   │   ├── MergeChunk.cs
│   │   ├── MergeFormatter.cs
│   │   ├── MergeResult.cs
│   │   ├── MergeStrategy.cs
│   │   ├── Merger.cs
│   │   ├── StrategyOneSided.cs
│   │   ├── StrategySimpleTwoWayInCore.cs
│   │   ├── ThreeWayMergeStrategy.cs
│   │   └── ThreeWayMerger.cs
│   ├── MutableObjectId.cs
│   ├── NullProgressMonitor.cs
│   ├── ObjectChecker.cs
│   ├── ObjectDatabase.cs
│   ├── ObjectDirectory.cs
│   ├── ObjectId.cs
│   ├── ObjectIdRef.cs
│   ├── ObjectIdSubclassMap.cs
│   ├── ObjectLoader.cs
│   ├── ObjectType.cs
│   ├── ObjectWriter.cs
│   ├── OffsetCache.cs
│   ├── PackFile.cs
│   ├── PackIndex.cs
│   ├── PackIndexV1.cs
│   ├── PackIndexV2.cs
│   ├── PackIndexWriter.cs
│   ├── PackIndexWriterV1.cs
│   ├── PackIndexWriterV2.cs
│   ├── PackLock.cs
│   ├── PackOutputStream.cs
│   ├── PackReverseIndex.cs
│   ├── PackWriter.cs
│   ├── PackedObjectLoader.cs
│   ├── Patch/
│   │   ├── BinaryHunk.cs
│   │   ├── CombinedFileHeader.cs
│   │   ├── CombinedHunkHeader.cs
│   │   ├── FileHeader.cs
│   │   ├── FormatError.cs
│   │   ├── HunkHeader.cs
│   │   └── Patch.cs
│   ├── PersonIdent.cs
│   ├── Platform/
│   │   ├── Linux.cs
│   │   ├── Mac.cs
│   │   ├── Platform.cs
│   │   └── Windows.cs
│   ├── ProgressMonitor.cs
│   ├── Properties/
│   │   └── AssemblyInfo.cs
│   ├── Ref.cs
│   ├── RefComparator.cs
│   ├── RefDatabase.cs
│   ├── RefDirectory.cs
│   ├── RefDirectoryRename.cs
│   ├── RefDirectoryUpdate.cs
│   ├── RefRename.cs
│   ├── RefUpdate.cs
│   ├── RefWriter.cs
│   ├── ReflogReader.cs
│   ├── RefsChangedEventArgs.cs
│   ├── Repository.cs
│   ├── RepositoryCache.cs
│   ├── RepositoryChangedEventArgs.cs
│   ├── RepositoryConfig.cs
│   ├── RepositoryListener.cs
│   ├── RepositoryState.cs
│   ├── RevPlot/
│   │   ├── AbstractPlotRenderer.cs
│   │   ├── PlotCommit.cs
│   │   ├── PlotCommitList.cs
│   │   ├── PlotLane.cs
│   │   └── PlotWalk.cs
│   ├── RevWalk/
│   │   ├── AbstractRevQueue.cs
│   │   ├── BlockObjQueue.cs
│   │   ├── BlockRevQueue.cs
│   │   ├── BoundaryGenerator.cs
│   │   ├── DateRevQueue.cs
│   │   ├── DelayRevQueue.cs
│   │   ├── EndGenerator.cs
│   │   ├── FIFORevQueue.cs
│   │   ├── Filter/
│   │   │   ├── AndRevFilter.cs
│   │   │   ├── AuthorRevFilter.cs
│   │   │   ├── CommitTimeRevFilter.cs
│   │   │   ├── CommitterRevFilter.cs
│   │   │   ├── MessageRevFilter.cs
│   │   │   ├── NotRevFilter.cs
│   │   │   ├── OrRevFilter.cs
│   │   │   ├── PatternMatchRevFilter.cs
│   │   │   ├── RevFilter.cs
│   │   │   ├── RevFlagFilter.cs
│   │   │   └── SubStringRevFilter.cs
│   │   ├── FixUninterestingGenerator.cs
│   │   ├── FooterKey.cs
│   │   ├── FooterLine.cs
│   │   ├── Generator.cs
│   │   ├── LIFORevQueue.cs
│   │   ├── MergeBaseGenerator.cs
│   │   ├── ObjectWalk.cs
│   │   ├── PendingGenerator.cs
│   │   ├── RevBlob.cs
│   │   ├── RevCommit.cs
│   │   ├── RevCommitList.cs
│   │   ├── RevFlag.cs
│   │   ├── RevFlagSet.cs
│   │   ├── RevObject.cs
│   │   ├── RevObjectList.cs
│   │   ├── RevSort.cs
│   │   ├── RevTag.cs
│   │   ├── RevTree.cs
│   │   ├── RevWalk.cs
│   │   ├── RewriteGenerator.cs
│   │   ├── RewriteTreeFilter.cs
│   │   ├── StartGenerator.cs
│   │   └── TopoSortGenerator.cs
│   ├── SubmoduleConfig.cs
│   ├── SymbolicRef.cs
│   ├── SymlinkTreeEntry.cs
│   ├── SystemReader.cs
│   ├── Tag.cs
│   ├── TextProgressMonitor.cs
│   ├── TransferConfig.cs
│   ├── Transport/
│   │   ├── BaseConnection.cs
│   │   ├── BaseFetchConnection.cs
│   │   ├── BasePackConnection.cs
│   │   ├── BasePackFetchConnection.cs
│   │   ├── BasePackPushConnection.cs
│   │   ├── BundleFetchConnection.cs
│   │   ├── BundleWriter.cs
│   │   ├── Daemon.cs
│   │   ├── DaemonClient.cs
│   │   ├── DaemonService.cs
│   │   ├── DefaultSshSessionFactory.cs
│   │   ├── FetchHeadRecord.cs
│   │   ├── FetchProcess.cs
│   │   ├── FetchResult.cs
│   │   ├── HttpTransport.cs
│   │   ├── IConnection.cs
│   │   ├── IFetchConnection.cs
│   │   ├── IPackTransport.cs
│   │   ├── IPostReceiveHook.cs
│   │   ├── IPreReceiveHook.cs
│   │   ├── IPushConnection.cs
│   │   ├── ITransportBundle.cs
│   │   ├── IWalkTransport.cs
│   │   ├── IndexPack.cs
│   │   ├── LongMap.cs
│   │   ├── OpenSshConfig.cs
│   │   ├── OperationResult.cs
│   │   ├── PackedObjectInfo.cs
│   │   ├── PacketLineIn.cs
│   │   ├── PacketLineOut.cs
│   │   ├── PushProcess.cs
│   │   ├── PushResult.cs
│   │   ├── ReceiveCommand.cs
│   │   ├── ReceivePack.cs
│   │   ├── RefAdvertiser.cs
│   │   ├── RefFilter.cs
│   │   ├── RefSpec.cs
│   │   ├── RemoteConfig.cs
│   │   ├── RemoteRefUpdate.cs
│   │   ├── SideBandInputStream.cs
│   │   ├── SideBandOutputStream.cs
│   │   ├── SideBandProgressMonitor.cs
│   │   ├── SshConfigSessionFactory.cs
│   │   ├── SshSessionFactory.cs
│   │   ├── SshTransport.cs
│   │   ├── TagOpt.cs
│   │   ├── TcpTransport.cs
│   │   ├── TrackingRefUpdate.cs
│   │   ├── Transport.cs
│   │   ├── TransportAmazonS3.cs
│   │   ├── TransportBundleFile.cs
│   │   ├── TransportBundleStream.cs
│   │   ├── TransportGitAnon.cs
│   │   ├── TransportGitSsh.cs
│   │   ├── TransportHttp.cs
│   │   ├── TransportLocal.cs
│   │   ├── TransportSftp.cs
│   │   ├── URIish.cs
│   │   ├── UploadPack.cs
│   │   ├── WalkEncryption.cs
│   │   ├── WalkFetchConnection.cs
│   │   ├── WalkPushConnection.cs
│   │   └── WalkRemoteObjectDatabase.cs
│   ├── Tree.cs
│   ├── TreeEntry.cs
│   ├── TreeIterator.cs
│   ├── TreeVisitor.cs
│   ├── TreeVisitorWithCurrentDirectory.cs
│   ├── TreeWalk/
│   │   ├── AbstractTreeIterator.cs
│   │   ├── CanonicalTreeParser.cs
│   │   ├── EmptyTreeIterator.cs
│   │   ├── FileTreeIterator.cs
│   │   ├── Filter/
│   │   │   ├── AndTreeFilter.cs
│   │   │   ├── NotTreeFilter.cs
│   │   │   ├── OrTreeFilter.cs
│   │   │   ├── PathFilter.cs
│   │   │   ├── PathFilterGroup.cs
│   │   │   ├── PathSuffixFilter.cs
│   │   │   └── TreeFilter.cs
│   │   ├── NameConflictTreeWalk.cs
│   │   ├── TreeWalk.cs
│   │   └── WorkingTreeIterator.cs
│   ├── Treeish.cs
│   ├── UnpackedObjectCache.cs
│   ├── UnpackedObjectLoader.cs
│   ├── UserConfig.cs
│   ├── UserInfoProvider.cs
│   ├── Util/
│   │   ├── ArrayExtensions.cs
│   │   ├── AtomicReferenceArray.cs
│   │   ├── BigEndianBitConverter.cs
│   │   ├── CRC32.cs
│   │   ├── CheckedOutputStream.cs
│   │   ├── DateTimeExtensions.cs
│   │   ├── DigestOutputStream.cs
│   │   ├── EndianBinaryReader.cs
│   │   ├── EndianBinaryWriter.cs
│   │   ├── EndianBitConverter.cs
│   │   ├── Endianness.cs
│   │   ├── Extensions.cs
│   │   ├── FS.cs
│   │   ├── GenericComparer.cs
│   │   ├── Hex.cs
│   │   ├── ICharSequence.cs
│   │   ├── IListUtil.cs
│   │   ├── IO/
│   │   │   ├── InterruptTimer.cs
│   │   │   ├── TimeoutStream.cs
│   │   │   └── UnionInputStream.cs
│   │   ├── IO.cs
│   │   ├── Inspect.cs
│   │   ├── Int32.cs
│   │   ├── IntList.cs
│   │   ├── JavaHelper/
│   │   │   ├── AtomicInteger.cs
│   │   │   ├── AtomicReference.cs
│   │   │   ├── AtomicValue.cs
│   │   │   ├── Charset.cs
│   │   │   └── Properties.cs
│   │   ├── ListIterator.cs
│   │   ├── LittleEndianBitConverter.cs
│   │   ├── LongList.cs
│   │   ├── MessageDigest.cs
│   │   ├── MutableInteger.cs
│   │   ├── NB.cs
│   │   ├── NestedDictionary.cs
│   │   ├── PathUtil.cs
│   │   ├── PipeStream.cs
│   │   ├── QuotedString.cs
│   │   ├── RawCharSequence.cs
│   │   ├── RawParseUtils.cs
│   │   ├── RawSubstringPattern.cs
│   │   ├── RefList.cs
│   │   ├── RefMap.cs
│   │   ├── Stream.cs
│   │   ├── StringExtension.cs
│   │   ├── StringUtils.cs
│   │   ├── TemporaryBuffer.cs
│   │   └── WeakReference.cs
│   ├── WholePackedObjectLoader.cs
│   ├── WindowCache.cs
│   ├── WindowCacheConfig.cs
│   ├── WindowCursor.cs
│   ├── WorkDirCheckout.cs
│   └── WriteTree.cs
├── GitSharp.Tests/
│   ├── Git/
│   │   └── CLI/
│   │       ├── CustomOptionTests.cs
│   │       ├── OptionContextTest.cs
│   │       ├── OptionSetTest.cs
│   │       ├── OptionTest.cs
│   │       └── Utils.cs
│   ├── GitSharp/
│   │   ├── AbstractTreeNodeTests.cs
│   │   ├── ApiTestCase.cs
│   │   ├── BlobTests.cs
│   │   ├── BranchTest.cs
│   │   ├── CloneTests.cs
│   │   ├── CommitDateTests.cs
│   │   ├── CommitTests.cs
│   │   ├── DiffTests.cs
│   │   ├── EncodingTests.cs
│   │   ├── FindGitDirectoryTests.cs
│   │   ├── IgnoreTests.cs
│   │   ├── IndexTest.cs
│   │   ├── InitTests.cs
│   │   ├── MergeTests.cs
│   │   ├── ObjectEqualityTests.cs
│   │   ├── RefModelTests.cs
│   │   ├── RepositoryConfigTest.cs
│   │   ├── RepositoryStatusTests.cs
│   │   ├── RepositoryTests.cs
│   │   ├── StatusTests.cs
│   │   └── TextTests.cs
│   ├── GitSharp.Core/
│   │   ├── AbbreviatedObjectIdTest.cs
│   │   ├── CanReadMsysgitIndexFixture.cs
│   │   ├── ConcurrentRepackTest.cs
│   │   ├── ConstantsEncodingTest.cs
│   │   ├── Crc32Tests.cs
│   │   ├── Diff/
│   │   │   ├── DiffFormatterReflowTest.cs
│   │   │   ├── DiffTestDataGenerator.cs
│   │   │   ├── EditListTest.cs
│   │   │   ├── EditTest.cs
│   │   │   ├── MyersDiffPerformanceTest.cs
│   │   │   ├── MyersDiffTest.cs
│   │   │   └── RawTextTest.cs
│   │   ├── DirectoryCache/
│   │   │   ├── DirCacheBasicTest.cs
│   │   │   ├── DirCacheBuilderIteratorTest.cs
│   │   │   ├── DirCacheBuilderTest.cs
│   │   │   ├── DirCacheCGitCompatabilityTest.cs
│   │   │   ├── DirCacheEntryTest.cs
│   │   │   ├── DirCacheFindTest.cs
│   │   │   ├── DirCacheIteratorTest.cs
│   │   │   ├── DirCacheLargePathTest.cs
│   │   │   └── DirCacheTreeTest.cs
│   │   ├── FnMatch/
│   │   │   └── FileNameMatcherTest.cs
│   │   ├── IgnoreHandlerTest.cs
│   │   ├── IndexDiffTest.cs
│   │   ├── IndexModifiedTests.cs
│   │   ├── IndexTreeWalkerTest.cs
│   │   ├── Merge/
│   │   │   ├── CherryPickTest.cs
│   │   │   ├── MergeAlgorithmTest.cs
│   │   │   └── SimpleMergeTest.cs
│   │   ├── ObjectCheckerTests.cs
│   │   ├── ObjectIdRefTest.cs
│   │   ├── PackIndexTestCase.cs
│   │   ├── PackIndexTests.cs
│   │   ├── PackIndexV1Tests.cs
│   │   ├── PackIndexV2Tests.cs
│   │   ├── PackReverseIndexTest.cs
│   │   ├── PackWriterTest.cs
│   │   ├── Patch/
│   │   │   ├── BasePatchTest.cs
│   │   │   ├── EditListTest.cs
│   │   │   ├── FileHeaderTest.cs
│   │   │   ├── GetTextTest.cs
│   │   │   ├── PatchCcErrorTest.cs
│   │   │   ├── PatchCcTest.cs
│   │   │   ├── PatchErrorTest.cs
│   │   │   └── PatchTest.cs
│   │   ├── ReadTreeTest.cs
│   │   ├── RefDirectoryTest.cs
│   │   ├── RefTest.cs
│   │   ├── RefUpdateTest.cs
│   │   ├── ReflogConfigTest.cs
│   │   ├── ReflogReaderTest.cs
│   │   ├── RepositoryCacheTest.cs
│   │   ├── RepositoryConfigTest.cs
│   │   ├── RepositoryTestCase.cs
│   │   ├── RevWalk/
│   │   │   ├── AlwaysEmptyRevQueueTest.cs
│   │   │   ├── DateRevQueueTest.cs
│   │   │   ├── FIFORevQueueTest.cs
│   │   │   ├── FooterLineTest.cs
│   │   │   ├── LIFORevQueueTest.cs
│   │   │   ├── ObjectWalkTest.cs
│   │   │   ├── RevCommitParseTest.cs
│   │   │   ├── RevFlagSetTest.cs
│   │   │   ├── RevObjectTest.cs
│   │   │   ├── RevQueueTestCase.cs
│   │   │   ├── RevTagParseTest.cs
│   │   │   ├── RevWalkCullTest.cs
│   │   │   ├── RevWalkFilterTest.cs
│   │   │   ├── RevWalkMergeBaseTest.cs
│   │   │   ├── RevWalkPathFilter1Test.cs
│   │   │   ├── RevWalkPathFilter6012Test.cs
│   │   │   ├── RevWalkSortTest.cs
│   │   │   └── RevWalkTestCase.cs
│   │   ├── SampleDataRepositoryTestCase.cs
│   │   ├── SubmoduleTest.cs
│   │   ├── SymbolicRefTest.cs
│   │   ├── T0001_ObjectId.cs
│   │   ├── T0001_PersonIdent.cs
│   │   ├── T0002_Tree.cs
│   │   ├── T0003_Basic_Config.cs
│   │   ├── T0003_Basic_Write.cs
│   │   ├── T0004_PackReader.cs
│   │   ├── T0007_Index.cs
│   │   ├── T0008_testparserev.cs
│   │   ├── Transport/
│   │   │   ├── BaseConnectionTests.cs
│   │   │   ├── BundleWriterTest.cs
│   │   │   ├── IndexPackTests.cs
│   │   │   ├── LongMapTest.cs
│   │   │   ├── OpenSshConfigTest.cs
│   │   │   ├── OperationResultTests.cs
│   │   │   ├── PacketLineInTest.cs
│   │   │   ├── PacketLineOutTest.cs
│   │   │   ├── PushProcessTest.cs
│   │   │   ├── RefSpecTests.cs
│   │   │   ├── RemoteConfigTests.cs
│   │   │   ├── SideBandOutputStreamTest.cs
│   │   │   ├── TransportTest.cs
│   │   │   └── URIishTests.cs
│   │   ├── TreeIteratorLeafOnlyTest.cs
│   │   ├── TreeIteratorPostOrderTest.cs
│   │   ├── TreeIteratorPreOrderTest.cs
│   │   ├── TreeWalk/
│   │   │   ├── AbstractTreeIteratorTest.cs
│   │   │   ├── CanonicalTreeParserTest.cs
│   │   │   ├── EmptyTreeIteratorTest.cs
│   │   │   ├── FileTreeIteratorTest.cs
│   │   │   ├── Filter/
│   │   │   │   ├── AlwaysCloneTreeFilter.cs
│   │   │   │   ├── NotTreeFilterTest.cs
│   │   │   │   ├── PathSuffixFilterTestCase.cs
│   │   │   │   └── TreeFilterTest.cs
│   │   │   ├── NameConflictTreeWalkTest.cs
│   │   │   ├── PostOrderTreeWalkTest.cs
│   │   │   └── TreeWalkBasicDiffTest.cs
│   │   ├── Util/
│   │   │   ├── AssertHelper.cs
│   │   │   ├── AssertHelperFixture.cs
│   │   │   ├── ByteArrayExtensionsFixture.cs
│   │   │   ├── CPUTimeStopWatch.cs
│   │   │   ├── ExtensionsFixture.cs
│   │   │   ├── IO/
│   │   │   │   └── TimeoutStreamTest.cs
│   │   │   ├── IntListTest.cs
│   │   │   ├── LinkedListFixture.cs
│   │   │   ├── LocalDiskRepositoryTestCase.cs
│   │   │   ├── Md5MessageDigestTest.cs
│   │   │   ├── MockFileBasedConfig.cs
│   │   │   ├── MockSystemReader.cs
│   │   │   ├── NBTests.cs
│   │   │   ├── PathUtils.cs
│   │   │   ├── QuotedStringBourneStyleTest.cs
│   │   │   ├── QuotedStringBourneUserPathStyleTest.cs
│   │   │   ├── QuotedStringGitPathStyleTest.cs
│   │   │   ├── RawParseUtils_HexParseTest.cs
│   │   │   ├── RawParseUtils_LineMapTest.cs
│   │   │   ├── RawParseUtils_MatchTest.cs
│   │   │   ├── RefListTest.cs
│   │   │   ├── RefMapTest.cs
│   │   │   ├── Sha1MessageDigestTest.cs
│   │   │   ├── StringExtensionsFixture.cs
│   │   │   ├── StringUtilsTest.cs
│   │   │   ├── TemporaryBufferTest.cs
│   │   │   ├── TestRepository.cs
│   │   │   ├── TestRng.cs
│   │   │   ├── UnionInputStreamTest.cs
│   │   │   └── VariousUtilityTests.cs
│   │   ├── ValidRefNameTest.cs
│   │   ├── WindowCacheGetTest.cs
│   │   ├── WindowCacheReconfigureTest.cs
│   │   ├── WorkDirCheckoutTest.cs
│   │   ├── XInputStream.cs
│   │   └── sample/
│   │       ├── README
│   │       └── unpacked
│   ├── GitSharp.Tests.csproj
│   ├── Properties/
│   │   └── AssemblyInfo.cs
│   ├── README.txt
│   └── Resources/
│       ├── CorruptIndex/
│       │   ├── .gitted/
│       │   │   ├── COMMIT_EDITMSG
│       │   │   ├── HEAD
│       │   │   ├── config
│       │   │   ├── description
│       │   │   ├── hooks/
│       │   │   │   ├── applypatch-msg.sample
│       │   │   │   ├── commit-msg.sample
│       │   │   │   ├── post-commit.sample
│       │   │   │   ├── post-receive.sample
│       │   │   │   ├── post-update.sample
│       │   │   │   ├── pre-applypatch.sample
│       │   │   │   ├── pre-commit.sample
│       │   │   │   ├── pre-rebase.sample
│       │   │   │   ├── prepare-commit-msg.sample
│       │   │   │   └── update.sample
│       │   │   ├── index
│       │   │   ├── info/
│       │   │   │   └── exclude
│       │   │   ├── logs/
│       │   │   │   ├── HEAD
│       │   │   │   └── refs/
│       │   │   │       └── heads/
│       │   │   │           └── master
│       │   │   ├── objects/
│       │   │   │   ├── 1a/
│       │   │   │   │   └── 602d9bd07ce5272ddaa64e21da12dbca2b8c9f
│       │   │   │   ├── 2e/
│       │   │   │   │   └── 65efe2a145dda7ee51d1741299f848e5bf752e
│       │   │   │   ├── 63/
│       │   │   │   │   └── d8dbd40c23542e740659a7168a0ce3138ea748
│       │   │   │   ├── dc/
│       │   │   │   │   └── 8d7f3d2d19bdf3a6daa007102bc7bef76aa8ac
│       │   │   │   ├── info/
│       │   │   │   │   └── marker.txt
│       │   │   │   └── pack/
│       │   │   │       └── marker.txt
│       │   │   └── refs/
│       │   │       └── heads/
│       │   │           └── master
│       │   ├── a.txt
│       │   └── b.txt
│       ├── Diff/
│       │   ├── .gitattributes
│       │   ├── E.patch
│       │   ├── E_PostImage
│       │   ├── E_PreImage
│       │   ├── X.patch
│       │   ├── X_PostImage
│       │   ├── X_PreImage
│       │   ├── Y.patch
│       │   ├── Y_PostImage
│       │   ├── Y_PreImage
│       │   ├── Z.patch
│       │   ├── Z_PostImage
│       │   ├── Z_PreImage
│       │   ├── testContext0.out
│       │   ├── testContext1.out
│       │   ├── testContext10.out
│       │   ├── testContext100.out
│       │   ├── testContext3.out
│       │   └── testContext5.out
│       ├── JapaneseRepo/
│       │   └── .gitted/
│       │       ├── HEAD
│       │       ├── config
│       │       ├── description
│       │       ├── hooks/
│       │       │   ├── applypatch-msg.sample
│       │       │   ├── commit-msg.sample
│       │       │   ├── post-commit.sample
│       │       │   ├── post-receive.sample
│       │       │   ├── post-update.sample
│       │       │   ├── pre-applypatch.sample
│       │       │   ├── pre-commit.sample
│       │       │   ├── pre-rebase.sample
│       │       │   ├── prepare-commit-msg.sample
│       │       │   └── update.sample
│       │       ├── index
│       │       ├── info/
│       │       │   └── exclude
│       │       ├── logs/
│       │       │   ├── HEAD
│       │       │   └── refs/
│       │       │       └── heads/
│       │       │           └── master
│       │       ├── objects/
│       │       │   ├── 24/
│       │       │   │   └── ed0e20ceff5e2cdf768345b6853213f840ff8f
│       │       │   ├── 2f/
│       │       │   │   └── 3c75408acf76bb7122b91c418d015252708552
│       │       │   ├── 4b/
│       │       │   │   └── 825dc642cb6eb9a060e54bf8d69288fbee4904
│       │       │   ├── 54/
│       │       │   │   └── 75030f2b57d9956d23ef4ead6f9a4983c234b5
│       │       │   ├── 6d/
│       │       │   │   └── c9b6c490154e9627a8aed8ca74039a34084677
│       │       │   ├── 9b/
│       │       │   │   └── c63090dd221bace8b2e5f278580946be26efdd
│       │       │   ├── a8/
│       │       │   │   └── a51035f70bec2d3e00c0a11a33ff709a6ab40e
│       │       │   ├── fe/
│       │       │   │   └── 0856a5873decc1a8e47f63c5707520121b2e9e
│       │       │   ├── info/
│       │       │   │   └── marker.txt
│       │       │   └── pack/
│       │       │       └── marker.txt
│       │       └── refs/
│       │           └── heads/
│       │               └── master
│       ├── OneFileRepository/
│       │   ├── .gitted/
│       │   │   ├── COMMIT_EDITMSG
│       │   │   ├── HEAD
│       │   │   ├── config
│       │   │   ├── description
│       │   │   ├── hooks/
│       │   │   │   ├── applypatch-msg.sample
│       │   │   │   ├── commit-msg.sample
│       │   │   │   ├── post-commit.sample
│       │   │   │   ├── post-receive.sample
│       │   │   │   ├── post-update.sample
│       │   │   │   ├── pre-applypatch.sample
│       │   │   │   ├── pre-commit.sample
│       │   │   │   ├── pre-rebase.sample
│       │   │   │   ├── prepare-commit-msg.sample
│       │   │   │   └── update.sample
│       │   │   ├── index
│       │   │   ├── info/
│       │   │   │   └── exclude
│       │   │   ├── logs/
│       │   │   │   ├── HEAD
│       │   │   │   └── refs/
│       │   │   │       └── heads/
│       │   │   │           └── master
│       │   │   ├── objects/
│       │   │   │   ├── 5a/
│       │   │   │   │   └── 44c05f31a48e1492e7b375e502d97c3e72a1bc
│       │   │   │   ├── be/
│       │   │   │   │   └── cce7158b7ef8a86c4ddf2fe235df6923f94ec8
│       │   │   │   ├── f3/
│       │   │   │   │   └── ca78a01f1baa4eaddcc349c97dcab95a379981
│       │   │   │   ├── info/
│       │   │   │   │   └── marker.txt
│       │   │   │   └── pack/
│       │   │   │       └── marker.txt
│       │   │   └── refs/
│       │   │       └── heads/
│       │   │           └── master
│       │   └── dummy.txt
│       ├── Patch/
│       │   ├── .gitattributes
│       │   ├── testEditList_Types.patch
│       │   ├── testError_BodyTooLong.patch
│       │   ├── testError_CcTruncatedOld.patch
│       │   ├── testError_DisconnectedHunk.patch
│       │   ├── testError_GarbageBetweenFiles.patch
│       │   ├── testError_GitBinaryNoForwardHunk.patch
│       │   ├── testError_TruncatedNew.patch
│       │   ├── testError_TruncatedOld.patch
│       │   ├── testGetText_BothISO88591.patch
│       │   ├── testGetText_Convert.patch
│       │   ├── testGetText_DiffCc.patch
│       │   ├── testGetText_NoBinary.patch
│       │   ├── testParse_AddNoNewline.patch
│       │   ├── testParse_CcDeleteFile.patch
│       │   ├── testParse_CcNewFile.patch
│       │   ├── testParse_ConfigCaseInsensitive.patch
│       │   ├── testParse_FixNoNewline.patch
│       │   ├── testParse_GitBinaryDelta.patch
│       │   ├── testParse_GitBinaryLiteral.patch
│       │   ├── testParse_NoBinary.patch
│       │   └── testParse_OneFileCc.patch
│       ├── SubmoduleRepository.git/
│       │   ├── COMMIT_EDITMSG
│       │   ├── HEAD
│       │   ├── config
│       │   ├── description
│       │   ├── hooks/
│       │   │   ├── applypatch-msg.sample
│       │   │   ├── commit-msg.sample
│       │   │   ├── post-commit.sample
│       │   │   ├── post-receive.sample
│       │   │   ├── post-update.sample
│       │   │   ├── pre-applypatch.sample
│       │   │   ├── pre-commit.sample
│       │   │   ├── pre-rebase.sample
│       │   │   ├── prepare-commit-msg.sample
│       │   │   └── update.sample
│       │   ├── index
│       │   ├── info/
│       │   │   └── exclude
│       │   ├── logs/
│       │   │   ├── HEAD
│       │   │   └── refs/
│       │   │       └── heads/
│       │   │           └── master
│       │   ├── objects/
│       │   │   ├── 16/
│       │   │   │   └── 3678aef05371dc8636cbae9486233fddbede36
│       │   │   ├── 7c/
│       │   │   │   └── 0646bfd53c1f0ed45ffd81563f30017717ca58
│       │   │   ├── 83/
│       │   │   │   └── 36793a1b803478c1c654847373f0f106c467ce
│       │   │   ├── 92/
│       │   │   │   └── 2522d0a1c9a031f5c6e11d3e20423e44806a3b
│       │   │   ├── b8/
│       │   │   │   └── 1197d9c02c98247424be82a7dd55dc419f39e5
│       │   │   ├── c3/
│       │   │   │   └── 88fdefe1f4aa420eef11abd4e88fd38236dfb5
│       │   │   ├── info/
│       │   │   │   └── dummy
│       │   │   └── pack/
│       │   │       └── dummy
│       │   └── refs/
│       │       └── heads/
│       │           └── master
│       ├── all_packed_objects.txt
│       ├── create-second-pack
│       ├── gitgit.index
│       ├── gitgit.index.ZZZZ
│       ├── gitgit.index.aaaa
│       ├── gitgit.index.badchecksum
│       ├── gitgit.lsfiles
│       ├── gitgit.lstree
│       ├── index_originating_from_msysgit
│       ├── pack-3280af9c07ee18a87705ef50b0cc4cd20266cf12.idx
│       ├── pack-3280af9c07ee18a87705ef50b0cc4cd20266cf12.pack
│       ├── pack-34be9032ac282b11fa9babdc2b2a93ca996c9c2f.idx
│       ├── pack-34be9032ac282b11fa9babdc2b2a93ca996c9c2f.idxV2
│       ├── pack-34be9032ac282b11fa9babdc2b2a93ca996c9c2f.pack
│       ├── pack-546ff360fe3488adb20860ce3436a2d6373d2796.idx
│       ├── pack-546ff360fe3488adb20860ce3436a2d6373d2796.pack
│       ├── pack-9fb5b411fe6dfa89cc2e6b89d2bd8e5de02b5745.idx
│       ├── pack-9fb5b411fe6dfa89cc2e6b89d2bd8e5de02b5745.pack
│       ├── pack-cbdeda40019ae0e6e789088ea0f51f164f489d14.idx
│       ├── pack-cbdeda40019ae0e6e789088ea0f51f164f489d14.pack
│       ├── pack-df2982f284bbabb6bdb59ee3fcc6eb0983e20371.idx
│       ├── pack-df2982f284bbabb6bdb59ee3fcc6eb0983e20371.idxV2
│       ├── pack-df2982f284bbabb6bdb59ee3fcc6eb0983e20371.pack
│       ├── pack-e6d07037cbcf13376308a0a995d1fa48f8f76aaa.idx
│       ├── pack-e6d07037cbcf13376308a0a995d1fa48f8f76aaa.pack
│       ├── pack-huge.idx
│       ├── packed-refs
│       ├── sample.git/
│       │   ├── COMMIT_EDITMSG
│       │   ├── HEAD
│       │   ├── ORIG_HEAD
│       │   ├── config
│       │   ├── description
│       │   ├── gitk.cache
│       │   ├── hooks/
│       │   │   ├── applypatch-msg.sample
│       │   │   ├── commit-msg.sample
│       │   │   ├── post-commit.sample
│       │   │   ├── post-receive.sample
│       │   │   ├── post-update.sample
│       │   │   ├── pre-applypatch.sample
│       │   │   ├── pre-commit.sample
│       │   │   ├── pre-rebase.sample
│       │   │   ├── prepare-commit-msg.sample
│       │   │   └── update.sample
│       │   ├── index
│       │   ├── info/
│       │   │   ├── exclude
│       │   │   └── refs
│       │   ├── logs/
│       │   │   ├── HEAD
│       │   │   └── refs/
│       │   │       └── heads/
│       │   │           ├── first
│       │   │           └── master
│       │   ├── objects/
│       │   │   ├── 3f/
│       │   │   │   └── a4c1907a23c8c345ba65bd9bc17336b012259b
│       │   │   ├── 66/
│       │   │   │   └── d7e337f35ff98d6bddd7e730655080454c3fdd
│       │   │   ├── 76/
│       │   │   │   └── e984096c69db581a6d48eb444e5490d727ebac
│       │   │   ├── a1/
│       │   │   │   └── 3973bc29346193c4a023fc83cc5b0645784262
│       │   │   ├── info/
│       │   │   │   └── packs
│       │   │   └── pack/
│       │   │       ├── pack-845b2ba3349cc201321e752b01c5ada8102a9a08.idx
│       │   │       └── pack-845b2ba3349cc201321e752b01c5ada8102a9a08.pack
│       │   ├── packed-refs
│       │   └── refs/
│       │       ├── heads/
│       │       │   ├── first
│       │       │   └── master
│       │       └── tags/
│       │           └── my_tag
│       └── single_file_commit/
│           ├── .gitattributes
│           ├── 16c0beaf7523eb3ef5df45bd42dd4fc6343de864
│           ├── 917c130bd4fa5bf2df0c399dc1b03401860aa448
│           ├── 95ea6a6859af6791464bd8b6de76ad5a6f9fad81
│           └── i-am-a-file
├── GitSharp.build
├── GitSharp.sln
├── Indentation.txt
├── Indentation.vssettings
├── JGit licence.txt
├── MiscUtil licence.txt
├── README.txt
├── Winterdom.IO.FileMap License.txt
├── generate-Docs.bat
├── lib/
│   ├── ICSharpCode.SharpZipLib.xml
│   └── Winterdom.IO.FileMap.pdb
├── package-GitSharp.cmd
├── runtests-GitSharp.cmd
├── tools/
│   ├── docu/
│   │   ├── .gitignore
│   │   ├── docu.XML
│   │   ├── docu.pdb
│   │   ├── generate_documentation.bat
│   │   └── templates/
│   │       ├── !namespace/
│   │       │   ├── !type.htm.spark
│   │       │   ├── _comment.spark
│   │       │   ├── _events.spark
│   │       │   ├── _fields.spark
│   │       │   ├── _methods.spark
│   │       │   ├── _namespaces.spark
│   │       │   ├── _properties.spark
│   │       │   ├── _remarks.spark
│   │       │   ├── _types.spark
│   │       │   ├── _value.spark
│   │       │   └── index.html.spark
│   │       ├── _footer.spark
│   │       ├── _namespaces.spark
│   │       ├── _types.spark
│   │       ├── index.html.spark
│   │       ├── js/
│   │       │   ├── jquery.scrollTo-min.js
│   │       │   └── navigation.js
│   │       └── main.css
│   ├── nant/
│   │   ├── NAnt.CompressionTasks.pdb
│   │   ├── NAnt.CompressionTasks.xml
│   │   ├── NAnt.Core.pdb
│   │   ├── NAnt.Core.xml
│   │   ├── NAnt.DotNetTasks.pdb
│   │   ├── NAnt.DotNetTasks.xml
│   │   ├── NAnt.MSNetTasks.pdb
│   │   ├── NAnt.MSNetTasks.xml
│   │   ├── NAnt.NUnit.pdb
│   │   ├── NAnt.NUnit.xml
│   │   ├── NAnt.NUnit1Tasks.pdb
│   │   ├── NAnt.NUnit1Tasks.xml
│   │   ├── NAnt.NUnit2Tasks.pdb
│   │   ├── NAnt.NUnit2Tasks.xml
│   │   ├── NAnt.SourceControlTasks.pdb
│   │   ├── NAnt.SourceControlTasks.xml
│   │   ├── NAnt.VSNetTasks.pdb
│   │   ├── NAnt.VSNetTasks.xml
│   │   ├── NAnt.VisualCppTasks.pdb
│   │   ├── NAnt.VisualCppTasks.xml
│   │   ├── NAnt.Win32Tasks.pdb
│   │   ├── NAnt.Win32Tasks.xml
│   │   ├── NAnt.exe.config
│   │   ├── NAnt.pdb
│   │   ├── NAnt.xml
│   │   ├── NDoc.Documenter.NAnt.pdb
│   │   └── extensions/
│   │       └── common/
│   │           └── 2.0/
│   │               ├── NAnt.MSBuild.pdb
│   │               └── NAnt.MSBuild.xml
│   └── nunit/
│       └── nunit-console.exe.config
└── version.txt
Download .txt
Showing preview only (557K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (7129 symbols across 751 files)

FILE: Git/CmdParserOptionSet.cs
  class CmdParserOptionSet (line 45) | public class CmdParserOptionSet : OptionSet
    method InsertItem (line 47) | protected override void InsertItem(int index, Option item)
    method CreateOptionContext (line 52) | protected override OptionContext CreateOptionContext()
    method Parse (line 57) | protected override bool Parse(string option, OptionContext c)
    method AppendValue (line 110) | private bool AppendValue(string value, OptionContext c)

FILE: Git/Command.cs
  class Command (line 47) | [AttributeUsage(AttributeTargets.All, AllowMultiple = false)]
    method Command (line 56) | public Command()

FILE: Git/CommandCatalog.cs
  class CommandCatalog (line 63) | public class CommandCatalog
    method CommandCatalog (line 73) | public CommandCatalog()
    method StartsWith (line 93) | public List<CommandRef> StartsWith(String s)
    method Load (line 110) | public void Load(String commandName, String commandHelp)
    method Get (line 137) | public CommandRef Get(String name)
    method All (line 147) | public IList<CommandRef> All()
    method Common (line 155) | public List<CommandRef> Common()
    method Incomplete (line 170) | public List<CommandRef> Incomplete()
    method Complete (line 185) | public List<CommandRef> Complete()
    method toSortedArray (line 202) | private List<CommandRef> toSortedArray(List<CommandRef> c)

FILE: Git/CommandRef.cs
  class CommandRef (line 53) | public class CommandRef
    method CommandRef (line 63) | public CommandRef(TextBuiltin clazz)
    method CommandRef (line 69) | public CommandRef(TextBuiltin clazz, String cn)
    method getName (line 87) | public String getName()
    method getUsage (line 95) | public String getUsage()
    method isCommon (line 104) | public bool isCommon()
    method isComplete (line 113) | public bool isComplete()
    method RequiresRepository (line 122) | public bool RequiresRepository()
    method getImplementationClassName (line 131) | public String getImplementationClassName()
    method Create (line 140) | public TextBuiltin Create()

FILE: Git/Commands/Add.cs
  class Add (line 46) | [Command(complete = false, common = true, requiresRepository = true, usa...
    method Run (line 65) | override public void Run(String[] args)
    method OfflineHelp (line 120) | private void OfflineHelp()
    method DoAdd (line 131) | private void DoAdd(List<String> filesAdded)
    method DoEdit (line 136) | private void DoEdit()
    method DoPatch (line 141) | private void DoPatch()

FILE: Git/Commands/Checkout.cs
  class Checkout (line 46) | [Command(complete = false, common = true, requiresRepository = true, usa...
    method Run (line 65) | override public void Run(string[] args)
    method OfflineHelp (line 123) | private void OfflineHelp()
    method RefLog (line 140) | private void RefLog()
    method Patch (line 144) | private void Patch(String treeish)

FILE: Git/Commands/Clone.cs
  class Clone (line 49) | [Command(common=true, requiresRepository=false, usage = "Clone a reposit...
    method Run (line 71) | public override void Run(string[] args)
    method OfflineHelp (line 118) | private void OfflineHelp()

FILE: Git/Commands/Commit.cs
  class Commit (line 45) | [Command(complete = false, common = true, usage = "Record changes to the...
    method Run (line 73) | override public void Run(String[] args)
    method OfflineHelp (line 146) | private void OfflineHelp()
    method DoCommit (line 157) | public void DoCommit(String filepattern)

FILE: Git/Commands/Config.cs
  class Config (line 48) | [Command(complete=false, common=true, requiresRepository=true, usage = "...
    method Run (line 55) | public override void Run(string[] args)
    method OfflineHelp (line 117) | private void OfflineHelp()

FILE: Git/Commands/Fetch.cs
  class Fetch (line 45) | [Command(complete = false, common = true, usage = "Download objects and ...
    method Run (line 63) | override public void Run(String[] args)
    method OfflineHelp (line 107) | private void OfflineHelp()
    method DoFetch (line 118) | private void DoFetch(List<String> args)

FILE: Git/Commands/Help.cs
  class Help (line 44) | [Command(complete = false, common = true, usage = "Displays the online h...
    method Run (line 48) | override public void Run(String[] args)
    method OfflineHelp (line 70) | private static void OfflineHelp()

FILE: Git/Commands/Init.cs
  class Init (line 47) | [Command(common = true, complete = false, usage = "Create an empty git r...
    method Run (line 54) | public override void Run(string[] args)
    method OfflineHelp (line 79) | private void OfflineHelp()

FILE: Git/Commands/Log.cs
  class Log (line 48) | [Command(common=true, requiresRepository=true, usage = "")]
    method Run (line 54) | public override void Run(string[] args)
    method OfflineHelp (line 143) | private void OfflineHelp()

FILE: Git/Commands/Merge.cs
  class Merge (line 45) | [Command(complete = false, common = true, usage = "Join two or more deve...
    method Run (line 68) | override public void Run(String[] args)
    method OfflineHelp (line 118) | private void OfflineHelp()
    method DoMerge (line 130) | private void DoMerge(List<String> args)

FILE: Git/Commands/Pull.cs
  class Pull (line 45) | [Command(complete = false, common = true, usage = "Fetch from and merge ...
    method Run (line 77) | override public void Run(String[] args)
    method OfflineHelp (line 135) | private void OfflineHelp()
    method DoPull (line 146) | private void DoPull(List<String> args)

FILE: Git/Commands/Push.cs
  class Push (line 45) | [Command(complete = false, common = true, usage = "Update remote refs al...
    method Run (line 62) | override public void Run(String[] args)
    method OfflineHelp (line 121) | private void OfflineHelp()
    method DoPush (line 132) | private void DoPush(List<String> filesAdded)

FILE: Git/Commands/Rm.cs
  class Rm (line 45) | [Command(complete = false, common = true, usage = "Remove files from the...
    method Run (line 60) | override public void Run(String[] args)
    method OfflineHelp (line 92) | private void OfflineHelp()
    method DoRm (line 104) | private void DoRm(List<String> args)

FILE: Git/Commands/Status.cs
  class Status (line 46) | [Command(complete = false, common = true, requiresRepository=true, usage...
    method Run (line 76) | override public void Run(String[] args)
    method OfflineHelp (line 138) | private void OfflineHelp()
    method Display (line 149) | public void Display()
    method displayStatusList (line 184) | private void displayStatusList(Dictionary<string, int> statusList)
    method doDisplayUnstaged (line 210) | private void doDisplayUnstaged()
    method doDisplayStaged (line 223) | private void doDisplayStaged()
    method doDisplayUntracked (line 235) | private void doDisplayUntracked()
    method doDisplayMergeConflict (line 248) | private void doDisplayMergeConflict()

FILE: Git/Commands/Version.cs
  class Version (line 45) | [Command(complete = true, common = true, usage = "Display the version of...
    method Run (line 49) | override public void Run(String[] args)
    method OfflineHelp (line 64) | private static void OfflineHelp()

FILE: Git/Die.cs
  class Die (line 51) | public class Die : Exception
    method Die (line 57) | public Die(string why)

FILE: Git/Options.cs
  class OptionValueCollection (line 145) | public class OptionValueCollection : IList, IList<string>
    method OptionValueCollection (line 151) | internal OptionValueCollection(OptionContext c)
    method CopyTo (line 157) | void ICollection.CopyTo(Array array, int index) { (values as ICollecti...
    method Add (line 163) | public void Add(string item) { values.Add(item); }
    method Clear (line 164) | public void Clear() { values.Clear(); }
    method Contains (line 165) | public bool Contains(string item) { return values.Contains(item); }
    method CopyTo (line 166) | public void CopyTo(string[] array, int arrayIndex) { values.CopyTo(arr...
    method Remove (line 167) | public bool Remove(string item) { return values.Remove(item); }
    method GetEnumerator (line 173) | IEnumerator IEnumerable.GetEnumerator() { return values.GetEnumerator(...
    method GetEnumerator (line 177) | public IEnumerator<string> GetEnumerator() { return values.GetEnumerat...
    method Add (line 181) | int IList.Add(object value) { return (values as IList).Add(value); }
    method Contains (line 182) | bool IList.Contains(object value) { return (values as IList).Contains(...
    method IndexOf (line 183) | int IList.IndexOf(object value) { return (values as IList).IndexOf(val...
    method Insert (line 184) | void IList.Insert(int index, object value) { (values as IList).Insert(...
    method Remove (line 185) | void IList.Remove(object value) { (values as IList).Remove(value); }
    method RemoveAt (line 186) | void IList.RemoveAt(int index) { (values as IList).RemoveAt(index); }
    method IndexOf (line 192) | public int IndexOf(string item) { return values.IndexOf(item); }
    method Insert (line 193) | public void Insert(int index, string item) { values.Insert(index, item...
    method RemoveAt (line 194) | public void RemoveAt(int index) { values.RemoveAt(index); }
    method AssertValid (line 196) | private void AssertValid(int index)
    method ToList (line 223) | public List<string> ToList()
    method ToArray (line 228) | public string[] ToArray()
    method ToString (line 233) | public override string ToString()
  class OptionContext (line 239) | public class OptionContext
    method OptionContext (line 247) | public OptionContext(OptionSet set)
  type OptionValueType (line 282) | public enum OptionValueType
  class Option (line 289) | public abstract class Option
    method Option (line 297) | protected Option(string prototype, string description)
    method Option (line 302) | protected Option(string prototype, string description, int maxValueCount)
    method GetNames (line 339) | public string[] GetNames()
    method GetValueSeparators (line 344) | public string[] GetValueSeparators()
    method Parse (line 351) | protected static T Parse<T>(string value, OptionContext c)
    method ParsePrototype (line 381) | private OptionValueType ParsePrototype()
    method AddSeparators (line 424) | private static void AddSeparators(string name, int end, ICollection<st...
    method Invoke (line 458) | public void Invoke(OptionContext c)
    method OnParseComplete (line 466) | protected abstract void OnParseComplete(OptionContext c);
    method ToString (line 468) | public override string ToString()
  class OptionException (line 474) | [Serializable]
    method OptionException (line 479) | public OptionException()
    method OptionException (line 483) | public OptionException(string message, string optionName)
    method OptionException (line 489) | public OptionException(string message, string optionName, Exception in...
    method OptionException (line 495) | protected OptionException(SerializationInfo info, StreamingContext con...
    method GetObjectData (line 506) | [SecurityPermission(SecurityAction.LinkDemand, SerializationFormatter ...
  class OptionSet (line 516) | public class OptionSet : KeyedCollection<string, Option>
    method OptionSet (line 518) | public OptionSet()
    method OptionSet (line 523) | public OptionSet(Converter<string, string> localizer)
    method GetKeyForItem (line 535) | protected override string GetKeyForItem(Option item)
    method GetOptionForName (line 546) | [Obsolete("Use KeyedCollection.this[string]")]
    method InsertItem (line 561) | protected override void InsertItem(int index, Option item)
    method RemoveItem (line 567) | protected override void RemoveItem(int index)
    method SetItem (line 578) | protected override void SetItem(int index, Option item)
    method AddImpl (line 585) | private void AddImpl(Option option)
    method Add (line 607) | public new OptionSet Add(Option option)
    class ActionOption (line 613) | sealed class ActionOption : Option
      method ActionOption (line 617) | public ActionOption(string prototype, string description, int count,...
      method OnParseComplete (line 625) | protected override void OnParseComplete(OptionContext c)
      method ActionOption (line 665) | public ActionOption(string prototype, string description, Action<T> ...
      method OnParseComplete (line 673) | protected override void OnParseComplete(OptionContext c)
      method ActionOption (line 683) | public ActionOption(string prototype, string description, OptionActi...
      method OnParseComplete (line 691) | protected override void OnParseComplete(OptionContext c)
    method Add (line 631) | public OptionSet Add(string prototype, Action<string> action)
    method Add (line 636) | public OptionSet Add(string prototype, string description, Action<stri...
    method Add (line 646) | public OptionSet Add(string prototype, OptionAction<string, string> ac...
    method Add (line 651) | public OptionSet Add(string prototype, string description, OptionActio...
    class ActionOption (line 661) | sealed class ActionOption<T> : Option
      method ActionOption (line 617) | public ActionOption(string prototype, string description, int count,...
      method OnParseComplete (line 625) | protected override void OnParseComplete(OptionContext c)
      method ActionOption (line 665) | public ActionOption(string prototype, string description, Action<T> ...
      method OnParseComplete (line 673) | protected override void OnParseComplete(OptionContext c)
      method ActionOption (line 683) | public ActionOption(string prototype, string description, OptionActi...
      method OnParseComplete (line 691) | protected override void OnParseComplete(OptionContext c)
    class ActionOption (line 679) | sealed class ActionOption<TKey, TValue> : Option
      method ActionOption (line 617) | public ActionOption(string prototype, string description, int count,...
      method OnParseComplete (line 625) | protected override void OnParseComplete(OptionContext c)
      method ActionOption (line 665) | public ActionOption(string prototype, string description, Action<T> ...
      method OnParseComplete (line 673) | protected override void OnParseComplete(OptionContext c)
      method ActionOption (line 683) | public ActionOption(string prototype, string description, OptionActi...
      method OnParseComplete (line 691) | protected override void OnParseComplete(OptionContext c)
    method Add (line 699) | public OptionSet Add<T>(string prototype, Action<T> action)
    method Add (line 704) | public OptionSet Add<T>(string prototype, string description, Action<T...
    method Add (line 709) | public OptionSet Add<TKey, TValue>(string prototype, OptionAction<TKey...
    method Add (line 714) | public OptionSet Add<TKey, TValue>(string prototype, string descriptio...
    method CreateOptionContext (line 719) | protected virtual OptionContext CreateOptionContext()
    method Parse (line 727) | public List<string> Parse(IEnumerable<string> arguments)
    method Parse (line 741) | public void Parse(string[] arguments, out List<string> remainingArgume...
    method Parse (line 754) | public void Parse(string[] arguments, out List<string> filePaths, out ...
    method Unprocessed (line 801) | private static bool Unprocessed(ICollection<string> extra, Option def,...
    method GetOptionParts (line 817) | protected bool GetOptionParts(string argument, out string flag, out st...
    method Parse (line 838) | protected virtual bool Parse(string argument, OptionContext c)
    method ParseValue (line 879) | private void ParseValue(string option, OptionContext c)
    method ParseBool (line 900) | private bool ParseBool(string option, string n, OptionContext c)
    method ParseBundledValue (line 918) | private bool ParseBundledValue(string f, string n, OptionContext c)
    method Invoke (line 956) | private static void Invoke(OptionContext c, string name, string value,...
    method WriteOptionDescriptions (line 966) | public void WriteOptionDescriptions(TextWriter o)
    method WriteOptionPrototype (line 994) | bool WriteOptionPrototype(TextWriter o, Option p, ref int written)
    method GetNextOptionIndex (line 1044) | static int GetNextOptionIndex(string[] names, int i)
    method Write (line 1053) | static void Write(TextWriter o, ref int n, string s)
    method GetArgumentName (line 1059) | private static string GetArgumentName(int index, int maxIndex, string ...
    method GetDescription (line 1085) | private static string GetDescription(string description)
    method GetLines (line 1132) | private static IEnumerable<string> GetLines(string description)
    method IsEolChar (line 1158) | private static bool IsEolChar(char c)
    method GetLineEnd (line 1163) | private static int GetLineEnd(int start, int length, string description)

FILE: Git/Program.cs
  class Program (line 58) | public class Program
    method Main (line 76) | public static void Main(string[] args)
    method execute (line 126) | private static void execute(string[] argv)
    method ShowHelp (line 235) | private static void ShowHelp()
    method ShowVersion (line 260) | private static void ShowVersion()
    method ShowIncomplete (line 270) | private static void ShowIncomplete()
    method ShowComplete (line 287) | private static void ShowComplete()
    method ShowCommandMatches (line 306) | private static bool ShowCommandMatches(String s)
    method Exit (line 336) | static public void Exit(int exit_code)
    method NoOp (line 352) | static private void NoOp()

FILE: Git/Stubs/Am.cs
  class Am (line 46) | [Command(common=true, requiresRepository=true, usage = "")]
    method Run (line 52) | public override void Run(string[] args)
    method OfflineHelp (line 101) | private void OfflineHelp()

FILE: Git/Stubs/Annotate.cs
  class Annotate (line 46) | [Command(common=true, requiresRepository=true, usage = "")]
    method Run (line 52) | public override void Run(string[] args)
    method OfflineHelp (line 95) | private void OfflineHelp()

FILE: Git/Stubs/Apply.cs
  class Apply (line 46) | [Command(common=true, requiresRepository=true, usage = "")]
    method Run (line 52) | public override void Run(string[] args)
    method OfflineHelp (line 100) | private void OfflineHelp()

FILE: Git/Stubs/Archive.cs
  class Archive (line 46) | [Command(common=true, requiresRepository=true, usage = "")]
    method Run (line 52) | public override void Run(string[] args)
    method OfflineHelp (line 86) | private void OfflineHelp()

FILE: Git/Stubs/Blame.cs
  class Blame (line 46) | [Command(common=true, requiresRepository=true, usage = "")]
    method Run (line 52) | public override void Run(string[] args)
    method OfflineHelp (line 101) | private void OfflineHelp()

FILE: Git/Stubs/Branch.cs
  class Branch (line 46) | [Command(common=true, requiresRepository=true, usage = "")]
    method Run (line 52) | public override void Run(string[] args)
    method OfflineHelp (line 96) | private void OfflineHelp()

FILE: Git/Stubs/CatFile.cs
  class Catfile (line 46) | [Command(common=true, requiresRepository=true, usage = "")]
    method Run (line 52) | public override void Run(string[] args)
    method OfflineHelp (line 84) | private void OfflineHelp()

FILE: Git/Stubs/CheckoutIndex.cs
  class Checkoutindex (line 46) | [Command(common=true, requiresRepository=true, usage = "")]
    method Run (line 52) | public override void Run(string[] args)
    method OfflineHelp (line 90) | private void OfflineHelp()

FILE: Git/Stubs/Cherry.cs
  class Cherry (line 46) | [Command(common=true, requiresRepository=true, usage = "")]
    method Run (line 52) | public override void Run(string[] args)
    method OfflineHelp (line 79) | private void OfflineHelp()

FILE: Git/Stubs/CherryPick.cs
  class Cherrypick (line 46) | [Command(common=true, requiresRepository=true, usage = "")]
    method Run (line 52) | public override void Run(string[] args)
    method OfflineHelp (line 85) | private void OfflineHelp()

FILE: Git/Stubs/Clean.cs
  class Clean (line 46) | [Command(common=true, requiresRepository=true, usage = "")]
    method Run (line 52) | public override void Run(string[] args)
    method OfflineHelp (line 86) | private void OfflineHelp()

FILE: Git/Stubs/CommitTree.cs
  class Committree (line 47) | [Command(common=true, requiresRepository=true, usage = "")]
    method Run (line 53) | public override void Run(string[] args)
    method OfflineHelp (line 80) | private void OfflineHelp()

FILE: Git/Stubs/CountObjects.cs
  class Countobjects (line 46) | [Command(common=true, requiresRepository=true, usage = "")]
    method Run (line 52) | public override void Run(string[] args)
    method OfflineHelp (line 79) | private void OfflineHelp()

FILE: Git/Stubs/Describe.cs
  class Describe (line 46) | [Command(common=true, requiresRepository=true, usage = "")]
    method Run (line 52) | public override void Run(string[] args)
    method OfflineHelp (line 89) | private void OfflineHelp()

FILE: Git/Stubs/Diff.cs
  class Diff (line 46) | [Command(common=true, requiresRepository=true, usage = "")]
    method Run (line 52) | public override void Run(string[] args)
    method OfflineHelp (line 131) | private void OfflineHelp()

FILE: Git/Stubs/DiffFiles.cs
  class Difffiles (line 46) | [Command(common=true, requiresRepository=true, usage = "")]
    method Run (line 52) | public override void Run(string[] args)
    method OfflineHelp (line 137) | private void OfflineHelp()

FILE: Git/Stubs/DiffIndex.cs
  class Diffindex (line 46) | [Command(common=true, requiresRepository=true, usage = "")]
    method Run (line 52) | public override void Run(string[] args)
    method OfflineHelp (line 133) | private void OfflineHelp()

FILE: Git/Stubs/DiffTree.cs
  class Difftree (line 46) | [Command(common=true, requiresRepository=true, usage = "")]
    method Run (line 52) | public override void Run(string[] args)
    method OfflineHelp (line 147) | private void OfflineHelp()

FILE: Git/Stubs/Difftool.cs
  class Difftool (line 46) | [Command(common=true, requiresRepository=true, usage = "")]
    method Run (line 52) | public override void Run(string[] args)
    method OfflineHelp (line 81) | private void OfflineHelp()

FILE: Git/Stubs/FastExport.cs
  class Fastexport (line 46) | [Command(common=true, requiresRepository=true, usage = "")]
    method Run (line 52) | public override void Run(string[] args)
    method OfflineHelp (line 87) | private void OfflineHelp()

FILE: Git/Stubs/FastImport.cs
  class Fastimport (line 46) | [Command(common=true, requiresRepository=true, usage = "")]
    method Run (line 52) | public override void Run(string[] args)
    method OfflineHelp (line 90) | private void OfflineHelp()

FILE: Git/Stubs/FetchPack.cs
  class Fetchpack (line 46) | [Command(common=true, requiresRepository=true, usage = "")]
    method Run (line 52) | public override void Run(string[] args)
    method OfflineHelp (line 90) | private void OfflineHelp()

FILE: Git/Stubs/FilterBranch.cs
  class Filterbranch (line 46) | [Command(common=true, requiresRepository=true, usage = "")]
    method Run (line 52) | public override void Run(string[] args)
    method OfflineHelp (line 91) | private void OfflineHelp()

FILE: Git/Stubs/FmtMergeMsg.cs
  class Fmtmergemsg (line 46) | [Command(common=true, requiresRepository=true, usage = "")]
    method Run (line 52) | public override void Run(string[] args)
    method OfflineHelp (line 88) | private void OfflineHelp()

FILE: Git/Stubs/ForEachRef.cs
  class Foreachref (line 46) | [Command(common=true, requiresRepository=true, usage = "")]
    method Run (line 52) | public override void Run(string[] args)
    method OfflineHelp (line 82) | private void OfflineHelp()

FILE: Git/Stubs/FormatPatch.cs
  class Formatpatch (line 46) | [Command(common=true, requiresRepository=true, usage = "")]
    method Run (line 52) | public override void Run(string[] args)
    method OfflineHelp (line 156) | private void OfflineHelp()

FILE: Git/Stubs/Fsck.cs
  class Fsck (line 46) | [Command(common=true, requiresRepository=true, usage = "")]
    method Run (line 52) | public override void Run(string[] args)
    method OfflineHelp (line 87) | private void OfflineHelp()

FILE: Git/Stubs/Gc.cs
  class Gc (line 46) | [Command(common=true, requiresRepository=true, usage = "")]
    method Run (line 52) | public override void Run(string[] args)
    method OfflineHelp (line 85) | private void OfflineHelp()

FILE: Git/Stubs/Grep.cs
  class Grep (line 46) | [Command(common=true, requiresRepository=true, usage = "")]
    method Run (line 52) | public override void Run(string[] args)
    method OfflineHelp (line 111) | private void OfflineHelp()

FILE: Git/Stubs/HashObject.cs
  class Hashobject (line 46) | [Command(common=true, requiresRepository=true, usage = "")]
    method Run (line 52) | public override void Run(string[] args)
    method OfflineHelp (line 84) | private void OfflineHelp()

FILE: Git/Stubs/IndexPack.cs
  class Indexpack (line 46) | [Command(common=true, requiresRepository=true, usage = "")]
    method Run (line 52) | public override void Run(string[] args)
    method OfflineHelp (line 88) | private void OfflineHelp()

FILE: Git/Stubs/LsFiles.cs
  class LsFiles (line 46) | [Command(common=true, requiresRepository=true, usage = "")]
    method Run (line 52) | public override void Run(string[] args)
    method OfflineHelp (line 99) | private void OfflineHelp()

FILE: Git/Stubs/LsRemote.cs
  class LsRemote (line 46) | [Command(common=true, requiresRepository=true, usage = "")]
    method Run (line 52) | public override void Run(string[] args)
    method OfflineHelp (line 81) | private void OfflineHelp()

FILE: Git/Stubs/LsTree.cs
  class LsTree (line 46) | [Command(common=true, requiresRepository=true, usage = "")]
    method Run (line 52) | public override void Run(string[] args)
    method OfflineHelp (line 88) | private void OfflineHelp()

FILE: Git/Stubs/Mailinfo.cs
  class Mailinfo (line 46) | [Command(common=true, requiresRepository=true, usage = "")]
    method Run (line 52) | public override void Run(string[] args)
    method OfflineHelp (line 85) | private void OfflineHelp()

FILE: Git/Stubs/Mailsplit.cs
  class Mailsplit (line 46) | [Command(common=true, requiresRepository=true, usage = "")]
    method Run (line 52) | public override void Run(string[] args)
    method OfflineHelp (line 82) | private void OfflineHelp()

FILE: Git/Stubs/MergeBase.cs
  class MergeBase (line 46) | [Command(common=true, requiresRepository=true, usage = "")]
    method Run (line 52) | public override void Run(string[] args)
    method OfflineHelp (line 79) | private void OfflineHelp()

FILE: Git/Stubs/MergeFile.cs
  class MergeFile (line 46) | [Command(common=true, requiresRepository=true, usage = "")]
    method Run (line 52) | public override void Run(string[] args)
    method OfflineHelp (line 81) | private void OfflineHelp()

FILE: Git/Stubs/MergeIndex.cs
  class MergeIndex (line 46) | [Command(common=true, requiresRepository=true, usage = "")]
    method Run (line 52) | public override void Run(string[] args)
    method OfflineHelp (line 81) | private void OfflineHelp()

FILE: Git/Stubs/Mergetool.cs
  class Mergetool (line 46) | [Command(common=true, requiresRepository=true, usage = "")]
    method Run (line 52) | public override void Run(string[] args)
    method OfflineHelp (line 81) | private void OfflineHelp()

FILE: Git/Stubs/Mktree.cs
  class Mktree (line 46) | [Command(common=true, requiresRepository=true, usage = "")]
    method Run (line 52) | public override void Run(string[] args)
    method OfflineHelp (line 81) | private void OfflineHelp()

FILE: Git/Stubs/Mv.cs
  class Mv (line 46) | [Command(common=true, requiresRepository=true, usage = "")]
    method Run (line 52) | public override void Run(string[] args)
    method OfflineHelp (line 81) | private void OfflineHelp()

FILE: Git/Stubs/NameRev.cs
  class NameRev (line 46) | [Command(common=true, requiresRepository=true, usage = "")]
    method Run (line 52) | public override void Run(string[] args)
    method OfflineHelp (line 85) | private void OfflineHelp()

FILE: Git/Stubs/Notes.cs
  class Notes (line 48) | [Command(common=true, requiresRepository=true, usage = "")]
    method Run (line 54) | public override void Run(string[] args)
    method OfflineHelp (line 82) | private void OfflineHelp()

FILE: Git/Stubs/PackObjects.cs
  class PackObjects (line 46) | [Command(common=true, requiresRepository=true, usage = "")]
    method Run (line 52) | public override void Run(string[] args)
    method OfflineHelp (line 102) | private void OfflineHelp()

FILE: Git/Stubs/PackRedundant.cs
  class PackRedundant (line 46) | [Command(common=true, requiresRepository=true, usage = "")]
    method Run (line 52) | public override void Run(string[] args)
    method OfflineHelp (line 81) | private void OfflineHelp()

FILE: Git/Stubs/PackRefs.cs
  class PackRefs (line 46) | [Command(common=true, requiresRepository=true, usage = "")]
    method Run (line 52) | public override void Run(string[] args)
    method OfflineHelp (line 80) | private void OfflineHelp()

FILE: Git/Stubs/PatchId.cs
  class PatchId (line 46) | [Command(common=true, requiresRepository=true, usage = "")]
    method Run (line 52) | public override void Run(string[] args)
    method OfflineHelp (line 78) | private void OfflineHelp()

FILE: Git/Stubs/PeekRemote.cs
  class PeekRemote (line 46) | [Command(common=true, requiresRepository=true, usage = "")]
    method Run (line 52) | public override void Run(string[] args)
    method OfflineHelp (line 79) | private void OfflineHelp()

FILE: Git/Stubs/Prune.cs
  class Prune (line 46) | [Command(common=true, requiresRepository=true, usage = "")]
    method Run (line 52) | public override void Run(string[] args)
    method OfflineHelp (line 81) | private void OfflineHelp()

FILE: Git/Stubs/PrunePacked.cs
  class PrunePacked (line 46) | [Command(common=true, requiresRepository=true, usage = "")]
    method Run (line 52) | public override void Run(string[] args)
    method OfflineHelp (line 82) | private void OfflineHelp()

FILE: Git/Stubs/Quiltimport.cs
  class Quiltimport (line 46) | [Command(common=true, requiresRepository=true, usage = "")]
    method Run (line 52) | public override void Run(string[] args)
    method OfflineHelp (line 81) | private void OfflineHelp()

FILE: Git/Stubs/ReadTree.cs
  class ReadTree (line 46) | [Command(common=true, requiresRepository=true, usage = "")]
    method Run (line 52) | public override void Run(string[] args)
    method OfflineHelp (line 88) | private void OfflineHelp()

FILE: Git/Stubs/Rebase.cs
  class Rebase (line 47) | [Command(common=true, requiresRepository=true, usage = "")]
    method Run (line 52) | public override void Run(string[] args)
    method OfflineHelp (line 98) | private void OfflineHelp()

FILE: Git/Stubs/ReceivePack.cs
  class ReceivePack (line 46) | [Command(common=true, requiresRepository=true, usage = "")]
    method Run (line 52) | public override void Run(string[] args)
    method OfflineHelp (line 78) | private void OfflineHelp()

FILE: Git/Stubs/Reflog.cs
  class Reflog (line 46) | [Command(common=true, requiresRepository=true, usage = "")]
    method Run (line 52) | public override void Run(string[] args)
    method OfflineHelp (line 85) | private void OfflineHelp()

FILE: Git/Stubs/Relink.cs
  class Relink (line 46) | [Command(common=true, requiresRepository=true, usage = "")]
    method Run (line 52) | public override void Run(string[] args)
    method OfflineHelp (line 79) | private void OfflineHelp()

FILE: Git/Stubs/Remote.cs
  class Remote (line 46) | [Command(common=true, requiresRepository=true, usage = "")]
    method Run (line 52) | public override void Run(string[] args)
    method OfflineHelp (line 79) | private void OfflineHelp()

FILE: Git/Stubs/Repack.cs
  class Repack (line 46) | [Command(common=true, requiresRepository=true, usage = "")]
    method Run (line 52) | public override void Run(string[] args)
    method OfflineHelp (line 89) | private void OfflineHelp()

FILE: Git/Stubs/Replace.cs
  class Replace (line 46) | [Command(common=true, requiresRepository=true, usage = "")]
    method Run (line 52) | public override void Run(string[] args)
    method OfflineHelp (line 81) | private void OfflineHelp()

FILE: Git/Stubs/RequestPull.cs
  class RequestPull (line 46) | [Command(common=true, requiresRepository=true, usage = "")]
    method Run (line 52) | public override void Run(string[] args)
    method OfflineHelp (line 78) | private void OfflineHelp()

FILE: Git/Stubs/Reset.cs
  class Reset (line 46) | [Command(common=true, requiresRepository=true, usage = "")]
    method Run (line 52) | public override void Run(string[] args)
    method OfflineHelp (line 84) | private void OfflineHelp()

FILE: Git/Stubs/RevParse.cs
  class RevParse (line 46) | [Command(common=true, requiresRepository=true, usage = "")]
    method Run (line 52) | public override void Run(string[] args)
    method OfflineHelp (line 113) | private void OfflineHelp()

FILE: Git/Stubs/Revert.cs
  class Revert (line 46) | [Command(common=true, requiresRepository=true, usage = "")]
    method Run (line 52) | public override void Run(string[] args)
    method OfflineHelp (line 83) | private void OfflineHelp()

FILE: Git/Stubs/SendPack.cs
  class SendPack (line 46) | [Command(common=true, requiresRepository=true, usage = "")]
    method Run (line 52) | public override void Run(string[] args)
    method OfflineHelp (line 85) | private void OfflineHelp()

FILE: Git/Stubs/Shortlog.cs
  class Shortlog (line 46) | [Command(common=true, requiresRepository=true, usage = "")]
    method Run (line 52) | public override void Run(string[] args)
    method OfflineHelp (line 83) | private void OfflineHelp()

FILE: Git/Stubs/Show.cs
  class Show (line 45) | [Command(complete = false, common = true, usage = "Show various types of...
    method Run (line 58) | override public void Run(String[] args)
    method OfflineHelp (line 93) | private void OfflineHelp()
    method DoShow (line 105) | private void DoShow(List<String> args)

FILE: Git/Stubs/ShowBranch.cs
  class ShowBranch (line 46) | [Command(common=true, requiresRepository=true, usage = "")]
    method Run (line 52) | public override void Run(string[] args)
    method OfflineHelp (line 94) | private void OfflineHelp()

FILE: Git/Stubs/ShowRef.cs
  class ShowRef (line 46) | [Command(common=true, requiresRepository=true, usage = "")]
    method Run (line 52) | public override void Run(string[] args)
    method OfflineHelp (line 89) | private void OfflineHelp()

FILE: Git/Stubs/Stripspace.cs
  class Stripspace (line 46) | [Command(common=true, requiresRepository=true, usage = "")]
    method Run (line 52) | public override void Run(string[] args)
    method OfflineHelp (line 79) | private void OfflineHelp()

FILE: Git/Stubs/Submodule.cs
  class Submodule (line 46) | [Command(common=true, requiresRepository=true, usage = "")]
    method Run (line 52) | public override void Run(string[] args)
    method OfflineHelp (line 90) | private void OfflineHelp()

FILE: Git/Stubs/Svn.cs
  class Svn (line 46) | [Command(common=true, requiresRepository=true, usage = "")]
    method Run (line 52) | public override void Run(string[] args)
    method OfflineHelp (line 86) | private void OfflineHelp()

FILE: Git/Stubs/SymbolicRef.cs
  class SymbolicRef (line 46) | [Command(common=true, requiresRepository=true, usage = "")]
    method Run (line 52) | public override void Run(string[] args)
    method OfflineHelp (line 82) | private void OfflineHelp()

FILE: Git/Stubs/Tag.cs
  class Tag (line 46) | [Command(common=true, requiresRepository=true, usage = "")]
    method Run (line 52) | public override void Run(string[] args)
    method OfflineHelp (line 89) | private void OfflineHelp()

FILE: Git/Stubs/TarTree.cs
  class TarTree (line 46) | [Command(common=true, requiresRepository=true, usage = "")]
    method Run (line 52) | public override void Run(string[] args)
    method OfflineHelp (line 79) | private void OfflineHelp()

FILE: Git/Stubs/UnpackFile.cs
  class UnpackFile (line 46) | [Command(common=true, requiresRepository=true, usage = "")]
    method Run (line 52) | public override void Run(string[] args)
    method OfflineHelp (line 78) | private void OfflineHelp()

FILE: Git/Stubs/UnpackObjects.cs
  class UnpackObjects (line 46) | [Command(common=true, requiresRepository=true, usage = "")]
    method Run (line 52) | public override void Run(string[] args)
    method OfflineHelp (line 82) | private void OfflineHelp()

FILE: Git/Stubs/UpdateIndex.cs
  class UpdateIndex (line 46) | [Command(common=true, requiresRepository=true, usage = "")]
    method Run (line 52) | public override void Run(string[] args)
    method OfflineHelp (line 99) | private void OfflineHelp()

FILE: Git/Stubs/UpdateServerInfo.cs
  class UpdateServerInfo (line 46) | [Command(common=true, requiresRepository=true, usage = "")]
    method Run (line 52) | public override void Run(string[] args)
    method OfflineHelp (line 79) | private void OfflineHelp()

FILE: Git/Stubs/UploadArchive.cs
  class UploadArchive (line 46) | [Command(common=true, requiresRepository=true, usage = "")]
    method Run (line 52) | public override void Run(string[] args)
    method OfflineHelp (line 78) | private void OfflineHelp()

FILE: Git/Stubs/UploadPack.cs
  class UploadPack (line 46) | [Command(common=true, requiresRepository=true, usage = "")]
    method Run (line 52) | public override void Run(string[] args)
    method OfflineHelp (line 80) | private void OfflineHelp()

FILE: Git/Stubs/Var.cs
  class Var (line 46) | [Command(common=true, requiresRepository=true, usage = "")]
    method Run (line 52) | public override void Run(string[] args)
    method OfflineHelp (line 79) | private void OfflineHelp()

FILE: Git/Stubs/VerifyPack.cs
  class VerifyPack (line 46) | [Command(common=true, requiresRepository=true, usage = "")]
    method Run (line 52) | public override void Run(string[] args)
    method OfflineHelp (line 80) | private void OfflineHelp()

FILE: Git/Stubs/VerifyTag.cs
  class VerifyTag (line 46) | [Command(common=true, requiresRepository=true, usage = "")]
    method Run (line 52) | public override void Run(string[] args)
    method OfflineHelp (line 78) | private void OfflineHelp()

FILE: Git/Stubs/Whatchanged.cs
  class Whatchanged (line 46) | [Command(common=true, requiresRepository=true, usage = "")]
    method Run (line 52) | public override void Run(string[] args)
    method OfflineHelp (line 87) | private void OfflineHelp()

FILE: Git/TextBuiltin.cs
  class TextBuiltin (line 62) | public abstract class TextBuiltin
    method setCommandName (line 103) | public void setCommandName(String name)
    method getCommandName (line 111) | public string getCommandName()
    method setCommandHelp (line 120) | internal void setCommandHelp(String cmdHelp)
    method getCommandHelp (line 128) | public string getCommandHelp()
    method Init (line 170) | public void Init(GitSharp.Repository repo, string path)
    method SetupPager (line 199) | protected void SetupPager()
    method Execute (line 222) | public void Execute(String[] args)
    method ParseOptions (line 239) | public List<String> ParseOptions(string[] args)
    method ParseOptions (line 260) | public void ParseOptions(string[] args, out List<String> filePaths, ou...
    method GetCommand (line 276) | public Command GetCommand()
    method Run (line 293) | public abstract void Run(String[] args);
    method OnlineHelp (line 298) | public void OnlineHelp()
    method Resolve (line 311) | ObjectId Resolve(string s)
    method die (line 325) | protected static Die die(String why)

FILE: GitSharp.Core/AbbreviatedObjectId.cs
  class AbbreviatedObjectId (line 58) | [Serializable]
    method FromString (line 80) | public static AbbreviatedObjectId FromString(byte[] buf, int offset, i...
    method FromString (line 97) | public static AbbreviatedObjectId FromString(string str)
    method Mask (line 110) | public static int Mask(int nibbles, int word, int v)
    method AbbreviatedObjectId (line 131) | public AbbreviatedObjectId(int nibbles, int w1, int w2, int w3, int w4...
    method isComplete (line 155) | public bool isComplete()
    method ToObjectId (line 166) | public ObjectId ToObjectId()
    method prefixCompare (line 182) | public int prefixCompare(AnyObjectId other)
    method mask (line 216) | private int mask(int word, int v)
    method GetHashCode (line 221) | public override int GetHashCode()
    method Equals (line 226) | public override bool Equals(object obj)
    method name (line 242) | public string name()
    method ToString (line 274) | public override string ToString()
    method FromHexString (line 279) | private static AbbreviatedObjectId FromHexString(byte[] bs, int ptr, i...

FILE: GitSharp.Core/AbstractIndexTreeVisitor.cs
  class AbstractIndexTreeVisitor (line 45) | public class AbstractIndexTreeVisitor : IndexTreeVisitor
    method VisitEntry (line 61) | void IndexTreeVisitor.VisitEntry(TreeEntry treeEntry, GitIndex.Entry i...
    method VisitEntry (line 70) | void IndexTreeVisitor.VisitEntry(TreeEntry treeEntry, TreeEntry auxEnt...
    method FinishVisitTree (line 79) | void IndexTreeVisitor.FinishVisitTree(Tree tree, Tree auxTree, string ...
    method FinishVisitTree (line 88) | void IndexTreeVisitor.FinishVisitTree(Tree tree, int i, string curDir)

FILE: GitSharp.Core/AlternateRepositoryDatabase.cs
  class AlternateRepositoryDatabase (line 51) | public sealed class AlternateRepositoryDatabase : ObjectDatabase
    method AlternateRepositoryDatabase (line 57) | public AlternateRepositoryDatabase(Repository alternateRepository)
    method getRepository (line 64) | public Repository getRepository()
    method closeSelf (line 69) | public override void closeSelf()
    method create (line 74) | public override void create()
    method exists (line 79) | public override bool exists()
    method hasObject1 (line 84) | public override bool hasObject1(AnyObjectId objectId)
    method tryAgain1 (line 89) | public override bool tryAgain1()
    method hasObject2 (line 94) | public override bool hasObject2(string objectName)
    method openObject1 (line 99) | public override ObjectLoader openObject1(WindowCursor curs, AnyObjectI...
    method openObject2 (line 104) | public override ObjectLoader openObject2(WindowCursor curs, string obj...
    method OpenObjectInAllPacksImplementation (line 109) | public override void OpenObjectInAllPacksImplementation(ICollection<Pa...
    method loadAlternates (line 114) | protected override ObjectDatabase[] loadAlternates()
    method closeAlternates (line 119) | public override void closeAlternates()
    method newCachedDatabase (line 124) | public override ObjectDatabase newCachedDatabase()

FILE: GitSharp.Core/AnyObjectId.cs
  class AnyObjectId (line 55) | public abstract class AnyObjectId : IEquatable<AnyObjectId>,
    method equals (line 87) | public static bool equals(AnyObjectId firstObjectId, AnyObjectId secon...
    method Equals (line 113) | public virtual bool Equals(AnyObjectId other)
    method Equals (line 123) | public override bool Equals(object obj)
    method CopyTo (line 137) | public void CopyTo(BinaryWriter s)
    method CopyTo (line 151) | public void CopyTo(char[] tmp, StringBuilder w)
    method CopyTo (line 166) | public void CopyTo(char[] tmp, StreamWriter w)
    method CopyTo (line 172) | public void CopyTo(char[] tmp, Encoding e, Stream w)
    method copyRawTo (line 183) | public void copyRawTo(Stream s)
    method copyRawTo (line 199) | public void copyRawTo(byte[] buf, int off)
    method copyRawTo (line 213) | public void copyRawTo(int[] b, int offset)
    method ToHexByteArray (line 222) | private byte[] ToHexByteArray()
    method GetHashCode (line 235) | public override int GetHashCode()
    method Abbreviate (line 247) | public AbbreviatedObjectId Abbreviate(Repository repo)
    method Abbreviate (line 261) | public AbbreviatedObjectId Abbreviate(Repository repo, int len)
    method AnyObjectId (line 271) | protected AnyObjectId(AnyObjectId other)
    method AnyObjectId (line 285) | protected AnyObjectId(int w1, int w2, int w3, int w4, int w5)
    method GetFirstByte (line 304) | public int GetFirstByte()
    method CompareTo (line 319) | public int CompareTo(ObjectId other)
    method CompareTo (line 343) | public int CompareTo(byte[] bs, int p)
    method CompareTo (line 364) | public int CompareTo(int[] bs, int p)
    method CompareTo (line 389) | public int CompareTo(object obj)
    method startsWith (line 403) | public bool startsWith(AbbreviatedObjectId abbr)
    method ToHexCharArray (line 408) | private char[] ToHexCharArray()
    method ToHexCharArray (line 415) | private void ToHexCharArray(char[] dest)
    method ToString (line 432) | public override String ToString()
    method Copy (line 449) | public ObjectId Copy()
    method ToObjectId (line 469) | public abstract ObjectId ToObjectId();
    class AnyObjectIdEqualityComparer (line 473) | internal class AnyObjectIdEqualityComparer<T> : IEqualityComparer<T>
      method Equals (line 490) | public bool Equals(T x, T y)
      method GetHashCode (line 507) | public int GetHashCode(T obj)

FILE: GitSharp.Core/BinaryDelta.cs
  class BinaryDelta (line 51) | public static class BinaryDelta
    method Apply (line 63) | public static byte[] Apply(byte[] baseData, byte[] delta)

FILE: GitSharp.Core/BlobBasedConfig.cs
  class BlobBasedConfig (line 47) | public class BlobBasedConfig : Config
    method BlobBasedConfig (line 58) | public BlobBasedConfig(Config @base, byte[] blob)
    method BlobBasedConfig (line 74) | public BlobBasedConfig(Config @base, Repository repo, ObjectId objectid)
    method BlobBasedConfig (line 105) | public BlobBasedConfig(Config @base, Commit commit, string path)

FILE: GitSharp.Core/ByteArrayExtensions.cs
  class ByteArrayExtensions (line 5) | public static class ByteArrayExtensions
    class ParsedLine (line 7) | public class ParsedLine
      method ParsedLine (line 12) | public ParsedLine(int nextIndex, byte[] buffer)
    method StartsWith (line 19) | public static bool StartsWith(this byte[] buffer, byte[] bufferToCompa...
    method ReadLine (line 48) | public static ParsedLine ReadLine(this byte[] source, int startIndex)

FILE: GitSharp.Core/ByteArrayWindow.cs
  class ByteArrayWindow (line 48) | internal class ByteArrayWindow : ByteWindow
    method ByteArrayWindow (line 52) | internal ByteArrayWindow(PackFile pack, long o, byte[] b)
    method copy (line 58) | protected override int copy(int pos, byte[] dstbuf, int dstoff, int cnt)
    method Inflate (line 65) | protected override int Inflate(int pos, byte[] dstbuf, int dstoff, Inf...
    method inflateVerify (line 81) | protected override void inflateVerify(int pos, Inflater inf)

FILE: GitSharp.Core/ByteBufferWindow.cs
  class ByteBufferWindow (line 49) | internal class ByteBufferWindow : ByteWindow, IDisposable
    method ByteBufferWindow (line 53) | internal ByteBufferWindow(PackFile pack, long o, Stream b)
    method copy (line 59) | protected override int copy(int pos, byte[] dstbuf, int dstoff, int cnt)
    method Inflate (line 67) | protected override int Inflate(int pos, byte[] dstbuf, int dstoff, Inf...
    method inflateVerify (line 87) | protected override void inflateVerify(int pos, Inflater inf)
    method Dispose (line 106) | public override void Dispose ()

FILE: GitSharp.Core/ByteWindow.cs
  class ByteWindow (line 53) | internal abstract class ByteWindow : IDisposable
    method ByteWindow (line 61) | protected ByteWindow(PackFile p, long s, long n)
    method contains (line 68) | internal bool contains(PackFile neededFile, long neededPos)
    method copy (line 89) | internal int copy(long pos, byte[] dstbuf, int dstoff, int cnt)
    method copy (line 114) | protected abstract int copy(int pos, byte[] dstbuf, int dstoff, int cnt);
    method Inflate (line 146) | internal int Inflate(long pos, byte[] dstbuf, int dstoff, Inflater inf)
    method Inflate (line 181) | protected abstract int Inflate(int pos, byte[] dstbuf, int dstoff, Inf...
    method inflateVerify (line 183) | internal void inflateVerify(long pos, Inflater inf)
    method inflateVerify (line 188) | protected abstract void inflateVerify(int pos, Inflater inf);
    method Dispose (line 210) | public virtual void Dispose ()

FILE: GitSharp.Core/CachedObjectDatabase.cs
  class CachedObjectDatabase (line 58) | public class CachedObjectDatabase : ObjectDatabase {
    method CachedObjectDatabase (line 68) | public CachedObjectDatabase(ObjectDatabase wrapped) {
    method hasObject1 (line 72) | public override bool hasObject1(AnyObjectId objectId) {
    method openObject1 (line 76) | public override ObjectLoader openObject1(WindowCursor curs, AnyObjectI...
    method hasObject2 (line 81) | public override bool hasObject2(string objectName) {
    method loadAlternates (line 85) | protected override ObjectDatabase[] loadAlternates() {
    method openObject2 (line 94) | public override ObjectLoader openObject2(WindowCursor curs, string obj...
    method OpenObjectInAllPacks (line 99) | public override void OpenObjectInAllPacks(ICollection<PackedObjectLoad...
    method tryAgain1 (line 104) | public override bool tryAgain1() {
    method newCachedDatabase (line 108) | public override ObjectDatabase newCachedDatabase() {

FILE: GitSharp.Core/CachedObjectDirectory.cs
  class CachedObjectDirectory (line 52) | public class CachedObjectDirectory : CachedObjectDatabase {
    method CachedObjectDirectory (line 63) | public CachedObjectDirectory(ObjectDirectory wrapped) : base(wrapped) {
    method openObject2 (line 86) | public override ObjectLoader openObject2(WindowCursor curs, String obj...
    method hasObject1 (line 93) | public override bool hasObject1(AnyObjectId objectId) {
    method hasObject2 (line 99) | public override bool hasObject2(String name) {

FILE: GitSharp.Core/Codec.cs
  class Codec (line 46) | internal static class Codec
    method DecodeTypeString (line 48) | public static ObjectType DecodeTypeString(ObjectId id, byte[] typeStri...
    method TypeString (line 98) | public static string TypeString(ObjectType objectType)
    method EncodedTypeString (line 119) | public static byte[] EncodedTypeString(ObjectType objectType)

FILE: GitSharp.Core/Commit.cs
  class Commit (line 55) | public class Commit : Treeish
    method Commit (line 70) | public Commit(Repository db)
    method Commit (line 85) | public Commit(Repository db, ObjectId[] parentIds)
    method Commit (line 99) | public Commit(Repository db, ObjectId id, byte[] raw)
    method Decode (line 209) | private void Decode()
    method ExtractTrailingBytes (line 283) | private static byte[] ExtractTrailingBytes(byte[] source, string prefix)
    method Save (line 294) | public void Save() // [henon] was Commit() in java, but c# won't allow it
    method ToString (line 304) | public override string ToString()

FILE: GitSharp.Core/CompleteAttribute.cs
  class CompleteAttribute (line 5) | [AttributeUsage(AttributeTargets.All, Inherited = false, AllowMultiple =...

FILE: GitSharp.Core/Config.cs
  class Config (line 56) | public class Config
    method Config (line 83) | public Config()
    method Config (line 95) | public Config(Config defaultConfig)
    method EscapeValue (line 106) | private static string EscapeValue(string x)
    method getInt (line 187) | public int getInt(string section, string name, int defaultValue)
    method getInt (line 205) | public int getInt(string section, string subsection, string name, int ...
    method getLong (line 227) | public long getLong(string section, string subsection, string name, lo...
    method getBoolean (line 281) | public bool getBoolean(string section, string name, bool defaultValue)
    method getBoolean (line 301) | public bool getBoolean(string section, string subsection, string name,...
    method getString (line 330) | public string getString(string section, string subsection, string name)
    method getStringList (line 345) | public string[] getStringList(string section, string subsection, strin...
    method getSubsections (line 373) | public IList<string> getSubsections(string section)
    method get (line 391) | public T get<T>(SectionParser<T> parser)
    method uncache (line 411) | public void uncache<T>(SectionParser<T> parser)
    method getRawString (line 416) | private string getRawString(string section, string subsection, string ...
    method getRawStringList (line 429) | private List<string> getRawStringList(string section, string subsectio...
    method add (line 441) | private static List<string> add(List<string> curr, string value)
    method getState (line 450) | internal State getState()
    method getBaseState (line 464) | private State getBaseState()
    method setInt (line 482) | public void setInt(string section, string subsection, string name, int...
    method setLong (line 500) | public void setLong(string section, string subsection, string name, lo...
    method setBoolean (line 528) | public void setBoolean(string section, string subsection, string name,...
    method setString (line 546) | public void setString(string section, string subsection, string name, ...
    method unset (line 557) | public void unset(string section, string subsection, string name)
    method unsetSection (line 567) | public void unsetSection(string section, string subsection)
    method unsetSection (line 577) | private State unsetSection(State srcState, string section,
    method setStringList (line 612) | public void setStringList(string section, string subsection, string na...
    method replaceStringList (line 622) | private State replaceStringList(State srcState, string section, string...
    method copy (line 696) | private static List<Entry> copy(State src, ICollection<string> values)
    method findSectionEnd (line 707) | private static int findSectionEnd(IList<Entry> entries, string section...
    method toText (line 732) | public string toText()
    method fromText (line 797) | public void fromText(string text)
    method ReadValue (line 883) | private static string ReadValue(ConfigReader i, bool quote, int eol)
    method newState (line 978) | private State newState()
    method newState (line 983) | private State newState(List<Entry> entries)
    method clear (line 988) | protected void clear()
    method readSectionName (line 993) | private static string readSectionName(ConfigReader i)
    method readKeyName (line 1039) | private static string readKeyName(ConfigReader i)
    class ConfigReader (line 1094) | private class ConfigReader
      method ConfigReader (line 1100) | public ConfigReader(string text)
      method Read (line 1106) | public int Read()
      method Reset (line 1117) | public void Reset()
    class Entry (line 1132) | internal class Entry
      method forValue (line 1164) | public Entry forValue(string newValue)
      method match (line 1178) | public bool match(string aSection, string aSubsection, string aKey)
      method match (line 1185) | public bool match(string aSection, string aSubsection)
      method eqIgnoreCase (line 1190) | private static bool eqIgnoreCase(string a, string b)
      method eqSameCase (line 1199) | private static bool eqSameCase(string a, string b)
    type SectionParser (line 1226) | public interface SectionParser<T>
      method parse (line 1235) | T parse(Config cfg);
    class State (line 1242) | internal class State
      method State (line 1248) | public State(List<Entry> entries, State @base)
    class SubsectionNames (line 1260) | private class SubsectionNames : SectionParser<IList<string>>
      method SubsectionNames (line 1264) | public SubsectionNames(string sectionName)
      method parse (line 1271) | public IList<string> parse(Config cfg)
      method GetHashCode (line 1288) | public override int GetHashCode()
      method Equals (line 1293) | public override bool Equals(object obj)

FILE: GitSharp.Core/ConsoleUserInfoProvider.cs
  class ConsoleUserInfoProvider (line 43) | public class ConsoleUserInfoProvider : UserInfoProvider
    method promptPassword (line 45) | public override bool promptPassword(string message)
    method promptPassphrase (line 53) | public override bool promptPassphrase(string message)
    method promptYesNo (line 61) | public override bool promptYesNo(string message)
    method showMessage (line 69) | public override void showMessage(string message)

FILE: GitSharp.Core/Constants.cs
  class Constants (line 51) | public static class Constants
    method newMessageDigest (line 347) | public static MessageDigest newMessageDigest()
    method typeString (line 359) | public static string typeString(int typeCode)
    method encodedTypeString (line 388) | public static byte[] encodedTypeString(int typeCode)
    method decodeTypeString (line 427) | public static int decodeTypeString(AnyObjectId id, byte[] typeString, ...
    method encodeASCII (line 498) | public static byte[] encodeASCII(long s)
    method encodeASCII (line 518) | public static byte[] encodeASCII(string s)
    method encode (line 543) | public static byte[] encode(string str)

FILE: GitSharp.Core/CoreConfig.cs
  class CoreConfig (line 43) | public class CoreConfig
    class SectionParser (line 45) | private class SectionParser : Config.SectionParser<CoreConfig>
      method parse (line 47) | public CoreConfig parse(Config cfg)
    method CoreConfig (line 60) | private CoreConfig(Config rc)
    method getExcludesFile (line 68) | public string getExcludesFile()
    method getCompression (line 73) | public int getCompression()
    method getPackIndexVersion (line 78) | public int getPackIndexVersion()
    method isLogAllRefUpdates (line 86) | public bool isLogAllRefUpdates()

FILE: GitSharp.Core/DeltaOfsPackedObjectLoader.cs
  class DeltaOfsPackedObjectLoader (line 45) | class DeltaOfsPackedObjectLoader : DeltaPackedObjectLoader
    method DeltaOfsPackedObjectLoader (line 49) | public DeltaOfsPackedObjectLoader(PackFile pr, long dataOffset, long o...
    method GetBaseLoader (line 55) | public override PackedObjectLoader GetBaseLoader(WindowCursor windowCu...

FILE: GitSharp.Core/DeltaPackedObjectLoader.cs
  class DeltaPackedObjectLoader (line 48) | public abstract class DeltaPackedObjectLoader : PackedObjectLoader
    method DeltaPackedObjectLoader (line 53) | protected DeltaPackedObjectLoader(PackFile pr, long dataOffset, long o...
    method Materialize (line 60) | public override void Materialize(WindowCursor curs)
    method GetBaseLoader (line 119) | public abstract PackedObjectLoader GetBaseLoader(WindowCursor windowCu...

FILE: GitSharp.Core/DeltaRefPackedObjectLoader.cs
  class DeltaRefPackedObjectLoader (line 47) | public class DeltaRefPackedObjectLoader : DeltaPackedObjectLoader
    method DeltaRefPackedObjectLoader (line 51) | public DeltaRefPackedObjectLoader(PackFile pr, long dataOffset, long o...
    method GetBaseLoader (line 57) | public override PackedObjectLoader GetBaseLoader(WindowCursor windowCu...

FILE: GitSharp.Core/Diff/DiffFormatter.cs
  class DiffFormatter (line 50) | public class DiffFormatter
    method DiffFormatter (line 60) | public DiffFormatter()
    method setContext (line 73) | public void setContext(int lineCount)
    method format (line 97) | public void format(Stream @out, FileHeader head, RawText a, RawText b)
    method FormatEdits (line 132) | public void FormatEdits(Stream @out, RawText a, RawText b, EditList ed...
    method WriteHunkHeader (line 173) | private static void WriteHunkHeader(Stream @out, int aCur, int aEnd, i...
    method WriteRange (line 185) | private static void WriteRange(Stream @out, char prefix, int begin, in...
    method WriteInteger (line 217) | private static void WriteInteger(Stream @out, int count)
    method WriteLine (line 223) | private static void WriteLine(Stream @out, char prefix, RawText text, ...
    method FindCombinedEnd (line 234) | private int FindCombinedEnd(IList<Edit> edits, int i)
    method CombineA (line 244) | private bool CombineA(IList<Edit> e, int i)
    method CombineB (line 249) | private bool CombineB(IList<Edit> e, int i)
    method End (line 254) | private static bool End(Edit edit, int a, int b)

FILE: GitSharp.Core/Diff/Edit.cs
  class Edit (line 57) | public class Edit
    type Type (line 62) | [Serializable]
    method Edit (line 91) | public Edit(int aStart, int bStart)
    method Edit (line 103) | public Edit(int aStart, int aEnd, int bStart, int bEnd)
    method ExtendA (line 159) | public void ExtendA()
    method ExtendB (line 167) | public void ExtendB()
    method Swap (line 175) | public void Swap()
    method GetHashCode (line 187) | public override int GetHashCode()
    method Equals (line 207) | public override bool Equals(object obj)
    method ToString (line 228) | public override string ToString()

FILE: GitSharp.Core/Diff/EditList.cs
  class EditList (line 51) | public class EditList : List<Edit>, IIterable<Edit>
    method size (line 53) | public int size()
    method get (line 58) | public Edit get(int index)
    method set (line 63) | public Edit set(int index, Edit element)
    method Add (line 70) | public void Add(int index, Edit element)
    method remove (line 75) | public void remove(int index)
    method ToString (line 80) | public override string ToString()
    method isEmpty (line 102) | public bool isEmpty()
    method isEqual (line 107) | private bool isEqual(EditList o)
    method isEqual (line 125) | private bool isEqual(string s)
    method Equals (line 130) | public override bool Equals(object obj)
    method GetHashCode (line 147) | public override int GetHashCode()
    method iterator (line 152) | public IteratorBase<Edit> iterator()

FILE: GitSharp.Core/Diff/MyersDiff.cs
  class MyersDiff (line 148) | public class MyersDiff
    method MyersDiff (line 170) | public MyersDiff(Sequence a, Sequence b)
    method getEdits (line 179) | public EditList getEdits()
    method calculateEdits (line 191) | protected void calculateEdits()
    method calculateEdits (line 211) | protected void calculateEdits(int beginA, int endA,
    class MiddleEdit (line 245) | class MiddleEdit
      method MiddleEdit (line 250) | public MiddleEdit(Sequence a, Sequence b)
      method initialize (line 258) | public void initialize(int beginA, int endA, int beginB, int endB)
      method calculate (line 284) | public Edit calculate(int beginA, int endA, int beginB, int endB)
      class EditPaths (line 355) | internal abstract class EditPaths
        method EditPaths (line 367) | protected EditPaths(MiddleEdit middleEdit)
        method getIndex (line 372) | int getIndex(int d, int k)
        method getX (line 380) | public int getX(int d, int k)
        method getSnake (line 388) | public long getSnake(int d, int k)
        method forceKIntoRange (line 396) | private int forceKIntoRange(int k)
        method initialize (line 406) | public void initialize(int k, int x, int minK, int maxK)
        method snake (line 417) | public abstract int snake(int k, int x);
        method getLeft (line 418) | protected abstract int getLeft(int x);
        method getRight (line 419) | protected abstract int getRight(int x);
        method isBetter (line 420) | protected abstract bool isBetter(int left, int right);
        method adjustMinMaxK (line 421) | protected abstract void adjustMinMaxK(int k, int x);
        method meets (line 422) | protected abstract bool meets(int d, int k, int x, long snake);
        method newSnake (line 424) | long newSnake(int k, int x)
        method snake2x (line 431) | int snake2x(long snake)
        method snake2y (line 436) | int snake2y(long snake)
        method makeEdit (line 441) | protected bool makeEdit(long snake1, long snake2)
        method calculate (line 466) | public bool calculate(int d)
      class ForwardEditPaths (line 534) | class ForwardEditPaths : EditPaths
        method ForwardEditPaths (line 536) | public ForwardEditPaths(MiddleEdit middleEdit)
        method snake (line 541) | public override int snake(int k, int x)
        method getLeft (line 549) | protected override int getLeft(int x)
        method getRight (line 554) | protected override int getRight(int x)
        method isBetter (line 559) | protected override bool isBetter(int left, int right)
        method adjustMinMaxK (line 564) | protected override void adjustMinMaxK(int k, int x)
        method meets (line 575) | protected override bool meets(int d, int k, int x, long snake)
      class BackwardEditPaths (line 589) | class BackwardEditPaths : EditPaths
        method BackwardEditPaths (line 591) | public BackwardEditPaths(MiddleEdit middleEdit)
        method snake (line 596) | public override int snake(int k, int x)
        method getLeft (line 604) | protected override int getLeft(int x)
        method getRight (line 609) | protected override int getRight(int x)
        method isBetter (line 614) | protected override bool isBetter(int left, int right)
        method adjustMinMaxK (line 619) | protected override void adjustMinMaxK(int k, int x)
        method meets (line 630) | protected override bool meets(int d, int k, int x, long snake)

FILE: GitSharp.Core/Diff/RawText.cs
  class RawText (line 59) | public class RawText : Sequence
    method RawText (line 102) | public RawText(byte[] input)
    method RawText (line 114) | public RawText(FileInfo file) : this(IO.ReadFully(file))
    method size (line 118) | public int size()
    method equals (line 127) | public bool equals(int thisIdx, Sequence other, int otherIdx)
    method equals (line 132) | private static bool equals(RawText a, int ai, RawText b, int bi)
    method writeLine (line 170) | public void writeLine(Stream @out, int i)
    method isMissingNewlineAtEnd (line 185) | public bool isMissingNewlineAtEnd()
    method computeHashes (line 193) | private IntList computeHashes()
    method HashLine (line 219) | private static int HashLine(byte[] raw, int ptr, int end)

FILE: GitSharp.Core/Diff/Sequence.cs
  type Sequence (line 57) | public interface Sequence
    method size (line 62) | int size();
    method equals (line 83) | bool equals(int thisIdx, Sequence other, int otherIdx);

FILE: GitSharp.Core/DirectoryCache/BaseDirCacheEditor.cs
  class BaseDirCacheEditor (line 51) | public abstract class BaseDirCacheEditor
    method BaseDirCacheEditor (line 81) | protected BaseDirCacheEditor(DirCache dc, int ecnt)
    method getDirCache (line 93) | public DirCache getDirCache()
    method FastAdd (line 108) | protected void FastAdd(DirCacheEntry newEntry)
    method FastKeep (line 151) | protected void FastKeep(int pos, int cnt)
    method finish (line 179) | public abstract void finish();
    method Replace (line 187) | protected void Replace()
    method commit (line 215) | public virtual bool commit()

FILE: GitSharp.Core/DirectoryCache/DirCache.cs
  class DirCache (line 61) | public class DirCache
    method Compare (line 78) | public static int Compare(DirCacheEntry a, DirCacheEntry b)
    method Compare (line 83) | private static int Compare(byte[] aPath, int aLen, DirCacheEntry b)
    method Compare (line 88) | public static int Compare(byte[] aPath, int aLen, byte[] bPath, int bLen)
    method newInCore (line 109) | public static DirCache newInCore()
    method read (line 132) | public static DirCache read(FileInfo indexLocation)
    method read (line 160) | public static DirCache read(Repository db)
    method Lock (line 188) | public static DirCache Lock(FileInfo indexLocation)
    method Lock (line 231) | public static DirCache Lock(Repository db)
    method DirCache (line 261) | public DirCache(FileInfo indexLocation)
    method builder (line 274) | public DirCacheBuilder builder()
    method editor (line 286) | public DirCacheEditor editor()
    method replace (line 291) | public void replace(DirCacheEntry[] e, int cnt)
    method read (line 313) | public void read()
    method clear (line 358) | public void clear()
    method ReadFrom (line 366) | private void ReadFrom(Stream inStream)
    method skipOptionalExtension (line 469) | private void skipOptionalExtension(Stream inStream, MessageDigest md, ...
    method formatExtensionName (line 486) | private static String formatExtensionName(byte[] hdr)
    method IsDIRC (line 491) | private static bool IsDIRC(byte[] header)
    method Lock (line 517) | public bool Lock()
    method write (line 549) | public void write()
    method WriteTo (line 564) | private void WriteTo(Stream os)
    method commit (line 630) | public bool commit()
    method RequireLocked (line 640) | private void RequireLocked(LockFile tmp)
    method unlock (line 657) | public void unlock()
    method findEntry (line 684) | public int findEntry(string path)
    method findEntry (line 692) | public int findEntry(byte[] p, int pLen)
    method nextEntry (line 736) | public int nextEntry(int position)
    method nextEntry (line 750) | public int nextEntry(byte[] p, int pLen, int nextIdx)
    method getEntryCount (line 773) | public int getEntryCount()
    method getEntry (line 785) | public DirCacheEntry getEntry(int i)
    method getEntry (line 795) | public DirCacheEntry getEntry(string path)
    method getEntriesWithin (line 810) | public DirCacheEntry[] getEntriesWithin(string path)
    method toArray (line 831) | public void toArray(int i, DirCacheEntry[] dst, int off, int cnt)
    method getCacheTree (line 850) | public DirCacheTree getCacheTree(bool build)
    method writeTree (line 881) | public ObjectId writeTree(ObjectWriter ow)

FILE: GitSharp.Core/DirectoryCache/DirCacheBuildIterator.cs
  class DirCacheBuildIterator (line 72) | public class DirCacheBuildIterator : DirCacheIterator
    method DirCacheBuildIterator (line 87) | public DirCacheBuildIterator(DirCacheBuilder builder)
    method DirCacheBuildIterator (line 106) | DirCacheBuildIterator(DirCacheBuildIterator parentIterator, DirCacheTr...
    method createSubtreeIterator (line 115) | public override AbstractTreeIterator createSubtreeIterator(Repository ...
    method skip (line 126) | public override void skip()
    method stopWalk (line 139) | public override void stopWalk()

FILE: GitSharp.Core/DirectoryCache/DirCacheBuilder.cs
  class DirCacheBuilder (line 59) | public class DirCacheBuilder : BaseDirCacheEditor
    method DirCacheBuilder (line 73) | public DirCacheBuilder(DirCache dc, int ecnt)
    method add (line 89) | public void add(DirCacheEntry newEntry)
    method keep (line 120) | public void keep(int pos, int cnt)
    method addTree (line 156) | public void addTree(byte[] pathPrefix, int stage, Repository db, AnyOb...
    method ToEntry (line 182) | private static DirCacheEntry ToEntry(int stage, TreeWalk.TreeWalk tw)
    method finish (line 191) | public override void finish()
    method BeforeAdd (line 200) | private void BeforeAdd(DirCacheEntry newEntry)
    method Resort (line 231) | private void Resort()
    method Bad (line 263) | private static InvalidOperationException Bad(DirCacheEntry a, string msg)

FILE: GitSharp.Core/DirectoryCache/DirCacheEditor.cs
  class DirCacheEditor (line 56) | public class DirCacheEditor : BaseDirCacheEditor
    method DirCacheEditor (line 77) | public DirCacheEditor(DirCache dirCache, int entryCount)
    method add (line 91) | public void add(PathEdit edit)
    method commit (line 96) | public override bool commit()
    method finish (line 108) | public override void finish()
    method ApplyEdits (line 115) | private void ApplyEdits()
    class PathEdit (line 178) | public abstract class PathEdit
      method PathEdit (line 186) | protected PathEdit(string entryPath)
      method PathEdit (line 198) | protected PathEdit(DirCacheEntry ent)
      method Apply (line 218) | public abstract void Apply(DirCacheEntry ent);
    class DeletePath (line 229) | public class DeletePath : PathEdit
      method DeletePath (line 237) | public DeletePath(string entryPath)
      method DeletePath (line 249) | public DeletePath(DirCacheEntry ent)
      method Apply (line 254) | public override void Apply(DirCacheEntry ent)
    class DeleteTree (line 271) | public class DeleteTree : PathEdit
      method DeleteTree (line 281) | public DeleteTree(string entryPath)
      method Apply (line 286) | public override void Apply(DirCacheEntry ent)

FILE: GitSharp.Core/DirectoryCache/DirCacheEntry.cs
  class DirCacheEntry (line 51) | public class DirCacheEntry
    method DirCacheEntry (line 103) | public DirCacheEntry(byte[] sharedInfo, int infoAt, Stream @in, Messag...
    method DirCacheEntry (line 165) | public DirCacheEntry(string newPath)
    method DirCacheEntry (line 175) | public DirCacheEntry(string newPath, int stage)
    method DirCacheEntry (line 186) | public DirCacheEntry(byte[] newPath)
    method DirCacheEntry (line 198) | public DirCacheEntry(byte[] newPath, int stage)
    method write (line 224) | public void write(Stream os)
    method mightBeRacilyClean (line 258) | public bool mightBeRacilyClean(int smudge_s, int smudge_ns)
    method smudgeRacilyClean (line 284) | public void smudgeRacilyClean()
    method idBuffer (line 302) | public byte[] idBuffer()
    method idOffset (line 307) | public int idOffset()
    method isAssumeValid (line 320) | public bool isAssumeValid()
    method setAssumeValid (line 332) | public void setAssumeValid(bool assume)
    method getStage (line 349) | public int getStage()
    method getRawMode (line 359) | public int getRawMode()
    method getFileMode (line 368) | public FileMode getFileMode()
    method setFileMode (line 377) | public void setFileMode(FileMode mode)
    method getLastModified (line 400) | public long getLastModified()
    method setLastModified (line 411) | public void setLastModified(long when)
    method getLength (line 428) | public int getLength()
    method setLength (line 437) | public void setLength(int sz)
    method getObjectId (line 449) | public ObjectId getObjectId()
    method setObjectId (line 461) | public void setObjectId(AnyObjectId id)
    method setObjectIdFromRaw (line 474) | public void setObjectIdFromRaw(byte[] bs, int p)
    method getPathString (line 492) | public string getPathString()
    method copyMetaData (line 506) | public void copyMetaData(DirCacheEntry src)
    method DecodeTimestamp (line 515) | private long DecodeTimestamp(int pIdx)
    method EncodeTimestamp (line 530) | private void EncodeTimestamp(int pIdx, long when)
    method toString (line 542) | private static String toString(byte[] path)
    method isValidPath (line 547) | public static bool isValidPath(byte[] path)

FILE: GitSharp.Core/DirectoryCache/DirCacheIterator.cs
  class DirCacheIterator (line 56) | public class DirCacheIterator : AbstractTreeIterator
    method DirCacheIterator (line 73) | public DirCacheIterator(DirCache dc)
    method DirCacheIterator (line 87) | public DirCacheIterator(DirCacheIterator parentIterator, DirCacheTree ...
    method createSubtreeIterator (line 103) | public override AbstractTreeIterator createSubtreeIterator(Repository ...
    method createEmptyTreeIterator (line 113) | public override EmptyTreeIterator createEmptyTreeIterator()
    method idBuffer (line 121) | public override byte[] idBuffer()
    method idOffset (line 136) | public override int idOffset()
    method first (line 151) | public override bool first()
    method eof (line 156) | public override bool eof()
    method next (line 161) | public override void next(int delta)
    method back (line 180) | public override void back(int delta)
    method ParseEntry (line 199) | private void ParseEntry()
    method getDirCacheEntry (line 305) | public DirCacheEntry getDirCacheEntry()

FILE: GitSharp.Core/DirectoryCache/DirCacheTree.cs
  class DirCacheTree (line 61) | public class DirCacheTree
    method DirCacheTree (line 114) | public DirCacheTree()
    method DirCacheTree (line 122) | private DirCacheTree(DirCacheTree myParent, byte[] path, int pathOff, ...
    method DirCacheTree (line 132) | public DirCacheTree(byte[] @in, MutableInteger off, DirCacheTree myPar...
    method write (line 195) | public void write(byte[] tmp, TemporaryBuffer os)
    method isValid (line 231) | public bool isValid()
    method getEntrySpan (line 246) | public int getEntrySpan()
    method getChildCount (line 257) | public int getChildCount()
    method getChild (line 267) | public DirCacheTree getChild(int i)
    method getObjectId (line 272) | public ObjectId getObjectId()
    method getNameString (line 288) | public string getNameString()
    method getPathString (line 306) | public string getPathString()
    method writeTree (line 339) | public ObjectId writeTree(DirCacheEntry[] cacheEntry, int cIdx, int pa...
    method ComputeSize (line 384) | private int ComputeSize(DirCacheEntry[] cache, int cIdx, int pathOffse...
    method AppendName (line 429) | private void AppendName(StringBuilder sb)
    method nameLength (line 444) | public int nameLength()
    method contains (line 449) | public bool contains(byte[] a, int aOff, int aLen)
    method validate (line 482) | public void validate(DirCacheEntry[] cache, int cCnt, int cIdx, int pa...
    method InsertChild (line 561) | private void InsertChild(int stIdx, DirCacheTree st)
    method RemoveChild (line 590) | private void RemoveChild(int stIdx)
    method peq (line 600) | internal static bool peq(byte[] a, byte[] b, int aLen)
    method NameComparison (line 612) | private static int NameComparison(byte[] a, int aPos, DirCacheTree ct)
    method Slash (line 637) | private static int Slash(byte[] a, int aPos)

FILE: GitSharp.Core/Ensure.cs
  class Ensure (line 5) | public static class Ensure
    method That (line 7) | public static void That(bool istrue)

FILE: GitSharp.Core/Exceptions/CancelledException.cs
  class CancelledException (line 6) | [Serializable]
    method CancelledException (line 18) | public CancelledException()
    method CancelledException (line 22) | public CancelledException(string message) : base(message)
    method CancelledException (line 26) | public CancelledException(string message, Exception inner) : base(mess...
    method CancelledException (line 30) | protected CancelledException(SerializationInfo info, StreamingContext ...

FILE: GitSharp.Core/Exceptions/CheckoutConflictException.cs
  class CheckoutConflictException (line 8) | [Serializable]
    method CheckoutConflictException (line 14) | public CheckoutConflictException(string file)
    method CheckoutConflictException (line 21) | public CheckoutConflictException(string file, Exception inner)
    method CheckoutConflictException (line 30) | public CheckoutConflictException(IEnumerable<string> files)
    method BuildList (line 35) | private static string BuildList(IEnumerable<string> files)
    method CheckoutConflictException (line 47) | protected CheckoutConflictException(SerializationInfo info, StreamingC...

FILE: GitSharp.Core/Exceptions/CompoundException.cs
  class CompoundException (line 50) | [Serializable]
    method Format (line 55) | private static string Format(IEnumerable<Exception> causes)
    method CompoundException (line 76) | public CompoundException(IEnumerable<Exception> why)
    method CompoundException (line 93) | protected CompoundException(SerializationInfo info, StreamingContext c...

FILE: GitSharp.Core/Exceptions/ConfigInvalidException.cs
  class ConfigInvalidException (line 47) | [Serializable]
    method ConfigInvalidException (line 54) | public ConfigInvalidException(string message)
    method ConfigInvalidException (line 64) | public ConfigInvalidException(string message, Exception inner_exception)
    method ConfigInvalidException (line 69) | protected ConfigInvalidException(SerializationInfo info, StreamingCont...

FILE: GitSharp.Core/Exceptions/CorruptObjectException.cs
  class CorruptObjectException (line 50) | [global::System.Serializable]
    method CorruptObjectException (line 60) | public CorruptObjectException(AnyObjectId id, string message) : base(s...
    method CorruptObjectException (line 61) | public CorruptObjectException(string message) : base(message) { }
    method CorruptObjectException (line 62) | public CorruptObjectException(string message, Exception inner) : base(...
    method CorruptObjectException (line 63) | public CorruptObjectException(AnyObjectId id, string message, Exceptio...
    method CorruptObjectException (line 64) | internal CorruptObjectException(System.Runtime.Serialization.Serializa...

FILE: GitSharp.Core/Exceptions/EntryExistsException.cs
  class EntryExistsException (line 9) | [Serializable]
    method EntryExistsException (line 12) | public EntryExistsException(string name)
    method EntryExistsException (line 17) | public EntryExistsException(string name, Exception inner)
    method EntryExistsException (line 22) | protected EntryExistsException(SerializationInfo info, StreamingContex...

FILE: GitSharp.Core/Exceptions/ExceptionExtensions.cs
  class ExceptionExtensions (line 6) | public static class ExceptionExtensions
    method printStackTrace (line 8) | public static void printStackTrace(this Exception self)
    method FormatPretty (line 13) | public static string FormatPretty(this Exception exception)
    method PrintRecursive (line 21) | private static void PrintRecursive(Exception exception, StringBuilder ...

FILE: GitSharp.Core/Exceptions/FileLockedException.cs
  class FileLockedException (line 9) | [global::System.Serializable]
    method FileLockedException (line 19) | public FileLockedException() { }
    method FileLockedException (line 20) | public FileLockedException(string message) : base(message) { }
    method FileLockedException (line 21) | public FileLockedException(string message, Exception inner) : base(mes...
    method FileLockedException (line 22) | internal FileLockedException(

FILE: GitSharp.Core/Exceptions/GitlinksNotSupportedException.cs
  class GitlinksNotSupportedException (line 51) | [Serializable]
    method GitlinksNotSupportedException (line 62) | public GitlinksNotSupportedException(string s)
    method GitlinksNotSupportedException (line 72) | public GitlinksNotSupportedException(string s, Exception inner)
    method GitlinksNotSupportedException (line 77) | protected GitlinksNotSupportedException(SerializationInfo info, Stream...

FILE: GitSharp.Core/Exceptions/IncorrectObjectTypeException.cs
  class IncorrectObjectTypeException (line 51) | [Serializable]
    method IncorrectObjectTypeException (line 72) | public IncorrectObjectTypeException(ObjectId id, ObjectType type)
    method IncorrectObjectTypeException (line 85) | public IncorrectObjectTypeException(ObjectId id, ObjectType type, Exce...
    method IncorrectObjectTypeException (line 99) | public IncorrectObjectTypeException(ObjectId id, int type)
    method IncorrectObjectTypeException (line 106) | public IncorrectObjectTypeException(ObjectId id, string type, Exceptio...
    method IncorrectObjectTypeException (line 119) | public IncorrectObjectTypeException(ObjectId id, string type)
    method IncorrectObjectTypeException (line 132) | public IncorrectObjectTypeException(ObjectId id, int type, Exception i...
    method IncorrectObjectTypeException (line 135) | protected IncorrectObjectTypeException(

FILE: GitSharp.Core/Exceptions/InvalidObjectIdException.cs
  class InvalidObjectIdException (line 52) | [Serializable]
    method InvalidObjectIdException (line 61) | public InvalidObjectIdException(byte[] bytes, int offset, int length)
    method InvalidObjectIdException (line 73) | public InvalidObjectIdException(byte[] bytes, int offset, int length, ...
    method AsAscii (line 78) | private static string AsAscii(byte[] bytes, int offset, int length)
    method InvalidObjectIdException (line 94) | protected InvalidObjectIdException(SerializationInfo info, StreamingCo...

FILE: GitSharp.Core/Exceptions/InvalidPackException.cs
  class PackInvalidException (line 47) | [global::System.Serializable]
    method PackInvalidException (line 57) | public PackInvalidException(ObjectId id, string message) : base(string...
    method PackInvalidException (line 58) | public PackInvalidException(string message) : base(message) { }
    method PackInvalidException (line 59) | public PackInvalidException(string message, Exception inner) : base(me...
    method PackInvalidException (line 60) | public PackInvalidException(ObjectId id, string message, Exception inn...
    method PackInvalidException (line 61) | internal PackInvalidException(System.Runtime.Serialization.Serializati...

FILE: GitSharp.Core/Exceptions/InvalidPatternException.cs
  class InvalidPatternException (line 44) | [Serializable]
    method InvalidPatternException (line 55) | public InvalidPatternException(string pattern)
    method InvalidPatternException (line 60) | public InvalidPatternException(string message, string pattern)
    method InvalidPatternException (line 66) | public InvalidPatternException(string message, Exception inner)
    method InvalidPatternException (line 71) | public InvalidPatternException(string message, string pattern, Excepti...
    method InvalidPatternException (line 77) | protected InvalidPatternException(SerializationInfo info, StreamingCon...

FILE: GitSharp.Core/Exceptions/MissingBundlePrerequisiteException.cs
  class MissingBundlePrerequisiteException (line 48) | [Serializable]
    method format (line 53) | private static string format(IDictionary<ObjectId, string> missingComm...
    method MissingBundlePrerequisiteException (line 75) | public MissingBundlePrerequisiteException(URIish uri, IDictionary<Obje...
    method MissingBundlePrerequisiteException (line 80) | public MissingBundlePrerequisiteException(URIish uri, IDictionary<Obje...
    method MissingBundlePrerequisiteException (line 85) | protected MissingBundlePrerequisiteException(SerializationInfo info, S...

FILE: GitSharp.Core/Exceptions/MissingObjectException.cs
  class MissingObjectException (line 49) | [Serializable]
    method MissingObjectException (line 58) | public MissingObjectException(ObjectId id, ObjectType type)
    method MissingObjectException (line 69) | public MissingObjectException(ObjectId id, string type)
    method MissingObjectException (line 80) | public MissingObjectException(ObjectId id, int type)
    method MissingObjectException (line 92) | public MissingObjectException(ObjectId id, ObjectType type, Exception ...
    method MissingObjectException (line 104) | public MissingObjectException(ObjectId id, string type, Exception inner)
    method MissingObjectException (line 116) | public MissingObjectException(ObjectId id, int type, Exception inner)
    method MissingObjectException (line 121) | protected MissingObjectException(SerializationInfo info, StreamingCont...

FILE: GitSharp.Core/Exceptions/NoClosingBracketException.cs
  class NoClosingBracketException (line 44) | [Serializable]
    method NoClosingBracketException (line 54) | public NoClosingBracketException(int indexOfOpeningBracket, string ope...
    method NoClosingBracketException (line 59) | public NoClosingBracketException(int indexOfOpeningBracket, string ope...
    method CreateMessage (line 64) | private static string CreateMessage(int indexOfOpeningBracket, string ...
    method NoClosingBracketException (line 69) | protected NoClosingBracketException(SerializationInfo info, StreamingC...

FILE: GitSharp.Core/Exceptions/NoRemoteRepositoryException.cs
  class NoRemoteRepositoryException (line 44) | [Serializable]
    method NoRemoteRepositoryException (line 49) | public NoRemoteRepositoryException(URIish uri, string s)
    method NoRemoteRepositoryException (line 54) | public NoRemoteRepositoryException(URIish uri, string s, Exception inner)
    method NoRemoteRepositoryException (line 59) | protected NoRemoteRepositoryException(SerializationInfo info, Streamin...

FILE: GitSharp.Core/Exceptions/ObjectWritingException.cs
  class ObjectWritingException (line 48) | [global::System.Serializable]
    method ObjectWritingException (line 58) | public ObjectWritingException() { }
    method ObjectWritingException (line 59) | public ObjectWritingException(string message) : base(message) { }
    method ObjectWritingException (line 60) | public ObjectWritingException(string message, Exception inner) : base(...
    method ObjectWritingException (line 61) | internal ObjectWritingException(

FILE: GitSharp.Core/Exceptions/PackMismatchException.cs
  class PackMismatchException (line 47) | [global::System.Serializable]
    method PackMismatchException (line 57) | public PackMismatchException(ObjectId id, string message) : base(strin...
    method PackMismatchException (line 58) | public PackMismatchException(string message) : base(message) { }
    method PackMismatchException (line 59) | public PackMismatchException(string message, Exception inner) : base(m...
    method PackMismatchException (line 60) | public PackMismatchException(ObjectId id, string message, Exception in...
    method PackMismatchException (line 61) | internal PackMismatchException(System.Runtime.Serialization.Serializat...

FILE: GitSharp.Core/Exceptions/PackProtocolException.cs
  class PackProtocolException (line 45) | [Serializable]
    method PackProtocolException (line 48) | public PackProtocolException(URIish uri, string s)
    method PackProtocolException (line 53) | public PackProtocolException(URIish uri, string s, Exception cause)
    method PackProtocolException (line 58) | public PackProtocolException(string s)
    method PackProtocolException (line 63) | public PackProtocolException(string s, Exception cause)
    method PackProtocolException (line 68) | protected PackProtocolException(SerializationInfo info, StreamingConte...

FILE: GitSharp.Core/Exceptions/RepositoryNotFoundException.cs
  class RepositoryNotFoundException (line 48) | [Serializable]
    method RepositoryNotFoundException (line 59) | public RepositoryNotFoundException(DirectoryInfo location)
    method RepositoryNotFoundException (line 70) | public RepositoryNotFoundException(string location)
    method RepositoryNotFoundException (line 80) | public RepositoryNotFoundException(DirectoryInfo location, Exception i...
    method RepositoryNotFoundException (line 90) | public RepositoryNotFoundException(string location, Exception inner)
    method RepositoryNotFoundException (line 95) | protected RepositoryNotFoundException(SerializationInfo info, Streamin...

FILE: GitSharp.Core/Exceptions/RevWalkException.cs
  class RevWalkException (line 54) | [Serializable]
    method RevWalkException (line 61) | public RevWalkException(Exception cause)
    method RevWalkException (line 66) | protected RevWalkException(SerializationInfo info, StreamingContext co...

FILE: GitSharp.Core/Exceptions/RevisionSyntaxException.cs
  class RevisionSyntaxException (line 47) | [global::System.Serializable]
    method RevisionSyntaxException (line 57) | public RevisionSyntaxException(string revstr)
    method RevisionSyntaxException (line 62) | public RevisionSyntaxException(string revstr, string message)
    method RevisionSyntaxException (line 69) | public RevisionSyntaxException(string message, Exception inner) : base...
    method RevisionSyntaxException (line 70) | internal RevisionSyntaxException(
    method ToString (line 75) | public override string ToString()

FILE: GitSharp.Core/Exceptions/StopWalkException.cs
  class StopWalkException (line 50) | [Serializable]
    method StopWalkException (line 57) | private StopWalkException()
    method StopWalkException (line 62) | protected StopWalkException(SerializationInfo info, StreamingContext c...

FILE: GitSharp.Core/Exceptions/SymlinksNotSupportedException.cs
  class SymlinksNotSupportedException (line 47) | [global::System.Serializable]
    method SymlinksNotSupportedException (line 57) | public SymlinksNotSupportedException() { }
    method SymlinksNotSupportedException (line 58) | public SymlinksNotSupportedException(string message) : base(message) { }
    method SymlinksNotSupportedException (line 59) | public SymlinksNotSupportedException(string message, Exception inner) ...
    method SymlinksNotSupportedException (line 60) | internal SymlinksNotSupportedException(

FILE: GitSharp.Core/Exceptions/TransportException.cs
  class TransportException (line 46) | [Serializable]
    method TransportException (line 49) | public TransportException(URIish uri, string s)
    method TransportException (line 54) | public TransportException(URIish uri, string s, Exception cause)
    method TransportException (line 59) | public TransportException(string s) : base(s)
    method TransportException (line 63) | public TransportException(string s, Exception cause)
    method TransportException (line 68) | protected TransportException(SerializationInfo info, StreamingContext ...

FILE: GitSharp.Core/Exceptions/UnmergedPathException.cs
  class UnmergedPathException (line 49) | [Serializable]
    method UnmergedPathException (line 58) | public UnmergedPathException(DirCacheEntry entry)
    method UnmergedPathException (line 69) | public UnmergedPathException(DirCacheEntry entry, Exception inner)
    method UnmergedPathException (line 84) | protected UnmergedPathException(SerializationInfo info, StreamingConte...

FILE: GitSharp.Core/FileBasedConfig.cs
  class FileBasedConfig (line 49) | public class FileBasedConfig : Config
    method FileBasedConfig (line 53) | public FileBasedConfig(FileInfo cfgLocation)
    method FileBasedConfig (line 59) | public FileBasedConfig(Config @base, FileInfo cfgLocation)
    method getFile (line 65) | public FileInfo getFile()
    method load (line 70) | public virtual void load()
    method save (line 95) | public void save()
    method ToString (line 109) | public override string ToString()

FILE: GitSharp.Core/FileMode.cs
  class FileMode (line 47) | public class FileMode : IEquatable<FileMode>
    method FromBits (line 113) | public static FileMode FromBits(int bits)
    method FileMode (line 142) | private FileMode(int mode, ObjectType type, Func<int, bool> equalityFu...
    method CopyTo (line 182) | public void CopyTo(Stream stream)
    method copyToLength (line 188) | public int copyToLength()
    method Equals (line 193) | public bool Equals(FileMode other)
    method Equals (line 200) | public override bool Equals(object obj)
    method GetHashCode (line 209) | public override int GetHashCode()

FILE: GitSharp.Core/FileTreeEntry.cs
  class FileTreeEntry (line 44) | public class FileTreeEntry : TreeEntry
    method FileTreeEntry (line 46) | public FileTreeEntry(Tree parent, ObjectId id, byte[] nameUTF8, bool e...
    method Accept (line 58) | public override void Accept(TreeVisitor tv, int flags)
    method SetExecutable (line 74) | public void SetExecutable(bool execute)
    method OpenReader (line 79) | public ObjectLoader OpenReader()
    method ToString (line 84) | public override string ToString()

FILE: GitSharp.Core/FnMatch/AbstractHead.cs
  class AbstractHead (line 44) | internal abstract class AbstractHead : IHead
    method matches (line 50) | protected internal abstract bool matches(char c);
    method AbstractHead (line 52) | protected AbstractHead(bool star)
    method setNewHeads (line 60) | public void setNewHeads(IList<IHead> newHeads)
    method GetNextHeads (line 70) | public virtual IList<IHead> GetNextHeads(char c)

FILE: GitSharp.Core/FnMatch/CharacterHead.cs
  class CharacterHead (line 41) | internal class CharacterHead : AbstractHead
    method CharacterHead (line 45) | public CharacterHead(char expectedChar)
    method matches (line 51) | protected internal override bool matches(char c)

FILE: GitSharp.Core/FnMatch/FileNameMatcher.cs
  class FileNameMatcher (line 74) | public sealed class FileNameMatcher
    method FileNameMatcher (line 96) | private FileNameMatcher(IList<IHead> headsStartValue)
    method FileNameMatcher (line 105) | private FileNameMatcher(IList<IHead> headsStartValue, ICollection<IHea...
    method FileNameMatcher (line 123) | public FileNameMatcher(string patternString, char? invalidWildgetChara...
    method FileNameMatcher (line 135) | public FileNameMatcher(FileNameMatcher other)
    method CreateHeadsStartValues (line 142) | private static IList<IHead> CreateHeadsStartValues(string patternStrin...
    method FindGroupEnd (line 170) | private static int FindGroupEnd(int indexOfStartBracket, string pattern)
    method ParseHeads (line 225) | private static IList<AbstractHead> ParseHeads(string pattern, char? in...
    method CreateSimpleHeads (line 259) | private static IList<AbstractHead> CreateSimpleHeads(string patternPar...
    method CreateWildCardHead (line 290) | private static AbstractHead CreateWildCardHead(char? invalidWildgetCha...
    method ExtendStringToMatchByOneCharacter (line 300) | private void ExtendStringToMatchByOneCharacter(char c)
    method Append (line 331) | public void Append(string stringToMatch)
    method Reset (line 346) | public void Reset()
    method CreateMatcherForSuffix (line 359) | public FileNameMatcher CreateMatcherForSuffix()
    method IsMatch (line 371) | public bool IsMatch()
    method CanAppendMatch (line 391) | public bool CanAppendMatch()

FILE: GitSharp.Core/FnMatch/GroupHead.cs
  class GroupHead (line 46) | internal sealed class GroupHead : AbstractHead
    method GroupHead (line 54) | internal GroupHead(string pattern, string wholePattern)
    method matches (line 158) | protected internal override bool matches(char c)
    type ICharacterPattern (line 170) | private interface ICharacterPattern
      method Matches (line 177) | bool Matches(char c);
    class CharacterRange (line 180) | private sealed class CharacterRange : ICharacterPattern
      method CharacterRange (line 185) | internal CharacterRange(char start, char end)
      method Matches (line 191) | public bool Matches(char c)
    class DigitPattern (line 197) | private sealed class DigitPattern : ICharacterPattern
      method Matches (line 201) | public bool Matches(char c)
    class LetterPattern (line 207) | private sealed class LetterPattern : ICharacterPattern
      method Matches (line 211) | public bool Matches(char c)
    class LowerPattern (line 217) | private sealed class LowerPattern : ICharacterPattern
      method Matches (line 221) | public bool Matches(char c)
    class UpperPattern (line 227) | private sealed class UpperPattern : ICharacterPattern
      method Matches (line 231) | public bool Matches(char c)
    class WhitespacePattern (line 237) | private sealed class WhitespacePattern : ICharacterPattern
      method Matches (line 241) | public bool Matches(char c)
    class OneCharacterPattern (line 247) | private sealed class OneCharacterPattern : ICharacterPattern
      method OneCharacterPattern (line 251) | internal OneCharacterPattern(char c)
      method Matches (line 256) | public bool Matches(char c)
    class PunctPattern (line 262) | private sealed class PunctPattern : ICharacterPattern
      method Matches (line 268) | public bool Matches(char c)

FILE: GitSharp.Core/FnMatch/IHead.cs
  type IHead (line 43) | public interface IHead
    method GetNextHeads (line 50) | IList<IHead> GetNextHeads(char c);

FILE: GitSharp.Core/FnMatch/LastHead.cs
  class LastHead (line 43) | internal sealed class LastHead : IHead
    method LastHead (line 50) | private LastHead()
    method GetNextHeads (line 54) | public IList<IHead> GetNextHeads(char c)

FILE: GitSharp.Core/FnMatch/RestrictedWildCardHead.cs
  class RestrictedWildCardHead (line 41) | internal sealed class RestrictedWildCardHead : AbstractHead
    method RestrictedWildCardHead (line 45) | internal RestrictedWildCardHead(char excludedCharacter, bool star)
    method matches (line 51) | protected internal override bool matches(char c)

FILE: GitSharp.Core/FnMatch/WildCardHead.cs
  class WildCardHead (line 41) | internal sealed class WildCardHead : AbstractHead
    method WildCardHead (line 43) | internal WildCardHead(bool star)
    method matches (line 48) | protected internal override bool matches(char c)

FILE: GitSharp.Core/ForceModified.cs
  class ForceModified (line 42) | public class ForceModified : TreeVisitor
    method StartVisitTree (line 44) | public void StartVisitTree(Tree t)
    method EndVisitTree (line 49) | public void EndVisitTree(Tree t)
    method VisitFile (line 54) | public void VisitFile(FileTreeEntry f)
    method VisitGitlink (line 59) | public void VisitGitlink(GitLinkTreeEntry e)
    method VisitSymlink (line 64) | public void VisitSymlink(SymlinkTreeEntry s)

FILE: GitSharp.Core/GitException.cs
  class GitException (line 5) | [Serializable]
    method GitException (line 15) | public GitException() { }
    method GitException (line 16) | public GitException(string message) : base(message) { }
    method GitException (line 17) | public GitException(string message, Exception inner) : base(message, i...
    method GitException (line 18) | internal GitException(

FILE: GitSharp.Core/GitIndex.cs
  class GitIndex (line 77) | public class GitIndex
    method GitIndex (line 107) | public GitIndex(Repository db)
    method RereadIfNecessary (line 146) | public void RereadIfNecessary()
    method add (line 163) | public Entry add(FileSystemInfo wd, FileInfo f)
    method add (line 176) | public Entry add(FileSystemInfo wd, FileInfo f, byte[] content)
    method add (line 200) | public Entry add(byte[] relative_filename, byte[] content)
    method Remove (line 218) | public bool Remove(string relative_file_path)
    method remove (line 233) | public bool remove(FileSystemInfo wd, FileSystemInfo f)
    method Read (line 243) | public void Read()
    method write (line 278) | public void write()
    method CheckWriteOk (line 375) | private void CheckWriteOk()
    method FileCanExecute (line 387) | private static bool FileCanExecute(FileSystemInfo f)
    method FileSetExecute (line 392) | private static bool FileSetExecute(FileInfo f, bool @value)
    method FileHasExecute (line 397) | private static bool FileHasExecute()
    method MakeKey (line 402) | private byte[] MakeKey(FileSystemInfo wd, FileSystemInfo f)
    method ConfigFilemode (line 415) | private static bool ConfigFilemode(Repository repository)
    method ReadTree (line 433) | public void ReadTree(Tree t)
    method ReadTree (line 439) | private void ReadTree(string prefix, Tree t)
    method addEntry (line 473) | public Entry addEntry(TreeEntry te)
    method checkout (line 486) | public void checkout(FileSystemInfo workDir)
    method checkoutEntry (line 505) | public void checkoutEntry(FileSystemInfo workDir, Entry e)
    method writeTree (line 549) | public ObjectId writeTree()
    method SplitDirPath (line 608) | internal string[] SplitDirPath(string name)
    method LongestCommonPath (line 629) | internal int LongestCommonPath(string[] a, string[] b)
    method GetEntry (line 649) | public Entry GetEntry(string path)
    class ByteVectorComparer (line 659) | private class ByteVectorComparer : IComparer<byte[]>
      method Compare (line 663) | public int Compare(byte[] x, byte[] y)
    class Entry (line 697) | public class Entry
      method Entry (line 708) | internal Entry(Repository repository, byte[] key, FileInfo f, int st...
      method Entry (line 713) | internal Entry(Repository repository, byte[] key, FileInfo f, int st...
      method Entry (line 749) | internal Entry(Repository repository, TreeEntry f, int stage)
      method Entry (line 773) | internal Entry(Repository repository, EndianBinaryReader b)
      method Entry (line 793) | private Entry(Repository repository)
      method update (line 838) | public bool update(FileInfo f)
      method update (line 879) | public bool update(FileInfo f, byte[] newContent) //[henon] TODO: re...
      method Write (line 895) | internal void Write(MemoryStream buf)
      method IsModified (line 957) | public bool IsModified(DirectoryInfo wd)
      method IsModified (line 975) | public bool IsModified(DirectoryInfo wd, bool forceContentCheck)
      method forceRecheck (line 1094) | internal void forceRecheck()
      method getFile (line 1099) | private FileInfo getFile(DirectoryInfo wd)
      method ToString (line 1104) | public override string ToString()
      method isAssumedValid (line 1121) | public bool isAssumedValid()
      method isUpdateNeeded (line 1127) | public bool isUpdateNeeded()
      method setAssumeValid (line 1136) | public void setAssumeValid(bool assumeValid)
      method setUpdateNeeded (line 1152) | public void setUpdateNeeded(bool updateNeeded)
      method getModeBits (line 1168) | public int getModeBits()
    class Header (line 1178) | private class Header
      method Header (line 1183) | internal Header(EndianBinaryReader map)
      method Header (line 1188) | internal Header(ICollection entryset)
      method Read (line 1197) | private void Read(EndianBinaryReader buf)
      method Write (line 1214) | internal void Write(Stream buf)

FILE: GitSharp.Core/GitlinkTreeEntry.cs
  class GitLinkTreeEntry (line 44) | public class GitLinkTreeEntry : TreeEntry
    method GitLinkTreeEntry (line 46) | public GitLinkTreeEntry(Tree parent, ObjectId id, byte[] nameUTF8)
    method Accept (line 56) | public override void Accept(TreeVisitor tv, int flags)
    method ToString (line 69) | public override string ToString()

FILE: GitSharp.Core/IgnoreHandler.cs
  type IPattern (line 47) | public interface IPattern
    method IsIgnored (line 49) | bool IsIgnored(string path);
  class IgnoreHandler (line 52) | public class IgnoreHandler
    method IgnoreHandler (line 59) | public IgnoreHandler(Repository repo)
    method GetPathDirectories (line 91) | private static List<string> GetPathDirectories(string path)
    method LoadDirectoryPatterns (line 109) | private void LoadDirectoryPatterns(IEnumerable<string> dirs)
    method ReadPatternsFromFile (line 126) | private static void ReadPatternsFromFile(string path, ICollection<IPat...
    method IsIgnored (line 146) | private static bool IsIgnored(string path, IEnumerable<IPattern> patte...
    method AddCommandLinePattern (line 157) | public void AddCommandLinePattern(string pattern)
    method IsIgnored (line 167) | public bool IsIgnored(string path)
    method AddPattern (line 186) | private static void AddPattern(string line, ICollection<IPattern> to)
    class FnMatchPattern (line 206) | private class FnMatchPattern : IPattern
      method FnMatchPattern (line 210) | public FnMatchPattern(string line)
      method IsIgnored (line 215) | public bool IsIgnored(string path)
    class NegatedPattern (line 223) | private class NegatedPattern : IPattern
      method NegatedPattern (line 227) | public NegatedPattern(IPattern pattern)
      method IsIgnored (line 232) | public bool IsIgnored(string path)

FILE: GitSharp.Core/IndexChangedEventArgs.cs
  class IndexChangedEventArgs (line 42) | public class IndexChangedEventArgs : RepositoryChangedEventArgs
    method IndexChangedEventArgs (line 44) | public IndexChangedEventArgs(Repository repo)
    method ToString (line 49) | public override string ToString()

FILE: GitSharp.Core/IndexDiff.cs
  class IndexDiff (line 46) | [Complete]
    method IndexDiff (line 57) | public IndexDiff(Repository repository)
    method IndexDiff (line 67) | public IndexDiff(Tree tree, GitIndex index)
    method Diff (line 86) | public bool Diff()
    method CheckUntrackedDirectory (line 150) | private void CheckUntrackedDirectory(string path, string relative_path)
    method CheckUntrackedFile (line 167) | private void CheckUntrackedFile(FileInfo f, string relative_path)

FILE: GitSharp.Core/IndexTreeVisitor.cs
  type IndexTreeVisitor (line 54) | public interface IndexTreeVisitor
    method VisitEntry (line 63) | void VisitEntry(TreeEntry treeEntry, GitIndex.Entry indexEntry, FileIn...
    method VisitEntry (line 73) | void VisitEntry(TreeEntry treeEntry, TreeEntry auxEntry, GitIndex.Entr...
    method FinishVisitTree (line 82) | void FinishVisitTree(Tree tree, Tree auxTree, string curDir);
    method FinishVisitTree (line 91) | void FinishVisitTree(Tree tree, int i, string curDir);

FILE: GitSharp.Core/IndexTreeWalker.cs
  class IndexTreeWalker (line 48) | public class IndexTreeWalker
    method IndexTreeWalker (line 59) | public IndexTreeWalker(GitIndex index, Tree mainTree, FileSystemInfo r...
    method IndexTreeWalker (line 64) | public IndexTreeWalker(GitIndex index, Tree mainTree, Tree newTree, Fi...
    method Compare (line 77) | private static int Compare(TreeEntry t, GitIndex.Entry i)
    method Compare (line 94) | private static int Compare(TreeEntry t1, TreeEntry t2)
    method eq (line 123) | private static bool eq(TreeEntry t1, GitIndex.Entry e)
    method eq (line 128) | private static bool eq(TreeEntry t1, TreeEntry t2)
    method FinishVisitTree (line 133) | private void FinishVisitTree(TreeEntry t1, TreeEntry t2, int curIndexPos)
    method lt (line 178) | private static bool lt(GitIndex.Entry i, TreeEntry t)
    method lt (line 183) | private static bool lt(TreeEntry h, GitIndex.Entry i)
    method lt (line 188) | private static bool lt(TreeEntry h, TreeEntry m)
    method VisitEntry (line 193) | private void VisitEntry(TreeEntry t1, TreeEntry t2, GitIndex.Entry i)
    method Walk (line 231) | public virtual void Walk()
    method Walk (line 236) | private void Walk(Tree tree, Tree auxTree)

FILE: GitSharp.Core/InflaterCache.cs
  class InflaterCache (line 50) | public class InflaterCache
    method InflaterCache (line 61) | private InflaterCache()
    method get (line 84) | public Inflater get()
    method getImpl (line 90) | private Inflater getImpl()
    method release (line 111) | public void release(Inflater i)
    method releaseImpl (line 120) | private static bool releaseImpl(Inflater i)

FILE: GitSharp.Core/LockFile.cs
  class LockFile (line 59) | public class LockFile : IDisposable
    method LockFile (line 80) | public LockFile(FileInfo file)
    method Lock (line 99) | public bool Lock()
    method LockForAppend (line 150) | public bool LockForAppend()
    method CopyCurrentContent (line 179) | public void CopyCurrentContent()
    method Write (line 212) | public void Write(ObjectId id)
    method Write (line 241) | public void Write(byte[] content)
    method GetOutputStream (line 269) | public Stream GetOutputStream()
    method RequireLock (line 275) | private void RequireLock()
    method setNeedStatInformation (line 288) | public void setNeedStatInformation(bool on)
    method waitForStatChange (line 300) | public void waitForStatChange()
    method Commit (line 327) | public bool Commit()
    method SaveStatInformation (line 350) | private void SaveStatInformation()
    method Unlock (line 364) | public void Unlock()
    method Dispose (line 398) | public void Dispose()
    class LockFileOutputStream (line 409) | public class LockFileOutputStream : Stream
      method LockFileOutputStream (line 413) | public LockFileOutputStream(LockFile lockfile)
      method Write (line 418) | public override void Write(byte[] buffer, int offset, int count)
      method write (line 423) | public void write(byte[] b)
      method write (line 428) | public void write(int b)
      method Flush (line 433) | public override void Flush()
      method Close (line 438) | public override void Close()
      method Read (line 486) | public override int Read(byte[] buffer, int offset, int count)
      method Seek (line 491) | public override long Seek(long offset, SeekOrigin origin)
      method SetLength (line 496) | public override void SetLength(long value)
    class FileLock (line 505) | public class FileLock : IDisposable
      method FileLock (line 511) | private FileLock(FileStream fs, string file)
      method TryLock (line 519) | public static FileLock TryLock(FileStream fs, FileInfo file)
      method Dispose (line 533) | public void Dispose()
      method Release (line 538) | public void Release()

FILE: GitSharp.Core/Merge/MergeAlgorithm.cs
  class MergeAlgorithm (line 49) | public class MergeAlgorithm
    method MergeAlgorithm (line 56) | private MergeAlgorithm()
    method merge (line 72) | public static MergeResult merge(Sequence @base, Sequence ours,
    method nextEdit (line 237) | private static Edit nextEdit(IteratorBase<Edit> it)

FILE: GitSharp.Core/Merge/MergeChunk.cs
  class MergeChunk (line 45) | public class MergeChunk
    type ConflictState (line 53) | public enum ConflictState
    method MergeChunk (line 90) | public MergeChunk(int sequenceIndex, int begin, int end,
    method getSequenceIndex (line 100) | public int getSequenceIndex()
    method getBegin (line 106) | public int getBegin()
    method getEnd (line 115) | public int getEnd()
    method getConflictState (line 121) | public ConflictState getConflictState()

FILE: GitSharp.Core/Merge/MergeFormatter.cs
  class MergeFormatter (line 50) | public class MergeFormatter
    method formatMerge (line 71) | public void formatMerge(BinaryWriter @out, MergeResult res,
    method formatMerge (line 144) | public void formatMerge(BinaryWriter @out, MergeResult res, String bas...

FILE: GitSharp.Core/Merge/MergeResult.cs
  class MergeResult (line 61) | public class MergeResult
    method GetEnumerator (line 63) | public IEnumerator<MergeChunk> GetEnumerator()
    method MergeResult (line 82) | public MergeResult(List<Sequence> sequences)
    method add (line 111) | public void add(int srcIdx, int begin, int end, MergeChunk.ConflictSta...
    method getSequences (line 129) | public List<Sequence> getSequences()
    method iterator (line 135) | public MergeChunkIterator iterator()
    method containsConflicts (line 141) | public bool containsConflicts()
    class MergeChunkIterator (line 146) | public class MergeChunkIterator : IteratorBase<MergeChunk>
      method MergeChunkIterator (line 151) | public MergeChunkIterator(MergeResult mergeResult)
      method hasNext (line 156) | public override  bool hasNext()
      method InnerNext (line 161) | protected override MergeChunk InnerNext()

FILE: GitSharp.Core/Merge/MergeStrategy.cs
  class MergeStrategy (line 52) | public abstract class MergeStrategy
    method MergeStrategy (line 73) | static MergeStrategy()
    method Register (line 87) | public static void Register(MergeStrategy imp)
    method Register (line 104) | public static void Register(string name, MergeStrategy imp)
    method Get (line 124) | public static MergeStrategy Get(string name)
    method Get (line 140) | public static MergeStrategy[] Get()
    method NewMerger (line 162) | public abstract Merger NewMerger(Repository db);

FILE: GitSharp.Core/Merge/Merger.cs
  class Merger (line 51) | public abstract class Merger : IDisposable
    method Merger (line 65) | protected Merger(Repository local)
    method GetObjectWriter (line 112) | protected ObjectWriter GetObjectWriter()
    method Merge (line 143) | public virtual bool Merge(AnyObjectId[] tips)
    method MergeBase (line 188) | protected AbstractTreeIterator MergeBase(int aIdx, int bIdx)
    method OpenTree (line 232) | protected AbstractTreeIterator OpenTree(AnyObjectId treeId)
    method MergeImpl (line 262) | protected abstract bool MergeImpl();
    method GetResultTreeId (line 270) | public abstract ObjectId GetResultTreeId();
    method Dispose (line 272) | public void Dispose ()

FILE: GitSharp.Core/Merge/StrategyOneSided.cs
  class StrategyOneSided (line 50) | public class StrategyOneSided : MergeStrategy
    method StrategyOneSided (line 62) | public StrategyOneSided(string name, int index)
    method NewMerger (line 73) | public override Merger NewMerger(Repository db)
    class OneSide (line 80) | private class OneSide : Merger
      method OneSide (line 84) | public OneSide(Repository local, int index)
      method MergeImpl (line 90) | protected override bool MergeImpl()
      method GetResultTreeId (line 95) | public override ObjectId GetResultTreeId()

FILE: GitSharp.Core/Merge/StrategySimpleTwoWayInCore.cs
  class StrategySimpleTwoWayInCore (line 56) | public class StrategySimpleTwoWayInCore : ThreeWayMergeStrategy
    method NewMerger (line 63) | public override Merger NewMerger(Repository db)
    class InCoreMerger (line 70) | private class InCoreMerger : ThreeWayMerger
      method InCoreMerger (line 81) | public InCoreMerger(Repository local)
      method MergeImpl (line 88) | protected override bool MergeImpl()
      method NonTree (line 157) | private static bool NonTree(int mode)
      method Add (line 162) | private void Add(int tree, int stage)
      method GetTree (line 180) | private AbstractTreeIterator GetTree(int tree)
      method GetResultTreeId (line 185) | public override ObjectId GetResultTreeId()

FILE: GitSharp.Core/Merge/ThreeWayMergeStrategy.cs
  class ThreeWayMergeStrategy (line 44) | public abstract class ThreeWayMergeStrategy : MergeStrategy
    method NewMerger (line 46) | public override abstract Merger NewMerger(Repository db);

FILE: GitSharp.Core/Merge/ThreeWayMerger.cs
  class ThreeWayMerger (line 49) | public abstract class ThreeWayMerger : Merger
    method ThreeWayMerger (line 59) | protected ThreeWayMerger(Repository local)
    method SetBase (line 81) | public void SetBase(AnyObjectId id)
    method Merge (line 107) | public bool Merge(AnyObjectId a, AnyObjectId b)
    method Merge (line 112) | public override bool Merge(AnyObjectId[] tips)
    method MergeBase (line 128) | protected AbstractTreeIterator MergeBase()

FILE: GitSharp.Core/MutableObjectId.cs
  class MutableObjectId (line 47) | public class MutableObjectId : AnyObjectId
    method MutableObjectId (line 49) | public MutableObjectId()
    method MutableObjectId (line 54) | public MutableObjectId(AnyObjectId src)
    method Clear (line 62) | public void Clear()
    method FromRaw (line 71) | public void FromRaw(byte[] bs)
    method FromRaw (line 76) | public void FromRaw(byte[] bs, int p)
    method FromRaw (line 85) | public void FromRaw(int[] ints)
    method FromRaw (line 90) | public void FromRaw(int[] ints, int p)
    method FromString (line 99) | public void FromString(byte[] buf, int offset)
    method FromString (line 104) | public void FromString(string str)
    method FromHexString (line 114) | private void FromHexString(byte[] bs, int p)
    method ToObjectId (line 130) | public override ObjectId ToObjectId()

FILE: GitSharp.Core/NullProgressMonitor.cs
  class NullProgressMonitor (line 42) | [Complete]
    method Start (line 49) | public override void Start(int totalTasks)
    method BeginTask (line 53) | public override void BeginTask(string title, int totalWork)
    method Update (line 57) | public override void Update(int completed)
    method EndTask (line 61) | public override void EndTask()

FILE: GitSharp.Core/ObjectChecker.cs
  class ObjectChecker (line 59) | public class ObjectChecker
    method check (line 105) | public void check(int objType, byte[] raw)
    method id (line 130) | private int id(byte[] raw, int ptr)
    method personIdent (line 143) | private int personIdent(byte[] raw, int ptr)
    method checkCommit (line 173) | public void checkCommit(byte[] raw)
    method checkTag (line 205) | public void checkTag(byte[] raw)
    method lastPathChar (line 229) | private static int lastPathChar(int mode)
    method pathCompare (line 234) | private static int pathCompare(byte[] raw, int aPos, int aEnd, int aMo...
    method duplicateName (line 250) | private static bool duplicateName(byte[] raw, int thisNamePos, int thi...
    method checkTree (line 295) | public void checkTree(byte[] raw)
    method checkBlob (line 369) | public void checkBlob(byte[] raw)

FILE: GitSharp.Core/ObjectDatabase.cs
  class ObjectDatabase (line 60) | public abstract class ObjectDatabase : IDisposable
    method ObjectDatabase (line 72) | protected ObjectDatabase()
    method exists (line 84) | public virtual bool exists()
    method create (line 92) | public virtual void create()
    method Dispose (line 97) | public virtual void Dispose()
    method close (line 105) | public void close()
    method closeSelf (line 127) | public virtual void closeSelf()
    method closeAlternates (line 135) | public virtual void closeAlternates()
    method hasObject (line 155) | public bool hasObject(AnyObjectId objectId)
    method hasObjectImpl1 (line 160) | private bool hasObjectImpl1(AnyObjectId objectId)
    method hasObjectImpl2 (line 176) | private bool hasObjectImpl2(string objectId)
    method hasObject1 (line 201) | public abstract bool hasObject1(AnyObjectId objectId);
    method hasObject2 (line 212) | public virtual bool hasObject2(string objectName)
    method openObject (line 231) | public ObjectLoader openObject(WindowCursor curs, AnyObjectId objectId)
    method OpenObjectImpl1 (line 249) | private ObjectLoader OpenObjectImpl1(WindowCursor curs,
    method OpenObjectImpl2 (line 279) | private ObjectLoader OpenObjectImpl2(WindowCursor curs, string objectN...
    method openObject1 (line 310) | public abstract ObjectLoader openObject1(WindowCursor curs,
    method openObject2 (line 325) | public virtual ObjectLoader openObject2(WindowCursor curs, string obje...
    method OpenObjectInAllPacks (line 345) | public virtual void OpenObjectInAllPacks(ICollection<PackedObjectLoade...
    method OpenObjectInAllPacksImplementation (line 367) | public virtual void OpenObjectInAllPacksImplementation(ICollection<Pac...
    method tryAgain1 (line 376) | public virtual bool tryAgain1()
    method getAlternates (line 387) | public ObjectDatabase[] getAlternates()
    method loadAlternates (line 429) | protected virtual ObjectDatabase[] loadAlternates()
    method closeAlternates (line 438) | protected void closeAlternates(ObjectDatabase[] alt)
    method newCachedDatabase (line 452) | public virtual ObjectDatabase newCachedDatabase()

FILE: GitSharp.Core/ObjectDirectory.cs
  class ObjectDirectory (line 59) | public class ObjectDirectory : ObjectDatabase
    method ObjectDirectory (line 75) | public ObjectDirectory(DirectoryInfo dir, DirectoryInfo[] alternateObj...
    method getDirectory (line 88) | public DirectoryInfo getDirectory()
    method exists (line 93) | public override bool exists()
    method create (line 98) | public override void create()
    method closeSelf (line 105) | public override void closeSelf()
    method fileFor (line 131) | public FileInfo fileFor(AnyObjectId objectId)
    method fileFor (line 139) | private FileInfo fileFor(string objectName)
    method getPacks (line 153) | public ICollection<PackFile> getPacks()
    method openPack (line 168) | public void openPack(FileInfo pack, FileInfo idx)
    method ToString (line 196) | public override string ToString()
    method hasObject1 (line 201) | public override bool hasObject1(AnyObjectId objectId)
    method openObject1 (line 226) | public override ObjectLoader openObject1(WindowCursor curs, AnyObjectI...
    method OpenObjectInAllPacksImplementation (line 263) | public override void OpenObjectInAllPacksImplementation(ICollection<Pa...
    method hasObject2 (line 301) | public override bool hasObject2(string objectName)
    method openObject2 (line 306) | public override ObjectLoader openObject2(WindowCursor curs, string obj...
    method tryAgain1 (line 322) | public override bool tryAgain1()
    method InsertPack (line 332) | private void InsertPack(PackFile pf)
    method RemovePack (line 346) | private void RemovePack(PackFile deadPack)
    method indexOf (line 364) | private static int indexOf(PackFile[] list, PackFile pack)
    method ScanPacks (line 374) | private PackList ScanPacks(PackList original)
    method ScanPacksImpl (line 398) | private PackList ScanPacksImpl(PackList old)
    method ReuseMap (line 462) | private static Dictionary<string, PackFile> ReuseMap(PackList old)
    method listPackDirectory (line 492) | private HashSet<string> listPackDirectory()
    method loadAlternates (line 508) | protected override ObjectDatabase[] loadAlternates()
    method Open (line 538) | private static StreamReader Open(FileSystemInfo f)
    method openAlternate (line 543) | private ObjectDatabase openAlternate(string location)
    method openAlternate (line 549) | private ObjectDatabase openAlternate(DirectoryInfo objdir)
    class PackList (line 560) | private class PackList
      method PackList (line 580) | public PackList(long lastRead, long lastModified, PackFile[] packs)
      method notRacyClean (line 588) | private bool notRacyClean(long read)
      method updateLastRead (line 593) | public PackList updateLastRead(long now)
      method tryAgain (line 601) | public bool tryAgain(long currLastModified)
      class LongWrapper (line 631) | private class LongWrapper
        method LongWrapper (line 633) | public LongWrapper()
    method newCachedDatabase (line 642) | public override ObjectDatabase newCachedDatabase()

FILE: GitSharp.Core/ObjectId.cs
  class ObjectId (line 47) | public class ObjectId : AnyObjectId
    method ObjectId (line 51) | static ObjectId()
    method ObjectId (line 57) | internal ObjectId(int w1, int w2, int w3, int w4, int w5)
    method ObjectId (line 62) | public ObjectId(AnyObjectId src)
    method IsId (line 77) | public static bool IsId(string id)
    method ToString (line 104) | public static string ToString(ObjectId i)
    method Equals (line 129) | public static bool Equals(byte[] firstBuffer, int fi, byte[] secondBuf...
    method FromString (line 164) | public static ObjectId FromString(byte[] bs, int offset)
    method FromString (line 177) | public static ObjectId FromString(string str)
    method FromHexString (line 186) | public static ObjectId FromHexString(byte[] bs, int p)
    method ToObjectId (line 203) | public override ObjectId ToObjectId()
    method FromRaw (line 208) | public static ObjectId FromRaw(byte[] buffer)
    method FromRaw (line 213) | public static ObjectId FromRaw(byte[] buffer, int offset)
    method FromRaw (line 223) | public static ObjectId FromRaw(int[] intbuffer)
    method FromRaw (line 228) | public static ObjectId FromRaw(int[] intbuffer, int offset)

FILE: GitSharp.Core/ObjectIdRef.cs
  class Unpeeled (line 46) | public class Unpeeled : ObjectIdRef
    method Unpeeled (line 58) | public Unpeeled(Storage st, string name, ObjectId id)
  class PeeledTag (line 78) | public class PeeledTag : ObjectIdRef
    method PeeledTag (line 91) | public PeeledTag(Storage st, string name, ObjectId id, ObjectId p)
  class PeeledNonTag (line 112) | public class PeeledNonTag : ObjectIdRef
    method PeeledNonTag (line 124) | public PeeledNonTag(Storage st, string name, ObjectId id)
  class ObjectIdRef (line 144) | public abstract class ObjectIdRef : Ref
    method ObjectIdRef (line 159) | protected ObjectIdRef(Storage st, string name, ObjectId id)
    method ToString (line 200) | public override string ToString()

FILE: GitSharp.Core/ObjectIdSubclassMap.cs
  class ObjectIdSubclassMap (line 58) | public class ObjectIdSubclassMap<TObject> : HashSet<TObject>
    method ObjectIdSubclassMap (line 63) | public ObjectIdSubclassMap()
    method Get (line 73) | public TObject Get(AnyObjectId toFind)

FILE: GitSharp.Core/ObjectLoader.cs
  class ObjectLoader (line 48) | public abstract class ObjectLoader

FILE: GitSharp.Core/ObjectType.cs
  type ObjectType (line 42) | [Serializable]

FILE: GitSharp.Core/ObjectWriter.cs
  class ObjectWriter (line 51) | public class ObjectWriter
    method ObjectWriter (line 67) | public ObjectWriter(Repository repo)
    method ComputeBlobSha1 (line 82) | public ObjectId ComputeBlobSha1(long length, Stream input)
    method WriteBlob (line 93) | public ObjectId WriteBlob(FileInfo fileInfo)
    method WriteBlob (line 107) | public ObjectId WriteBlob(byte[] b)
    method WriteBlob (line 119) | public ObjectId WriteBlob(long len, Stream input)
    method WriteCanonicalTree (line 130) | public ObjectId WriteCanonicalTree(byte[] buffer)
    method WriteCommit (line 141) | public ObjectId WriteCommit(Commit c)
    method WriteCommit (line 181) | private ObjectId WriteCommit(byte[] b)
    method WriteCommit (line 186) | private ObjectId WriteCommit(long len, Stream input)
    method WriteObject (line 191) | internal ObjectId WriteObject(ObjectType type, long len, Stream input,...
    method WriteTag (line 337) | public ObjectId WriteTag(Tag tag)
    method WriteTag (line 361) | private ObjectId WriteTag(byte[] b)
    method WriteTag (line 366) | private ObjectId WriteTag(long len, Stream input)
    method WriteTree (line 371) | public ObjectId WriteTree(Tree t)
    method WriteTree (line 392) | private ObjectId WriteTree(long len, Stream input)

FILE: GitSharp.Core/OffsetCache.cs
  class OffsetCache (line 117) | internal abstract class OffsetCache<V, R>
    method OffsetCache (line 168) | internal OffsetCache(int tSize, int lockCount)
    method getOrLoad (line 222) | internal V getOrLoad(PackFile pack, long position)
    method Scan (line 268) | private V Scan(Entry<V> n, PackFile pack, long position)
    method Hit (line 289) | private void Hit(Ref<V> r)
    method Evict (line 303) | private void Evict()
    method removeAll (line 347) | internal void removeAll()
    method removeAll (line 374) | internal void removeAll(PackFile pack)
    method load (line 413) | internal abstract V load(PackFile pack, long position);
    method createRef (line 434) | internal virtual R createRef(PackFile pack, long position, V v)
    method clear (line 451) | internal virtual void clear(R @ref)
    method isFull (line 467) | internal virtual bool isFull()
    method Gc (line 472) | private void Gc()
    method hash (line 523) | internal abstract int hash(int packHash, long position);
    method Slot (line 525) | private int Slot(PackFile pack, long position)
    method Lock (line 530) | private LockTarget Lock(PackFile pack, long position)
    method Clean (line 535) | private static Entry<V> Clean(Entry<V> top)
    class Entry (line 550) | private class Entry<T>
      method Entry (line 572) | public Entry(Entry<T> n, Ref<T> r)
      method Kill (line 578) | public void Kill()
    class Ref (line 589) | internal class Ref<T> : WeakReference
      method Ref (line 594) | public Ref(PackFile pack, long position, T v, Queue queue)
      method enqueue (line 607) | public bool enqueue()
      method canClear (line 614) | public bool canClear()
      method get (line 625) | public T get()
    class LockTarget (line 631) | private class LockTarget

FILE: GitSharp.Core/PackFile.cs
  class PackFile (line 57) | public class PackFile : IEnumerable<PackIndex.MutableEntry>, IDisposable
    method PackFile (line 85) | public PackFile(FileInfo idxFile, FileInfo packFile)
    method LoadPackIndex (line 101) | private PackIndex LoadPackIndex()
    method ResolveBase (line 146) | internal PackedObjectLoader ResolveBase(WindowCursor windowCursor, lon...
    method HasObject (line 168) | public bool HasObject(AnyObjectId id)
    method Get (line 182) | public PackedObjectLoader Get(WindowCursor curs, AnyObjectId id)
    method Close (line 191) | public void Close()
    method GetEnumerator (line 216) | public IEnumerator<PackIndex.MutableEntry> GetEnumerator()
    method GetEnumerator (line 228) | IEnumerator IEnumerable.GetEnumerator()
    method FindObjectForOffset (line 259) | public ObjectId FindObjectForOffset(long offset)
    method readCache (line 264) | public UnpackedObjectCache.Entry readCache(long position)
    method saveCache (line 269) | public void saveCache(long position, byte[] data, int type)
    method decompress (line 274) | public byte[] decompress(long position, long totalSize, WindowCursor c...
    method CopyRawData (line 286) | internal void CopyRawData<T>(PackedObjectLoader loader, T @out, byte[]...
    method ReadFully (line 340) | private void ReadFully(long position, byte[] dstbuf, int dstoff, int c...
    method CopyToStream (line 348) | private void CopyToStream(long position, byte[] buffer, long count, St...
    method beginCopyRawData (line 360) | public void beginCopyRawData()
    method endCopyRawData (line 371) | public void endCopyRawData()
    method beginWindowCache (line 382) | public bool beginWindowCache()
    method endWindowCache (line 400) | public bool endWindowCache()
    method DoOpen (line 415) | private void DoOpen()
    method OpenFail (line 435) | private void OpenFail()
    method DoClose (line 443) | private void DoClose()
    method Read (line 461) | internal ByteArrayWindow Read(long pos, int size)
    method MemoryMappedByteWindow (line 479) | internal ByteWindow MemoryMappedByteWindow(long pos, int size)
    method OnOpenPack (line 484) | private void OnOpenPack()
    method Reader (line 521) | private PackedObjectLoader Reader(WindowCursor curs, long objOffset)
    method FindEndOffset (line 572) | private long FindEndOffset(long startOffset)
    method GetReverseIdx (line 578) | private PackReverseIndex GetReverseIdx()
    method Dispose (line 598) | public void Dispose ()

FILE: GitSharp.Core/PackIndex.cs
  class PackIndex (line 58) | public abstract class PackIndex : IEnumerable<PackIndex.MutableEntry>
    method IsTOC (line 65) | private static bool IsTOC(byte[] h)
    method HasObject (line 88) | public bool HasObject(AnyObjectId id)
    method GetEnumerator (line 95) | public abstract IEnumerator<MutableEntry> GetEnumerator();
    method GetEnumerator (line 101) | IEnumerator IEnumerable.GetEnumerator()
    method GetObjectId (line 144) | public abstract ObjectId GetObjectId(long nthPosition);
    method GetObjectId (line 166) | public ObjectId GetObjectId(int nthPosition)
    method FindOffset (line 184) | public abstract long FindOffset(AnyObjectId objId);
    method FindCRC32 (line 200) | public abstract long FindCRC32(AnyObjectId objId);
    class MutableEntry (line 208) | public class MutableEntry
      method MutableEntry (line 225) | public MutableEntry(Func<MutableObjectId, MutableObjectId> idBufferB...
      method MutableEntry (line 230) | public MutableEntry(MutableObjectId idBuffer)
      method ToObjectId (line 248) | public ObjectId ToObjectId()
      method CloneEntry (line 259) | public MutableEntry CloneEntry()
      method ToString (line 267) | public override string ToString()
    class EntriesIterator (line 281) | internal abstract class EntriesIterator : IEnumerator<MutableEntry>
      method EntriesIterator (line 286) | protected EntriesIterator(PackIndex packIndex)
      method IdBufferBuilder (line 293) | protected abstract MutableObjectId IdBufferBuilder(MutableObjectId i...
      method InitEntry (line 295) | private MutableEntry InitEntry()
      method hasNext (line 300) | public bool hasNext()
      method InnerNext (line 305) | protected abstract MutableEntry InnerNext(MutableEntry entry);
      method next (line 307) | public MutableEntry next()
      method MoveNext (line 313) | public bool MoveNext()
      method Reset (line 324) | public void Reset()
      method Dispose (line 339) | public void Dispose()
    method Open (line 354) | public static PackIndex Open(FileInfo idxFile)

FILE: GitSharp.Core/PackIndexV1.cs
  class PackIndexV1 (line 48) | [Complete]
    method PackIndexV1 (line 55) | public PackIndexV1(Stream fd, byte[] hdr)
    method GetEnumerator (line 125) | public override IEnumerator<MutableEntry> GetEnumerator()
    method GetObjectId (line 146) | public override ObjectId GetObjectId(long nthPosition)
    method FindOffset (line 174) | public override long FindOffset(AnyObjectId objId)
    method FindCRC32 (line 209) | public override long FindCRC32(AnyObjectId objId)
    class IndexV1Enumerator (line 224) | private class IndexV1Enumerator : EntriesIterator
      method IndexV1Enumerator (line 230) | public IndexV1Enumerator(PackIndexV1 index)
      method IdBufferBuilder (line 236) | protected override MutableObjectId IdBufferBuilder(MutableObjectId i...
      method InnerNext (line 242) | protected override MutableEntry InnerNext(MutableEntry entry)

FILE: GitSharp.Core/PackIndexV2.cs
  class PackIndexV2 (line 51) | public class PackIndexV2 : PackIndex
    method PackIndexV2 (line 71) | public PackIndexV2(Stream fd)
    method GetEnumerator (line 169) | public override IEnumerator<MutableEntry> GetEnumerator()
    method GetObjectId (line 181) | public override ObjectId GetObjectId(long nthPosition)
    method FindOffset (line 209) | public override long FindOffset(AnyObjectId objId)
    method FindCRC32 (line 227) | public override long FindCRC32(AnyObjectId objId)
    method BinarySearchLevelTwo (line 244) | private int BinarySearchLevelTwo(AnyObjectId objId, int levelOne)
    class EntriesEnumeratorV2 (line 279) | private class EntriesEnumeratorV2 : EntriesIterator
      method EntriesEnumeratorV2 (line 285) | public EntriesEnumeratorV2(PackIndexV2 index)
      method IdBufferBuilder (line 291) | protected override MutableObjectId IdBufferBuilder(MutableObjectId i...
      method InnerNext (line 297) | protected override MutableEntry InnerNext(MutableEntry entry)

FILE: GitSharp.Core/PackIndexWriter.cs
  class PackIndexWriter (line 49) | public abstract class PackIndexWriter
    method CreateOldestPossible (line 84) | public static PackIndexWriter CreateOldestPossible<T>(Stream dst, List...
    method CreateVersion (line 133) | public static PackIndexWriter CreateVersion(Stream dst, int version)
    method PackIndexWriter (line 165) | internal PackIndexWriter(Stream stream)
    method Write (line 186) | public void Write<T>(List<T> toStore, byte[] packDataChecksum)
    method WriteInternal (line 214) | internal abstract void WriteInternal();
    method WriteTOC (line 225) | internal void WriteTOC(int version)
    method WriteFanOutTable (line 240) | internal void WriteFanOutTable()
    method WriteChecksumFooter (line 267) | internal void WriteChecksumFooter() {

FILE: GitSharp.Core/PackIndexWriterV1.cs
  class PackIndexWriterV1 (line 47) | public class PackIndexWriterV1 : PackIndexWriter
    method CanStore (line 49) | public static bool CanStore(PackedObjectInfo objectInfo)
    method PackIndexWriterV1 (line 56) | public PackIndexWriterV1(Stream output)
    method WriteInternal (line 61) | internal override void WriteInternal()

FILE: GitSharp.Core/PackIndexWriterV2.cs
  class PackIndexWriterV2 (line 47) | public class PackIndexWriterV2 : PackIndexWriter
    method PackIndexWriterV2 (line 49) | public PackIndexWriterV2(Stream output)
    method WriteInternal (line 54) | internal override void WriteInternal()
    method WriteObjectNames (line 65) | private void WriteObjectNames()
    method WriteCRCs (line 73) | private void WriteCRCs()
    method WriteOffset32 (line 82) | private void WriteOffset32()
    method WriteOffset64 (line 100) | private void WriteOffset64()

FILE: GitSharp.Core/PackLock.cs
  class PackLock (line 46) | public class PackLock
    method PackLock (line 56) | public PackLock(FileInfo packFile)
    method Lock (line 73) | public bool Lock(string msg)
    method Unlock (line 91) | public void Unlock()

FILE: GitSharp.Core/PackOutputStream.cs
  class PackOutputStream (line 44) | public class PackOutputStream : Stream
    method PackOutputStream (line 51) | public PackOutputStream(Stream stream)
    method Write (line 58) | public override void Write(byte[] buffer, int offset, int count)
    method Seek (line 66) | public override long Seek(long offset, SeekOrigin origin)
    method SetLength (line 71) | public override void SetLength(long value)
    method Read (line 76) | public override int Read(byte[] buffer, int offset, int count)
    method Flush (line 102) | public override void Flush()
    method getCRC32 (line 112) | public int getCRC32()
    method resetCRC32 (line 118) | public void resetCRC32()
    method getDigest (line 123) | public byte[] getDigest()

FILE: GitSharp.Core/PackReverseIndex.cs
  class PackReverseIndex (line 51) | public class PackReverseIndex
    method PackReverseIndex (line 75) | public PackReverseIndex(PackIndex packIndex)
    method FindObject (line 134) | public ObjectId FindObject(long offset)
    method FindNextOffset (line 165) | public long FindNextOffset(long offset, long maxOffset)

FILE: GitSharp.Core/PackWriter.cs
  class PackWriter (line 50) | public class PackWriter : IDisposable
    method CreateObjectsLists (line 62) | private static List<ObjectToPack>[] CreateObjectsLists()
    method PackWriter (line 87) | public PackWriter(Repository repo, ProgressMonitor monitor)
    method PackWriter (line 92) | public PackWriter(Repository repo, ProgressMonitor imonitor, ProgressM...
    method setIndexVersion (line 119) | public void setIndexVersion(int version)
    method getObjectsNumber (line 124) | public int getObjectsNumber()
    method preparePack (line 129) | public void preparePack(IEnumerable<RevObject> objectsSource)
    method preparePack (line 137) | public void preparePack<T>(IEnumerable<T> interestingObjects, IEnumera...
    method willInclude (line 146) | public bool willInclude(AnyObjectId id)
    method computeName (line 151) | public ObjectId computeName()
    method writeIndex (line 162) | public void writeIndex(Stream indexStream)
    method sortByName (line 173) | private List<ObjectToPack> sortByName()
    method writePack (line 193) | public void writePack(Stream packStream)
    method SearchForReuse (line 217) | private void SearchForReuse()
    method SearchForReuse (line 238) | private void SearchForReuse(ICollection<PackedObjectLoader> reuseLoade...
    method SelectDeltaReuseForObject (line 253) | private void SelectDeltaReuseForObject(ObjectToPack otp, IEnumerable<P...
    method IsBetterDeltaReuseLoader (line 277) | private static bool IsBetterDeltaReuseLoader(PackedObjectLoader curren...
    method SelectObjectReuseForObject (line 288) | private static void SelectObjectReuseForObject(ObjectToPack otp, IEnum...
    method WriteHeader (line 299) | private void WriteHeader()
    method WriteObjects (line 307) | private void WriteObjects()
    method WriteObject (line 326) | private void WriteObject(ObjectToPack otp)
    method Open (line 385) | private PackedObjectLoader Open(ObjectToPack otp)
    method WriteWholeObjectDeflate (line 406) | private void WriteWholeObjectDeflate(ObjectToPack otp)
    method WriteDeltaObjectReuse (line 424) | private void WriteDeltaObjectReuse(ObjectToPack otp, PackedObjectLoade...
    method WriteObjectHeader (line 451) | private void WriteObjectHeader(int objectType, long dataLength)
    method WriteChecksum (line 467) | private void WriteChecksum()
    method SetUpWalker (line 473) | private ObjectWalk SetUpWalker<T>(IEnumerable<T> interestingObjects, I...
    method FindObjectsToPack (line 514) | private void FindObjectsToPack(ObjectWalk walker)
    method addObject (line 533) | public void addObject(RevObject robject)
    method Dispose (line 554) | public void Dispose ()
    class ObjectToPack (line 562) | class ObjectToPack : PackedObjectInfo
      method ObjectToPack (line 567) | public ObjectToPack(AnyObjectId src, int type)
      method DisposeLoader (line 609) | public void DisposeLoader()
      method ClearDeltaBase (line 614) | public void ClearDeltaBase()
      method UseLoader (line 619) | public PackedObjectLoader UseLoader()
      method SetReuseLoader (line 626) | public void SetReuseLoader(PackedObjectLoader reuseLoader)
      method MarkWantWrite (line 631) | public void MarkWantWrite()

FILE: GitSharp.Core/PackedObjectLoader.cs
  class PackedObjectLoader (line 48) | public abstract class PackedObjectLoader : ObjectLoader, IDisposable
    method PackedObjectLoader (line 54) | protected PackedObjectLoader(PackFile packFile, long dataOffset, long ...
    method Materialize (line 76) | public abstract void Materialize(WindowCursor curs);
    method beginCopyRawData (line 146) | public void beginCopyRawData()
    method endCopyRawData (line 154) | public void endCopyRawData()
    method CopyRawData (line 178) | public void CopyRawData<T>(T @out, byte[] buf, WindowCursor curs)
    method Dispose (line 184) | public void Dispose ()

FILE: GitSharp.Core/Patch/BinaryHunk.cs
  class BinaryHunk (line 45) | [Serializable]
    type Type (line 53) | [Serializable]
    method BinaryHunk (line 77) | public BinaryHunk(FileHeader fh, int offset)
    method getFileHeader (line 84) | public FileHeader getFileHeader()
    method getBuffer (line 90) | public byte[] getBuffer()
    method getStartOffset (line 96) | public int getStartOffset()
    method getEndOffset (line 102) | public int getEndOffset()
    method getType (line 108) | public Type getType() {
    method getSize (line 113) | public int getSize()
    method parseHunk (line 118) | public int parseHunk(int ptr, int end)

FILE: GitSharp.Core/Patch/CombinedFileHeader.cs
  class CombinedFileHeader (line 52) | public class CombinedFileHeader : FileHeader
    method CombinedFileHeader (line 59) | public CombinedFileHeader(byte[] b, int offset)
    method GetOldMode (line 75) | public override FileMode GetOldMode()
    method getOldMode (line 87) | public FileMode getOldMode(int nthParent)
    method getOldId (line 93) | public override AbbreviatedObjectId getOldId()
    method getOldId (line 105) | public AbbreviatedObjectId getOldId(int nthParent)
    method getScriptText (line 110) | public override string getScriptText(Encoding oldCharset, Encoding new...
    method parseGitHeaders (line 121) | public override int parseGitHeaders(int ptr, int end)
    method ParseIndexLine (line 173) | protected override void ParseIndexLine(int ptr, int end)
    method ParseNewFileMode (line 194) | protected override void ParseNewFileMode(int ptr, int eol)
    method newHunkHeader (line 203) | public override HunkHeader newHunkHeader(int offset)
    method parseModeLine (line 208) | private void parseModeLine(int ptr, int eol)
    method parseDeletedFileMode (line 227) | private void parseDeletedFileMode(int ptr, int eol)

FILE: GitSharp.Core/Patch/CombinedHunkHeader.cs
  class CombinedHunkHeader (line 49) | public class CombinedHunkHeader : HunkHeader
    method CombinedHunkHeader (line 53) | public CombinedHunkHeader(FileHeader fh, int offset)
    method GetOldImage (line 69) | internal OldImage GetOldImage(int nthParent)
    method parseHeader (line 82) | public override void parseHeader()
    method parseBody (line 103) | public override int parseBody(Patch script, int end)
    method extractFileLines (line 205) | public void extractFileLines(Stream[] outStream)
    method extractFileLines (line 292) | public override void extractFileLines(StringBuilder sb, string[] text,...

FILE: GitSharp.Core/Patch/FileHeader.cs
  class FileHeader (line 51) | [Serializable]
    type ChangeTypeEnum (line 90) | [Serializable]
    type PatchTypeEnum (line 122) | [Serializable]
    method FileHeader (line 162) | public FileHeader(byte[] b, int offset)
    method getScriptText (line 211) | public string getScriptText()
    method getScriptText (line 222) | public virtual string getScriptText(Encoding oldCharset, Encoding newC...
    method getScriptText (line 238) | public string getScriptText(Encoding[] charsetGuess)
    method TrySimpleConversion (line 295) | private static bool TrySimpleConversion(Encoding[] charsetGuess)
    method ExtractFileLines (line 306) | private string[] ExtractFileLines(Encoding[] csGuess)
    method GetOldMode (line 385) | public virtual FileMode GetOldMode()
    method getChangeType (line 402) | public ChangeTypeEnum getChangeType()
    method getScore (line 413) | public int getScore()
    method getOldId (line 424) | public virtual AbbreviatedObjectId getOldId()
    method getNewId (line 435) | public AbbreviatedObjectId getNewId()
    method getPatchType (line 444) | public PatchTypeEnum getPatchType()
    method hasMetaDataChanges (line 453) | public bool hasMetaDataChanges()
    method addHunk (line 467) | public void addHunk(HunkHeader h)
    method newHunkHeader (line 477) | public virtual HunkHeader newHunkHeader(int offset)
    method getForwardBinaryHunk (line 486) | public BinaryHunk getForwardBinaryHunk()
    method getReverseBinaryHunk (line 495) | public BinaryHunk getReverseBinaryHunk()
    method ToEditList (line 504) | public EditList ToEditList()
    method parseGitFileName (line 523) | public int parseGitFileName(int ptr, int end)
    method parseGitHeaders (line 591) | public virtual int parseGitHeaders(int ptr, int end)
    method ParseOldName (line 683) | protected void ParseOldName(int ptr, int eol)
    method ParseNewName (line 692) | protected void ParseNewName(int ptr, int eol)
    method ParseNewFileMode (line 701) | protected virtual void ParseNewFileMode(int ptr, int eol)
    method parseTraditionalHeaders (line 708) | public int parseTraditionalHeaders(int ptr, int end)
    method ParseName (line 739) | private string ParseName(String expect, int ptr, int end)
    method P1 (line 779) | private static string P1(string r)
    method ParseFileMode (line 785) | protected FileMode ParseFileMode(int ptr, int end)
    method ParseIndexLine (line 796) | protected virtual void ParseIndexLine(int ptr, int end)
    method Eq (line 813) | private bool Eq(int aPtr, int aEnd, int bPtr, int bEnd)
    method isHunkHdr (line 847) | public static int isHunkHdr(byte[] buf, int start, int end)

FILE: GitSharp.Core/Patch/FormatError.cs
  class FormatError (line 48) | [Serializable]
    type Severity (line 56) | [Serializable]
    method FormatError (line 77) | public FormatError(byte[] buffer, int ptr, Severity sev, string msg)
    method getSeverity (line 89) | public Severity getSeverity()
    method getMessage (line 98) | public string getMessage()
    method getBuffer (line 107) | public byte[] getBuffer()
    method getOffset (line 116) | public int getOffset()
    method getLineText (line 125) | public string getLineText()
    method ToString (line 131) | public override string ToString()

FILE: GitSharp.Core/Patch/HunkHeader.cs
  class HunkHeader (line 49) | public class HunkHeader
    method HunkHeader (line 55) | public HunkHeader(FileHeader fh, int offset)
    method HunkHeader (line 60) | internal HunkHeader(FileHeader fh, int offset, OldImage oi)
    method ToEditList (line 121) | public EditList ToEditList()
    method parseHeader (line 180) | public virtual void parseHeader()
    method parseBody (line 197) | public virtual int parseBody(Patch script, int end)
    method extractFileLines (line 275) | public void extractFileLines(TemporaryBuffer[] outStream)
    method extractFileLines (line 316) | public virtual void extractFileLines(StringBuilder sb, string[] text, ...
    method copyLine (line 352) | public void copyLine(StringBuilder sb, string[] text, int[] offsets, i...
    method skipLine (line 369) | public void skipLine(string[] text, int[] offsets, int fileIdx)
  class OldImage (line 382) | internal class OldImage
    method OldImage (line 387) | public OldImage(FileHeader fh)
    method OldImage (line 392) | public OldImage(FileHeader fh, AbbreviatedObjectId id)
  class CombinedOldImage (line 443) | internal class CombinedOldImage : OldImage
    method CombinedOldImage (line 447) | public CombinedOldImage(FileHeader fh, int imagePos)

FILE: GitSharp.Core/Patch/Patch.cs
  class Patch (line 49) | [Serializable]
    method Patch (line 70) | public Patch()
    method addFile (line 85) | public void addFile(FileHeader fh)
    method getFiles (line 91) | public List<FileHeader> getFiles()
    method addError (line 102) | public void addError(FormatError err)
    method getErrors (line 108) | public List<FormatError> getErrors()
    method parse (line 126) | public void parse(Stream iStream)
    method ReadFully (line 132) | private static byte[] ReadFully(Stream stream)
    method parse (line 162) | public void parse(byte[] buf, int ptr, int end)
    method warn (line 170) | public void warn(byte[] buf, int ptr, string msg)
    method error (line 175) | public void error(byte[] buf, int ptr, string msg)
    method ParseFile (line 180) | private int ParseFile(byte[] buf, int c, int end)
    method ParseDiffGit (line 249) | private int ParseDiffGit(byte[] buf, int start, int end)
    method ParseDiffCombined (line 265) | private int ParseDiffCombined(ICollection<byte> hdr, byte[] buf, int s...
    method ParseTraditionalPatch (line 281) | private int ParseTraditionalPatch(byte[] buf, int start, int end)
    method SkipFile (line 291) | private static int SkipFile(byte[] buf, int ptr)
    method ParseHunks (line 301) | private int ParseHunks(FileHeader fh, int c, int end)
    method ParseGitBinary (line 382) | private int ParseGitBinary(FileHeader fh, int c, int end)
    method MatchAny (line 409) | private static bool MatchAny(byte[] buf, int c, IEnumerable<byte[]> srcs)

FILE: GitSharp.Core/PersonIdent.cs
  class PersonIdent (line 48) | public class PersonIdent
    method PersonIdent (line 65) | public PersonIdent(Repository repo)
    method PersonIdent (line 78) | public PersonIdent(PersonIdent pi)
    method PersonIdent (line 88) | public PersonIdent(string name, string emailAddress)
    method PersonIdent (line 102) | public PersonIdent(PersonIdent pi, DateTime when, int tz)
    method PersonIdent (line 112) | public PersonIdent(PersonIdent pi, DateTime when)
    method PersonIdent (line 124) | public PersonIdent(string name, string emailAddress, DateTime when, in...
    method PersonIdent (line 136) | public PersonIdent(string name, string emailAddress, long when, int tz)
    method PersonIdent (line 150) | public PersonIdent(PersonIdent pi, long when, int tz)
    method PersonIdent (line 160) | public PersonIdent(string str)
    method GetHashCode (line 207) | public override int GetHashCode()
    method Equals (line 215) | public override bool Equals(object obj)
    method ToExternalString (line 230) | public string ToExternalString()
    method appendTimezone (line 245) | private void appendTimezone(StringBuilder r)
    method ToString (line 266) | public override string ToString()

FILE: GitSharp.Core/Platform/Linux.cs
  class Linux (line 50) | public class Linux : Platform
    method CreateSymlink (line 63) | public override bool CreateSymlink(string symlinkFilename, string exis...
    method CreateHardlink (line 83) | public override bool CreateHardlink(string hardlinkFilename, string ex...
    method GetTextPager (line 102) | public override Process GetTextPager(string corePagerConfig)
    method Linux (line 126) | public Linux()
    method GetArchPlatform (line 194) | public static void GetArchPlatform(Linux obj, string unitTestContent)
    method GetDefaultLinuxPlatform (line 205) | public static void GetDefaultLinuxPlatform(Linux obj, string unitTestC...
    method GetDebianPlatform (line 213) | public static void GetDebianPlatform(Linux obj, string unitTestContent)
    method GetFedoraPlatform (line 231) | public static void GetFedoraPlatform(Linux obj, string unitTestContent)
    method GetGentooPlatform (line 255) | public static void GetGentooPlatform(Linux obj, string unitTestContent)
    method GetMandrivaPlatform (line 274) | public static void GetMandrivaPlatform(Linux obj, string unitTestContent)
    method GetRedHatPlatform (line 377) | public static void GetRedHatPlatform(Linux obj, string unitTestContent)
    method GetSlackwarePlatform (line 404) | public static void GetSlackwarePlatform(Linux obj, string unitTestCont...
    method GetSusePlatform (line 423) | public static void GetSusePlatform(Linux obj)
    method GetSusePlatform (line 428) | public static void GetSusePlatform(Linux obj, string unitTestContent)
    method GetUbuntuPlatform (line 449) | public static void GetUbuntuPlatform(Linux obj)
    method GetUbuntuPlatform (line 454) | public static void GetUbuntuPlatform(Linux obj, string unitTestContent)
    method ParseFile (line 481) | private static List<string> ParseFile(string f)
    method ParseString (line 498) | private static List<string> ParseString(string str)

FILE: GitSharp.Core/Platform/Mac.cs
  class Mac (line 45) | public class Mac : Platform
    method CreateSymlink (line 57) | public override bool CreateSymlink(string symlinkFilename, string exis...
    method CreateHardlink (line 76) | public override bool CreateHardlink(string hardlinkFilename, string ex...
    method GetTextPager (line 95) | public override Process GetTextPager(string corePagerConfig)
    method Mac (line 101) | public Mac()

FILE: GitSharp.Core/Platform/Platform.cs
  class Platform (line 49) | public abstract class Platform
    type GitPlatformID (line 54) | enum GitPlatformID
    type PlatformId (line 68) | public enum PlatformId
    method CreateSymlink (line 114) | public abstract bool CreateSymlink(string symlinkFilename, string exis...
    method CreateHardlink (line 116) | public abstract bool CreateHardlink(string hardlinkFilename, string ex...
    method GetTextPager (line 119) | public abstract Process GetTextPager(string corePagerConfig);
    method Platform (line 121) | protected Platform()

FILE: GitSharp.Core/Platform/Windows.cs
  class Win32 (line 52) | public class Win32 : Platform
    method GetVersionEx (line 55) | [DllImport("kernel32.dll")]
    method GetProductInfo (line 58) | [DllImport("Kernel32.dll")]
    method GetSystemInfo (line 63) | [DllImport("kernel32.dll")]
    method GetSystemMetrics (line 66) | [DllImport("user32.dll")]
    method GetProductInfo (line 69) | private static void GetProductInfo(Win32ProductInfo info)
    method CreateSymbolicLink (line 76) | [DllImport("kernel32.dll", EntryPoint="CreateSymbolicLinkW", CharSet=C...
    method CreateHardLink (line 79) | [DllImport("kernel32.dll", EntryPoint="CreateHardLinkW", CharSet=CharS...
    method CreateSymlink (line 106) | public override bool CreateSymlink(string symlinkFilename, string exis...
    method CreateHardlink (line 124) | public override bool CreateHardlink(string hardlinkFilename, string ex...
    method GetTextPager (line 137) | public override Process GetTextPager(string corePagerConfig)
    method Win32 (line 154) | public Win32()
  class NTVersion (line 683) | internal static class NTVersion
  class SuiteVersion (line 691) | internal static class SuiteVersion
  class ProductType (line 713) | internal static class ProductType
  class ProcessorArchitecture (line 766) | internal static class ProcessorArchitecture
  class SystemMetrics (line 774) | internal static class SystemMetrics
  class SecurityAttributes (line 780) | [StructLayout(LayoutKind.Sequential)]
  class Win32ProductInfo (line 788) | [StructLayout(LayoutKind.Sequential)]
  type Win32SystemInfo (line 800) | [StructLayout(LayoutKind.Sequential)]
  class Win32VersionInfo (line 817) | [StructLayout(LayoutKind.Sequential)]

FILE: GitSharp.Core/ProgressMonitor.cs
  class ProgressMonitor (line 42) | [Complete]
    method Start (line 47) | public abstract void Start(int totalTasks);
    method BeginTask (line 48) | public abstract void BeginTask(string title, int totalWork);
    method Update (line 49) | public abstract void Update(int completed);
    method EndTask (line 50) | public abstract void EndTask();

FILE: GitSharp.Core/Ref.cs
  class RefExtensions (line 42) | public static class RefExtensions
    method getName (line 44) | public static string getName(this Ref @ref)
    method isSymbolic (line 49) | public static bool isSymbolic(this Ref @ref)
    method getLeaf (line 54) | public static Ref getLeaf(this Ref @ref)
    method getTarget (line 59) | public static Ref getTarget(this Ref @ref)
    method getObjectId (line 64) | public static ObjectId getObjectId(this Ref @ref)
    method getPeeledObjectId (line 69) | public static ObjectId getPeeledObjectId(this Ref @ref)
    method isPeeled (line 74) | public static bool isPeeled(this Ref @ref)
    method getStorage (line 79) | public static Storage getStorage(this Ref @ref)
  type Ref (line 98) | public interface Ref
  class Storage (line 182) | public sealed class Storage
    method Storage (line 227) | private Storage(string name, bool loose, bool packed)

FILE: GitSharp.Core/RefComparator.cs
  class RefComparator (line 51) | public class RefComparator : IComparer<Ref>
    method Compare (line 58) | public int Compare(Ref o1, Ref o2)
    method Sort (line 68) | public static IEnumerable<Ref> Sort(IEnumerable<Ref> refs)
    method compareTo (line 81) | public static int compareTo(Ref o1, String o2)
    method compareTo (line 92) | public static int compareTo(Ref o1, Ref o2)

FILE: GitSharp.Core/RefDatabase.cs
  class RefDatabase (line 50) | public abstract class RefDatabase : IDisposable
    method create (line 84) | public abstract void create();
    method close (line 89) | public abstract void close();
    method isNameConflicting (line 109) | public abstract bool isNameConflicting(string name);
    method newUpdate (line 123) | public abstract RefUpdate newUpdate(string name, bool detach);
    method newRename (line 131) | public abstract RefRename newRename(string fromName, string toName);
    method getRef (line 145) | public abstract Ref getRef(string name);
    method getRefs (line 160) | public abstract IDictionary<string, Ref> getRefs(string prefix);
    method peel (line 178) | public abstract Ref peel(Ref @ref);
    method Dispose (line 180) | public virtual void Dispose()

FILE: GitSharp.Core/RefDirectory.cs
  class RefDirectory (line 70) | public class RefDirectory : RefDatabase
    method RefDirectory (line 130) | public RefDirectory(Repository db)
    method getRepository (line 143) | public Repository getRepository()
    method create (line 148) | public override void create()
    method close (line 160) | public override void close()
    method rescan (line 165) | public void rescan()
    method isNameConflicting (line 172) | public override bool isNameConflicting(string name)
    method getLooseRefs (line 202) | private RefList<LooseRef> getLooseRefs()
    method getRef (line 222) | public override Ref getRef(string needle)
    method getRefs (line 240) | public override IDictionary<string, Ref> getRefs(string prefix)
    method upcast (line 282) | private RefList<Ref> upcast<TRef>(RefList<TRef> loose) where TRef : Ref
    class LooseScanner (line 288) | private class LooseScanner
      method LooseScanner (line 299) | public LooseScanner(RefList<LooseRef> curLoose, RefDirectory refDire...
      method scan (line 305) | public void scan(string prefix)
      method scanTree (line 344) | private void scanTree(string prefix, DirectoryInfo dir)
      method scanOne (line 365) | private void scanOne(string name)
    method peel (line 426) | public override Ref peel(Ref @ref)
    method recreate (line 468) | private static Ref recreate(Ref old, ObjectIdRef leaf)
    method storedSymbolicRef (line 478) | public void storedSymbolicRef(RefDirectoryUpdate u, long modified, str...
    method newUpdate (line 484) | public override RefUpdate newUpdate(string name, bool detach)
    method newRename (line 497) | public override RefRename newRename(string fromName, string toName)
    method stored (line 504) | public void stored(RefDirectoryUpdate update, long modified)
    method putLooseRef (line 511) | private void putLooseRef(LooseRef @ref)
    method delete (line 523) | public void delete(RefDirectoryUpdate update)
    method log (line 572) | public void log(RefUpdate update, string msg, bool deref)
    method log (line 606) | private void log(string refName, byte[] rec)
    method isLogAllRefUpdates (line 633) | private bool isLogAllRefUpdates()
    method shouldAutoCreateLog (line 638) | private bool shouldAutoCreateLog(string refName)
    method resolve (line 645) | private Ref resolve(Ref @ref, int depth, string prefix,
    method getPackedRefs (line 682) | private PackedRefList getPackedRefs()
    method readPackedRefs (line 702) | private PackedRefList readPackedRefs(long size, long mtime)
    method parsePackedRefs (line 716) | private static RefList<Ref> parsePackedRefs(TextReader br)
    method copy (line 767) | private static string copy(string src, int off, int end)
    method commitPackedRefs (line 774) | private void commitPackedRefs(LockFile lck, RefList<Ref> refs, PackedR...
    class PackedRefsWriter (line 779) | private class PackedRefsWriter : RefWriter
      method PackedRefsWriter (line 786) | public PackedRefsWriter(LockFile lck, RefList<Ref> refs, PackedRefLi...
      method writeFile (line 795) | protected override void writeFile(string name, byte[] content)
    method readRef (line 824) | private Ref readRef(string name, RefList<Ref> packed)
    method scanRef (line 854) | private LooseRef scanRef(LooseRef @ref, string name)
    method isSymRef (line 920) | private static bool isSymRef(byte[] buf, int n)
    method fireRefsChanged (line 932) | private void fireRefsChanged()
    method newTemporaryUpdate (line 944) | public RefDirectoryUpdate newTemporaryUpdate()
    method fileFor (line 960) | public FileInfo fileFor(string name)
    method logFor (line 978) | public FileInfo logFor(string name)
    method levelsIn (line 988) | public static int levelsIn(string name)
    method delete (line 996) | public static void delete(FileInfo file, int depth)
    class PackedRefList (line 1017) | private class PackedRefList : RefList<Ref>
      method PackedRefList (line 1028) | public PackedRefList(RefList<Ref> src, long size, long mtime)
    method newSymbolicRef (line 1036) | private static LooseSymbolicRef newSymbolicRef(long lastModified,
    type LooseRef (line 1043) | private interface LooseRef : Ref
      method getLastModified (line 1045) | long getLastModified();
      method peel (line 1047) | LooseRef peel(ObjectIdRef newLeaf);
    class LoosePeeledTag (line 1050) | private class LoosePeeledTag : PeeledTag, LooseRef
      method LoosePeeledTag (line 1054) | public LoosePeeledTag(long mtime, string refName, ObjectId id, Objec...
      method getLastModified (line 1060) | public long getLastModified()
      method peel (line 1065) | public LooseRef peel(ObjectIdRef newLeaf)
    class LooseNonTag (line 1071) | private class LooseNonTag : PeeledNonTag
      method LooseNonTag (line 1076) | public LooseNonTag(long mtime, string refName, ObjectId id)
      method getLastModified (line 1082) | public long getLastModified()
      method peel (line 1087) | public LooseRef peel(ObjectIdRef newLeaf)
    class LooseUnpeeled (line 1093) | private class LooseUnpeeled : Unpeeled, LooseRef
      method LooseUnpeeled (line 1097) | public LooseUnpeeled(long mtime, string refName, ObjectId id)
      method getLastModified (line 1103) | public long getLastModified()
      method peel (line 1108) | public LooseRef peel(ObjectIdRef newLeaf)
    class LooseSymbolicRef (line 1118) | private class LooseSymbolicRef : SymbolicRef, LooseRef
      method LooseSymbolicRef (line 1122) | public LooseSymbolicRef(long mtime, string refName, Ref target)
      method getLastModified (line 1128) | public long getLastModified()
      method peel (line 1133) | public LooseRef peel(ObjectIdRef newLeaf)

FILE: GitSharp.Core/RefDirectoryRename.cs
  class RefDirectoryRename (line 53) | public class RefDirectoryRename : RefRename
    method RefDirectoryRename (line 76) | public RefDirectoryRename(RefDirectoryUpdate src, RefDirectoryUpdate dst)
    method doRename (line 82) | protected override RefUpdate.RefUpdateResult doRename()
    method renameLog (line 187) | private bool renameLog(RefUpdate src, RefUpdate dst)
    method rename (line 215) | private static bool rename(string src, string dst)
    method linkHEAD (line 226) | private bool linkHEAD(RefUpdate target)

FILE: GitSharp.Core/RefDirectoryUpdate.cs
  class RefDirectoryUpdate (line 46) | public class RefDirectoryUpdate : RefUpdate
    method RefDirectoryUpdate (line 52) | public RefDirectoryUpdate(RefDirectory r, Ref @ref)
    method getRefDatabase (line 58) | public override RefDatabase getRefDatabase()
    method getRepository (line 63) | public override Repository getRepository()
    method tryLock (line 68) | protected override bool tryLock(bool deref)
    method unlock (line 87) | public override void unlock()
    method doUpdate (line 96) | protected override RefUpdateResult doUpdate(RefUpdateResult status)
    method toResultString (line 123) | private static string toResultString(RefUpdateResult status)
    method doDelete (line 138) | protected override RefUpdateResult doDelete(RefUpdateResult status)
    method doLink (line 145) | protected override RefUpdateResult doLink(string target)

FILE: GitSharp.Core/RefRename.cs
  class RefRename (line 48) | public abstract class RefRename {
    method RefRename (line 66) | protected RefRename(RefUpdate src, RefUpdate dst) {
    method getRefLogIdent (line 81) | public PersonIdent getRefLogIdent() {
    method setRefLogIdent (line 97) | public void setRefLogIdent(PersonIdent pi) {
    method getRefLogMessage (line 108) | public string getRefLogMessage() {
    method setRefLogMessage (line 116) | public void setRefLogMessage(string msg) {
    method disableRefLog (line 126) | public void disableRefLog() {
    method getResult (line 134) | public RefUpdate.RefUpdateResult getResult() {
    method rename (line 139) | public RefUpdate.RefUpdateResult rename()  {
    method doRename (line 150) | protected abstract RefUpdate.RefUpdateResult doRename();
    method needToUpdateHEAD (line 156) | protected bool needToUpdateHEAD(){

FILE: GitSharp.Core/RefUpdate.cs
  class RefUpdateExtensions (line 45) | public static class RefUpdateExtensions
    method getNewObjectId (line 47) | public static ObjectId getNewObjectId(this RefUpdate refUpdate)
    method setNewObjectId (line 52) | public static void setNewObjectId(this RefUpdate refUpdate, AnyObjectI...
    method isForceUpdate (line 57) | public static bool isForceUpdate(this RefUpdate refUpdate)
    method setForceUpdate (line 62) | public static void setForceUpdate(this RefUpdate refUpdate, bool b)
    method getName (line 66) | public static string getName(this RefUpdate refUpdate)
    method getRef (line 70) | public static Ref getRef(this RefUpdate refUpdate)
    method getExpectedOldObjectId (line 75) | public static ObjectId getExpectedOldObjectId(this RefUpdate refUpdate)
    method setExpectedOldObjectId (line 80) | public static void setExpectedOldObjectId(this RefUpdate refUpdate, An...
    method getOldObjectId (line 85) | public static ObjectId getOldObjectId(this RefUpdate refUpdate)
    method setOldObjectId (line 90) | public static void setOldObjectId(this RefUpdate refUpdate, AnyObjectI...
    method getResult (line 95) | public static RefUpdate.RefUpdateResult getResult(this RefUpdate refUp...
  class RefUpdate (line 105) | public abstract class RefUpdate
    type RefUpdateResult (line 110) | public enum RefUpdateResult
    method RefUpdate (line 238) | protected RefUpdate(Ref @ref)
    method getRefDatabase (line 246) | public abstract RefDatabase getRefDatabase();
    method getRepository (line 249) | public abstract Repository getRepository();
    method tryLock (line 266) | protected abstract bool tryLock(bool deref);
    method unlock (line 271) | public abstract void unlock();
    method doUpdate (line 273) | protected abstract RefUpdateResult doUpdate(RefUpdateResult desiredRes...
    method doDelete (line 275) | protected abstract RefUpdateResult doDelete(RefUpdateResult desiredRes...
    method doLink (line 277) | protected abstract RefUpdateResult doLink(string target);
    method getRefLogIdent (line 322) | public PersonIdent getRefLogIdent()
    method setRefLogIdent (line 339) | public void setRefLogIdent(PersonIdent pi)
    method getRefLogMessage (line 351) | public string getRefLogMessage()
    method isRefLogIncludingResult (line 357) | protected bool isRefLogIncludingResult()
    method setRefLogMessage (line 374) | public void setRefLogMessage(string msg, bool appendStatus)
    method disableRefLog (line 393) | public void disableRefLog()
    method requireCanDoUpdate (line 425) | private void requireCanDoUpdate()
    method forceUpdate (line 438) | public RefUpdateResult forceUpdate()
    method update (line 456) | public RefUpdateResult update()
    method update (line 473) | public RefUpdateResult update(RevWalk.RevWalk walk)
    method delete (line 497) | public RefUpdateResult delete()
    method delete (line 510) | public RefUpdateResult delete(RevWalk.RevWalk walk)
    method link (line 546) | public RefUpdateResult link(string target)
    method updateImpl (line 586) | private RefUpdateResult updateImpl(RevWalk.RevWalk walk, Store store)
    method safeParse (line 628) | private static RevObject safeParse(RevWalk.RevWalk rw, AnyObjectId id)
    class Store (line 649) | private abstract class Store
      method execute (line 652) | public abstract RefUpdateResult execute(RefUpdateResult status);
    class UpdateStore (line 655) | private class UpdateStore : Store
      method UpdateStore (line 659) | public UpdateStore(RefUpdate refUpdate)
      method execute (line 664) | public override RefUpdateResult execute(RefUpdateResult status)
    class DeleteStore (line 672) | private class DeleteStore : Store
      method DeleteStore (line 676) | public DeleteStore(RefUpdate refUpdate)
      method execute (line 681) | public override RefUpdateResult execute(RefUpdateResult status)

FILE: GitSharp.Core/RefWriter.cs
  class RefWriter (line 57) | public abstract class RefWriter
    method RefWriter (line 66) | protected RefWriter(IEnumerable<Ref> refs)
    method RefWriter (line 75) | protected RefWriter(IDictionary<String, Ref> refs)
    method RefWriter (line 83) | protected RefWriter(RefList<Ref> list)
    method writeInfoRefs (line 94) | public void writeInfoRefs()
    method writePackedRefs (line 132) | public void writePackedRefs()
    method writeFile (line 181) | protected abstract void writeFile(String file, byte[] content);

FILE: GitSharp.Core/ReflogReader.cs
  class ReflogReader (line 48) | public class ReflogReader
    class Entry (line 52) | public class Entry
      method Entry (line 59) | public Entry(byte[] raw, int pos)
      method getOldId (line 85) | public ObjectId getOldId()
      method getNewId (line 93) | public ObjectId getNewId()
      method getWho (line 101) | public PersonIdent getWho()
      method getComment (line 109) | public string getComment()
      method ToString (line 114) | public override string ToString()
    method ReflogReader (line 127) | public ReflogReader(Repository db, string refName)
    method getLastEntry (line 142) | public Entry getLastEntry()
    method getReverseEntries (line 152) | public IList<Entry> getReverseEntries()
    method getReverseEntries (line 160) | public IList<Entry> getReverseEntries(int max)

FILE: GitSharp.Core/RefsChangedEventArgs.cs
  class RefsChangedEventArgs (line 46) | public class RefsChangedEventArgs : RepositoryChangedEventArgs
    method RefsChangedEventArgs (line 49) | public RefsChangedEventArgs(Repository repo)
    method ToString (line 54) | public override string ToString ()

FILE: GitSharp.Core/Repository.cs
  class Repository (line 77) | public class Repository : IDisposable
    method Repository (line 101) | public Repository(DirectoryInfo d)
    method Repository (line 112) | public Repository(DirectoryInfo d, DirectoryInfo workTree)
    method Repository (line 125) | public Repository(DirectoryInfo d, DirectoryInfo workTree, DirectoryIn...
    method Create (line 217) | public void Create()
    method Create (line 230) | public bool Create(bool bare)
    method setWorkDir (line 273) | public void setWorkDir(DirectoryInfo workTree)
    method ToFile (line 289) | public FileInfo ToFile(AnyObjectId objectId)
    method HasObject (line 302) | public bool HasObject(AnyObjectId objectId)
    method OpenObject (line 318) | public ObjectLoader OpenObject(WindowCursor windowCursor, AnyObjectId id)
    method OpenObject (line 331) | public ObjectLoader OpenObject(AnyObjectId id)
    method OpenObjectInAllPacks (line 355) | public IEnumerable<PackedObjectLoader> OpenObjectInAllPacks(AnyObjectI...
    method OpenObjectInAllPacks (line 373) | public void OpenObjectInAllPacks(AnyObjectId objectId, ICollection<Pac...
    method OpenBlob (line 386) | public ObjectLoader OpenBlob(ObjectId id)
    method OpenTree (line 398) | public ObjectLoader OpenTree(ObjectId id)
    method MapCommit (line 410) | public Commit MapCommit(string resolveString)
    method MapCommit (line 421) | public Commit MapCommit(ObjectId id)
    method MapObject (line 444) | public object MapObject(ObjectId id, string refName)
    method MakeCommit (line 474) | private object MakeCommit(ObjectId id, byte[] raw)
    method MapTree (line 486) | public Tree MapTree(string revstr)
    method MapTree (line 497) | public Tree MapTree(ObjectId id)
    method MakeTree (line 518) | private Tree MakeTree(ObjectId id, byte[] raw)
    method MakeTag (line 523) | private Tag MakeTag(ObjectId id, string refName, byte[] raw)
    method MapTag (line 534) | public Tag MapTag(string revstr)
    method MapTag (line 546) | public Tag MapTag(string refName, ObjectId id)
    method UpdateRef (line 572) | public RefUpdate UpdateRef(string refName)
    method UpdateRef (line 583) | public RefUpdate UpdateRef(string refName, bool detach)
    method RenameRef (line 597) | public RefRename RenameRef(string fromRef, string toRef)
    method Resolve (line 627) | public ObjectId Resolve(string revision)
    method ResolveSimple (line 918) | private ObjectId ResolveSimple(string revstr)
    method IncrementOpen (line 928) | public void IncrementOpen()
    method Close (line 936) | public void Close()
    method OpenPack (line 960) | public void OpenPack(FileInfo pack, FileInfo idx)
    method getIndexFile (line 1000) | public FileInfo getIndexFile()
    method GitInternalSlash (line 1010) | internal static byte[] GitInternalSlash(byte[] bytes)
    method StripWorkDir (line 1034) | public static string StripWorkDir(FileSystemInfo workDir, FileSystemIn...
    method addRepositoryChangedListener (line 1070) | public void addRepositoryChangedListener(RepositoryListener l)
    method removeRepositoryChangedListener (line 1079) | public void removeRepositoryChangedListener(RepositoryListener l)
    method addAnyRepositoryChangedListener (line 1090) | public static void addAnyRepositoryChangedListener(RepositoryListener l)
    method removeAnyRepositoryChangedListener (line 1099) | public static void removeAnyRepositoryChangedListener(RepositoryListen...
    method fireRefsChanged (line 1104) | internal void fireRefsChanged()
    method fireIndexChanged (line 1122) | internal void fireIndexChanged()
    method scanForRepoChanges (line 1145) | public void scanForRepoChanges()
    method getAllRefs (line 1211) | public IDictionary<string, Ref> getAllRefs()
    method getRef (line 1223) | public Ref getRef(string name)
    method getTags (line 1233) | public IDictionary<string, Ref> getTags()
    method Peel (line 1250) | public Ref Peel(Ref pRef)
    method getAllRefsByPeeledObjectId (line 1268) | public Dictionary<AnyObjectId, List<Ref>> getAllRefsByPeeledObjectId()
    method Open (line 1296) | public static Repository Open(string directory)
    method Open (line 1301) | public static Repository Open(DirectoryInfo directory)
    method IsValidRefName (line 1329) | public static bool IsValidRefName(string refName)
    method OpenCommit (line 1382) | public Commit OpenCommit(ObjectId id)
    method ToString (line 1387) | public override string ToString()
    method Dispose (line 1392) | public void Dispose()
    method getBranch (line 1439) | public string getBranch()
    method ShortenRefName (line 1452) | public string ShortenRefName(string refName)
    method ReflogReader (line 1481) | public ReflogReader ReflogReader(string refName)

FILE: GitSharp.Core/RepositoryCache.cs
  class RepositoryCache (line 45) | public class RepositoryCache
    method open (line 54) | public static Repository open(Key location)
    method open (line 59) | public static Repository open(Key location, bool mustExist)
    method register (line 64) | public static void register(Repository db)
    method close (line 72) | public static void close(Repository db)
    method clear (line 80) | public static void clear()
    method RepositoryCache (line 88) | public RepositoryCache()
    method openRepository (line 96) | private Repository openRepository(Key location, bool mustExist)
    method registerRepository (line 120) | private void registerRepository(Key location, Repository db)
    method unregisterRepository (line 131) | private void unregisterRepository(Key location)
    method clearAll (line 140) | private void clearAll()
    method lockFor (line 162) | private Lock lockFor(Key location)
    class Lock (line 167) | private class Lock
    type Key (line 171) | public interface Key
      method open (line 173) | Repository open(bool mustExist);
    class FileKey (line 176) | public class FileKey : Key
      method exact (line 178) | public static FileKey exact(DirectoryInfo dir)
      method lenient (line 183) | public static FileKey lenient(DirectoryInfo dir)
      method FileKey (line 191) | public FileKey(DirectoryInfo dir)
      method getFile (line 196) | public DirectoryInfo getFile()
      method open (line 201) | public Repository open(bool mustExist)
      method GetHashCode (line 208) | public override int GetHashCode()
      method Equals (line 213) | public override bool Equals(object obj)
      method ToString (line 224) | public override string ToString()
      method isGitRepository (line 229) | public static bool isGitRepository(DirectoryInfo dir)
      method isValidHead (line 235) | private static bool isValidHead(FileInfo head)
      method readFirstLine (line 241) | private static string readFirstLine(FileInfo head)
      method resolve (line 259) | private static DirectoryInfo resolve(DirectoryInfo directory)

FILE: GitSharp.Core/RepositoryChangedEventArgs.cs
  class RepositoryChangedEventArgs (line 45) | public class RepositoryChangedEventArgs : EventArgs
    method RepositoryChangedEventArgs (line 49) | public RepositoryChangedEventArgs(Repository repository)
    method ToString (line 54) | public override string ToString ()

FILE: GitSharp.Core/RepositoryConfig.cs
  class RepositoryConfig (line 48) | public class RepositoryConfig : FileBasedConfig
    method RepositoryConfig (line 52) | public RepositoryConfig(Repository repo)
    method RepositoryConfig (line 60) | public RepositoryConfig(Config @base, FileInfo cfgLocation)
    method getCore (line 66) | public CoreConfig getCore()
    method getTransfer (line 71) | public TransferConfig getTransfer()
    method getUserConfig (line 76) | public UserConfig getUserConfig()
    method getAuthorName (line 81) | public string getAuthorName()
    method getCommitterName (line 86) | public string getCommitterName()
    method getAuthorEmail (line 91) | public string getAuthorEmail()
    method getCommitterEmail (line 96) | public string getCommitterEmail()

FILE: GitSharp.Core/RepositoryListener.cs
  type RepositoryListener (line 40) | public interface RepositoryListener
    method refsChanged (line 48) | void refsChanged(RefsChangedEventArgs e);
    method indexChanged (line 56) | void indexChanged(IndexChangedEventArgs e);

FILE: GitSharp.Core/RepositoryState.cs
  class RepositoryState (line 46) | [Complete]
    method RepositoryState (line 63) | private RepositoryState(bool checkout, bool resetHead, bool commit, st...

FILE: GitSharp.Core/RevPlot/AbstractPlotRenderer.cs
  class AbstractPlotRenderer (line 77) | public abstract class AbstractPlotRenderer<TColor> {
    method paintCommit (line 89) | protected virtual void paintCommit(PlotCommit commit, int h) {
    method drawLabel (line 165) | protected abstract int drawLabel(int x, int y, Ref @ref);
    method computeDotSize (line 167) | private int computeDotSize(int h) {
    method laneColor (line 187) | protected abstract TColor laneColor(PlotLane myLane);
    method drawLine (line 198) | protected abstract void drawLine(TColor color, int x1, int y1, int x2,
    method drawCommitDot (line 212) | protected abstract void drawCommitDot(int x, int y, int w, int h);
    method drawBoundaryDot (line 223) | protected abstract void drawBoundaryDot(int x, int y, int w, int h);
    method drawText (line 235) | protected abstract void drawText(String msg, int x, int y);
    method laneX (line 237) | private int laneX(PlotLane myLane) {
    method laneC (line 242) | private int laneC(PlotLane myLane) {

FILE: GitSharp.Core/RevPlot/PlotCommit.cs
  class PlotCommit (line 46) | public class PlotCommit : RevCommit
    method getLane (line 53) | public PlotLane getLane()
    method PlotCommit (line 75) | public PlotCommit(AnyObjectId id, Ref[] tags) : base(id)
    method addPassingLane (line 82) | public void addPassingLane(PlotLane c) {
    method addChild (line 96) | public void addChild(PlotCommit c)
    method getChildCount (line 117) | public int getChildCount()
    method getChild (line 127) | public PlotCommit getChild(int nth)
    method isChild (line 137) | public bool isChild(PlotCommit c)
    method reset (line 145) | public override void reset()

FILE: GitSharp.Core/RevPlot/PlotCommitList.cs
  class PlotCommitList (line 58) | public class PlotCommitList :
    method clear (line 66) | public override void clear() {
    method Source (line 73) | public override void Source(RevWalk.RevWalk walker) {
    method findPassingThrough (line 90) | public void findPassingThrough(PlotCommit currCommit,
    method enter (line 102) | protected override void enter(int index, PlotCommit currCommit) {
    method setupChildren (line 158) | private void setupChildren(PlotCommit currCommit) {
    method nextFreeLane (line 164) | private PlotLane nextFreeLane() {
    method createLane (line 177) | protected PlotLane createLane()
    method recycleLane (line 185) | protected void recycleLane(PlotLane lane)

FILE: GitSharp.Core/RevPlot/PlotLane.cs
  class PlotLane (line 46) | public class PlotLane
    method getPosition (line 56) | public int getPosition() {
    method hashCode (line 60) | public int hashCode() {
    method equals (line 64) | public bool equals(Object o) {

FILE: GitSharp.Core/RevPlot/PlotWalk.cs
  class PlotWalk (line 49) | public class PlotWalk : RevWalk.RevWalk {
    method Dispose (line 53) | public override void Dispose() {
    method PlotWalk (line 62) | public PlotWalk(Repository repo) : base(repo) {
    method sort (line 67) | public override void sort(RevSort.Strategy s, bool use) {
    method createCommit (line 73) | protected override RevCommit createCommit(AnyObjectId id) {
    method getTags (line 78) | protected Ref[] getTags(AnyObjectId commitId) {
    class PlotRefComparator (line 86) | class PlotRefComparator : IComparer<Ref> {
      method PlotRefComparator (line 89) | public PlotRefComparator(Repository repository)
      method Compare (line 94) | public int Compare(Ref o1, Ref o2) {
      method timeof (line 110) | long timeof(Object o) {

FILE: GitSharp.Core/RevWalk/AbstractRevQueue.cs
  class AbstractRevQueue (line 44) | public abstract class AbstractRevQueue : Generator
    method AbstractRevQueue (line 50) | protected AbstractRevQueue()
    method AbstractRevQueue (line 54) | protected AbstractRevQueue(GeneratorOutputType outputType)
    method add (line 67) | public abstract void add(RevCommit c);
    method add (line 82) | public void add(RevCommit c, RevFlag queueControl)
    method addParents (line 105) | public void addParents(RevCommit c, RevFlag queueControl)
    method clear (line 118) | public abstract void clear();
    method everbodyHasFlag (line 120) | internal abstract bool everbodyHasFlag(int f);
    method anybodyHasFlag (line 122) | internal abstract bool anybodyHasFlag(int f);
    method Describe (line 132) | protected static void Describe(StringBuilder s, RevCommit c)
    class AlwaysEmptyQueue (line 140) | public class AlwaysEmptyQueue : AbstractRevQueue
      method add (line 142) | public override void add(RevCommit c)
      method next (line 147) | public override RevCommit next()
      method anybodyHasFlag (line 152) | internal override bool anybodyHasFlag(int f)
      method everbodyHasFlag (line 157) | internal override bool everbodyHasFlag(int f)
      method clear (line 162) | public override void clear()

FILE: GitSharp.Core/RevWalk/BlockObjQueue.cs
  class BlockObjQueue (line 42) | public class BlockObjQueue
    method BlockObjQueue (line 51) | public BlockObjQueue()
    method add (line 56) | public void add(RevObject c)
    method next (line 76) | public RevObject next()
    class BlockFreeList (line 93) | public class BlockFreeList
      method newBlock (line 97) | public Block newBlock()
      method freeBlock (line 107) | public void freeBlock(Block b)
    class Block (line 114) | public class Block
      method isFull (line 130) | public bool isFull()
      method isEmpty (line 135) | public bool isEmpty()
      method add (line 140) | public void add(RevObject c)
      method pop (line 145) | public RevObject pop()
      method clear (line 150) | public void clear()

FILE: GitSharp.Core/RevWalk/BlockRevQueue.cs
  class BlockRevQueue (line 42) | public abstract class BlockRevQueue : AbstractRevQueue
    method BlockRevQueue (line 49) | protected BlockRevQueue()
    method BlockRevQueue (line 58) | protected BlockRevQueue(GeneratorOutputType outputType)
    method BlockRevQueue (line 64) | protected BlockRevQueue(Generator s)
    method shareFreeList (line 95) | public override void shareFreeList(BlockRevQueue q)
    class BlockFreeList (line 102) | public class BlockFreeList
      method newBlock (line 106) | public Block newBlock()
      method freeBlock (line 118) | public void freeBlock(Block b)
      method clear (line 124) | public void clear()
    class Block (line 130) | public class Block
      method Block (line 135) | public Block()
      method isFull (line 163) | public bool isFull()
      method isEmpty (line 168) | public bool isEmpty()
      method canUnpop (line 173) | public bool canUnpop()
      method add (line 178) | public void add(RevCommit c)
      method unpop (line 183) | public void unpop(RevCommit c)
      method pop (line 188) | public RevCommit pop()
      method peek (line 193) | public RevCommit peek()
      method clear (line 198) | public void clear()
      method resetToMiddle (line 205) | public void resetToMiddle()
      method resetToEnd (line 210) | public void resetToEnd()

FILE: GitSharp.Core/RevWalk/BoundaryGenerator.cs
  class BoundaryGenerator (line 43) | public class BoundaryGenerator : Generator
    method BoundaryGenerator (line 47) | public BoundaryGenerator(RevWalk w, Generator s)
    method shareFreeList (line 57) | public override void shareFreeList(BlockRevQueue q)
    method next (line 62) | public override RevCommit next()
    class InitialGenerator (line 69) | private class InitialGenerator : Generator, IDisposable
      method InitialGenerator (line 79) | public InitialGenerator(RevWalk w, Generator s, BoundaryGenerator pa...
      method shareFreeList (line 93) | public override void shareFreeList(BlockRevQueue q)
      method next (line 98) | public override RevCommit next()
      method Dispose (line 133) | public void Dispose ()

FILE: GitSharp.Core/RevWalk/DateRevQueue.cs
  class DateRevQueue (line 46) | public class DateRevQueue : AbstractRevQueue
    method DateRevQueue (line 54) | public DateRevQueue()
    method DateRevQueue (line 58) | public DateRevQueue(Generator s)
    method add (line 68) | public override void add(RevCommit c)
    method next (line 91) | public override RevCommit next()
    method peek (line 106) | public RevCommit peek()
    method clear (line 111) | public override void clear()
    method everbodyHasFlag (line 117) | internal override bool everbodyHasFlag(int f)
    method anybodyHasFlag (line 126) | internal override bool anybodyHasFlag(int f)
    method ToString (line 140) | public override string ToString()
    method NewEntry (line 150) | private Entry NewEntry(RevCommit c)
    method FreeEntry (line 165) | private void FreeEntry(Entry e)
    class Entry (line 171) | internal class Entry

FILE: GitSharp.Core/RevWalk/DelayRevQueue.cs
  class DelayRevQueue (line 54) | class DelayRevQueue : Generator
    method DelayRevQueue (line 60) | public DelayRevQueue(Generator g)
    method next (line 71) | public override RevCommit next()

FILE: GitSharp.Core/RevWalk/EndGenerator.cs
  class EndGenerator (line 41) | public class EndGenerator : Generator
    method next (line 45) | public override RevCommit next()

FILE: GitSharp.Core/RevWalk/FIFORevQueue.cs
  class FIFORevQueue (line 46) | public class FIFORevQueue : BlockRevQueue
    method FIFORevQueue (line 54) | public FIFORevQueue()
    method FIFORevQueue (line 58) | public FIFORevQueue(Generator s)
    method add (line 63) | public override void add(RevCommit c)
    method unpop (line 90) | public void unpop(RevCommit c)
    method next (line 116) | public override RevCommit next()
    method clear (line 134) | public override void clear()
    method everbodyHasFlag (line 141) | internal override bool everbodyHasFlag(int f)
    method anybodyHasFlag (line 153) | internal override bool anybodyHasFlag(int f)
    method removeFlag (line 165) | public void removeFlag(int flag)
    method ToString (line 177) | public override string ToString()

FILE: GitSharp.Core/RevWalk/Filter/AndRevFilter.cs
  class AndRevFilter (line 55) | public abstract class AndRevFilter : RevFilter
    method create (line 65) | public static RevFilter create(RevFilter a, RevFilter b)
    method create (line 83) | public static RevFilter create(RevFilter[] list)
    method create (line 110) | public static RevFilter create(IEnumerable<RevFilter> list)
    class Binary (line 128) | private class Binary : AndRevFilter
      method Binary (line 133) | internal Binary(RevFilter one, RevFilter two)
      method include (line 139) | public override bool include(RevWalk walker, RevCommit cmit)
      method Clone (line 144) | public override RevFilter Clone()
      method ToString (line 149) | public override string ToString()
    class List (line 155) | private class List : AndRevFilter
      method List (line 159) | internal List(RevFilter[] list)
      method include (line 164) | public override bool include(RevWalk walker, RevCommit cmit)
      method Clone (line 173) | public override RevFilter Clone()
      method ToString (line 184) | public override string ToString()

FILE: GitSharp.Core/RevWalk/Filter/AuthorRevFilter.cs
  class AuthorRevFilter (line 48) | public static class AuthorRevFilter
    method create (line 65) | public static RevFilter create(string pattern)
    method TextFor (line 80) | private static string TextFor(RevCommit cmit)
    class PatternSearch (line 91) | private class PatternSearch : PatternMatchRevFilter
      method PatternSearch (line 93) | public PatternSearch(string patternText):  base(patternText, true, t...
      method text (line 97) | protected override string text(RevCommit cmit)
      method Clone (line 102) | public override RevFilter Clone()
    class SubStringSearch (line 108) | private class SubStringSearch : SubStringRevFilter
      method SubStringSearch (line 110) | internal SubStringSearch(string patternText) : base(patternText)
      method Text (line 114) | protected override string Text(RevCommit cmit)

FILE: GitSharp.Core/RevWalk/Filter/CommitTimeRevFilter.cs
  class CommitTimeRevFilter (line 48) | public abstract class CommitTimeRevFilter : RevFilter
    method Before (line 59) | public static RevFilter Before(DateTime ts)
    method After (line 71) | public static RevFilter After(DateTime ts)
    method Between (line 83) | public static RevFilter Between(DateTime since, DateTime until)
    method CommitTimeRevFilter (line 88) | private CommitTimeRevFilter(long ts)
    method Clone (line 93) | public override RevFilter Clone()
    class BeforeCommitTimeRevFilter (line 100) | private class BeforeCommitTimeRevFilter : CommitTimeRevFilter
      method BeforeCommitTimeRevFilter (line 106) | public BeforeCommitTimeRevFilter(long ts)
      method include (line 111) | public override bool include(RevWalk walker, RevCommit cmit)
      method ToString (line 116) | public override string ToString()
    class AfterCommitTimeRevFilter (line 122) | private class AfterCommitTimeRevFilter : CommitTimeRevFilter
      method AfterCommitTimeRevFilter (line 128) | public AfterCommitTimeRevFilter(long ts)
      method include (line 133) | public override bool include(RevWalk walker, RevCommit cmit)
      method ToString (line 147) | public override string ToString()
    class BetweenCommitTimeRevFilter (line 153) | private class BetweenCommitTimeRevFilter : CommitTimeRevFilter
      method BetweenCommitTimeRevFilter (line 157) | internal BetweenCommitTimeRevFilter(long since, long until)
      method include (line 163) | public override bool include(RevWalk walker, RevCommit cmit)
      method ToString (line 168) | public override string ToString()

FILE: GitSharp.Core/RevWalk/Filter/CommitterRevFilter.cs
  class CommitterRevFilter (line 48) | public static class CommitterRevFilter
    method create (line 65) | public static RevFilter create(string pattern)
    method TextFor (line 80) | private static string TextFor(RevCommit cmit)
    class PatternSearch (line 89) | private class PatternSearch : PatternMatchRevFilter
      method PatternSearch (line 91) | public PatternSearch(string patternText)
      method text (line 96) | protected override string text(RevCommit cmit)
      method Clone (line 101) | public override RevFilter Clone()
    class SubStringSearch (line 107) | private class SubStringSearch : SubStringRevFilter
      method SubStringSearch (line 109) | public SubStringSearch(string patternText)
      method Text (line 114) | protected override string Text(RevCommit cmit)

FILE: GitSharp.Core/RevWalk/Filter/MessageRevFilter.cs
  class MessageRevFilter (line 48) | public static class MessageRevFilter
    method create (line 65) | public static RevFilter create(string pattern)
    method TextFor (line 80) | private static string TextFor(RevCommit cmit)
    class PatternSearch (line 92) | private class PatternSearch : PatternMatchRevFilter
      method PatternSearch (line 94) | public PatternSearch(string patternText)
      method text (line 99) | protected override string text(RevCommit cmit)
      method Clone (line 104) | public override RevFilter Clone()
    class SubStringSearch (line 110) | private class SubStringSearch : SubStringRevFilter
      method SubStringSearch (line 112) | internal SubStringSearch(string patternText)
      method Text (line 117) | protected override string Text(RevCommit cmit)

FILE: GitSharp.Core/RevWalk/Filter/NotRevFilter.cs
  class NotRevFilter (line 44) | public class NotRevFilter : RevFilter
    method create (line 53) | public static RevFilter create(RevFilter a)
    method NotRevFilter (line 60) | private NotRevFilter(RevFilter one)
    method negate (line 65) | public override RevFilter negate()
    method include (line 70) | public override bool include(RevWalk walker, RevCommit cmit)
    method Clone (line 75) | public override RevFilter Clone()
    method ToString (line 80) | public override string ToString()

FILE: GitSharp.Core/RevWalk/Filter/OrRevFilter.cs
  class OrRevFilter (line 57) | public abstract class OrRevFilter : RevFilter
    method create (line 67) | public static RevFilter create(RevFilter a, RevFilter b)
    method create (line 83) | public static RevFilter create(RevFilter[] list)
    method create (line 110) | public static RevFilter create(IEnumerable<RevFilter> list)
    class Binary (line 129) | private class Binary : OrRevFilter
      method Binary (line 134) | internal Binary(RevFilter one, RevFilter two)
      method include (line 140) | public override bool include(RevWalk walker, RevCommit c
Condensed preview — 1047 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (8,295K chars).
[
  {
    "path": ".gitignore",
    "chars": 191,
    "preview": "*~\nbin\nobj\n*.user\n*.suo\n*.bak\n*.sln.cache\n_ReSharper*\nReports\n*/build\n*/test-results\n*.pidb\n*.usertasks\n*.userprefs\n*.or"
  },
  {
    "path": "ChangeLog",
    "chars": 1433,
    "preview": "2008-12-06  Miguel de Icaza  <miguel@novell.com>\n\n\t* Lib/Constants.cs: Add a handful of extra contants.\n\n\t* Lib/Codec.cs"
  },
  {
    "path": "Demo.txt",
    "chars": 93,
    "preview": "Git# demo browser (Windows only) has been moved to http://github.com/henon/GitSharp.Demo/tree"
  },
  {
    "path": "Git/CmdParserOptionSet.cs",
    "chars": 5310,
    "preview": "/*\n * Copyright (C) 2008, Shawn O. Pearce <spearce@spearce.org>\n * Copyright (C) 2009, Rolenun <rolenun@gmail.com>\n *\n "
  },
  {
    "path": "Git/Command.cs",
    "chars": 2424,
    "preview": "/*\n * Copyright (C) 2008, Shawn O. Pearce <spearce@spearce.org>\n *\n * All rights reserved.\n *\n * Redistribution and use"
  },
  {
    "path": "Git/CommandCatalog.cs",
    "chars": 7608,
    "preview": "/*\n * Copyright (C) 2008, Shawn O. Pearce <spearce@spearce.org>\n * Copyright (C) 2009, Rolenun <rolenun@gmail.com>\n *\n "
  },
  {
    "path": "Git/CommandRef.cs",
    "chars": 4863,
    "preview": "/*\n * Copyright (C) 2008, Shawn O. Pearce <spearce@spearce.org>\n * Copyright (C) 2009, Rolenun <rolenun@gmail.com>\n *\n "
  },
  {
    "path": "Git/Commands/Add.cs",
    "chars": 5855,
    "preview": "/*\n * Copyright (C) 2008, Shawn O. Pearce <spearce@spearce.org>\n * Copyright (C) 2009, Rolenun <rolenun@gmail.com>\n *\n "
  },
  {
    "path": "Git/Commands/Checkout.cs",
    "chars": 7650,
    "preview": "/*\n * Copyright (C) 2008, Shawn O. Pearce <spearce@spearce.org>\n * Copyright (C) 2009, Rolenun <rolenun@gmail.com>\n *\n "
  },
  {
    "path": "Git/Commands/Clone.cs",
    "chars": 6042,
    "preview": "/*\n * Copyright (C) 2008, Google Inc.\n * Copyright (C) 2008, Caytchen \n * Copyright (C) 2008, Rolenun\n *\n * All rights r"
  },
  {
    "path": "Git/Commands/Commit.cs",
    "chars": 8846,
    "preview": "/*\n * Copyright (C) 2008, Shawn O. Pearce <spearce@spearce.org>\n * Copyright (C) 2009, Rolenun <rolenun@gmail.com>\n *\n "
  },
  {
    "path": "Git/Commands/Config.cs",
    "chars": 5899,
    "preview": "/*\n * Copyright (C) 2008, Google Inc.\n * Copyright (C) 2009, Rolenun\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "Git/Commands/Fetch.cs",
    "chars": 4809,
    "preview": "/*\n * Copyright (C) 2008, Shawn O. Pearce <spearce@spearce.org>\n * Copyright (C) 2009, Rolenun <rolenun@gmail.com>\n *\n "
  },
  {
    "path": "Git/Commands/Help.cs",
    "chars": 2651,
    "preview": "/*\n * Copyright (C) 2008, Shawn O. Pearce <spearce@spearce.org>\n * Copyright (C) 2009, Henon <meinrad.recheis@gmail.com"
  },
  {
    "path": "Git/Commands/Init.cs",
    "chars": 3860,
    "preview": "/*\n * Copyright (C) 2008, Google Inc.\n * Copyright (C) 2009, Henon <meinrad.recheis@gmail.com>\n *\n * All rights reserve"
  },
  {
    "path": "Git/Commands/Log.cs",
    "chars": 10881,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n * Copyright (C) 2010, Andrew Cooper <andymancoope"
  },
  {
    "path": "Git/Commands/Merge.cs",
    "chars": 5626,
    "preview": "/*\n * Copyright (C) 2008, Shawn O. Pearce <spearce@spearce.org>\n * Copyright (C) 2009, Rolenun <rolenun@gmail.com>\n *\n "
  },
  {
    "path": "Git/Commands/Pull.cs",
    "chars": 6936,
    "preview": "/*\n * Copyright (C) 2008, Shawn O. Pearce <spearce@spearce.org>\n * Copyright (C) 2009, Rolenun <rolenun@gmail.com>\n *\n "
  },
  {
    "path": "Git/Commands/Push.cs",
    "chars": 5969,
    "preview": "/*\n * Copyright (C) 2008, Marek Zawirski <marek.zawirski@gmail.com>\n * Copyright (C) 2009, Rolenun <rolenun@gmail.com>\n"
  },
  {
    "path": "Git/Commands/Rm.cs",
    "chars": 3999,
    "preview": "/*\n * Copyright (C) 2008, Shawn O. Pearce <spearce@spearce.org>\n * Copyright (C) 2009, Rolenun <rolenun@gmail.com>\n *\n "
  },
  {
    "path": "Git/Commands/Status.cs",
    "chars": 11293,
    "preview": "/*\n * Copyright (C) 2008, Shawn O. Pearce <spearce@spearce.org>\n * Copyright (C) 2009, Rolenun <rolenun@gmail.com>\n *\n "
  },
  {
    "path": "Git/Commands/Version.cs",
    "chars": 2526,
    "preview": "/*\n * Copyright (C) 2008, Google Inc.\n * Copyright (C) 2009, Henon <meinrad.recheis@gmail.com>\n *\n * All rights reserve"
  },
  {
    "path": "Git/Die.cs",
    "chars": 2419,
    "preview": "/*\n * Copyright (C) 2008, Shawn O. Pearce <spearce@spearce.org>\n * Copyright (C) 2009, Henon <meinrad.recheis@gmail.com"
  },
  {
    "path": "Git/Git.csproj",
    "chars": 10440,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" DefaultTargets=\"Build\" xmlns=\"http://schemas.microso"
  },
  {
    "path": "Git/Options.cs",
    "chars": 33088,
    "preview": "//\n// Options.cs\n//\n// Authors:\n//  Jonathan Pryor <jpryor@novell.com>\n//\n// Copyright (C) 2008 Novell (http://www.novel"
  },
  {
    "path": "Git/Program.cs",
    "chars": 12921,
    "preview": "/*\n * Copyright (C) 2006, Robin Rosenberg <robin.rosenberg@dewire.com>\n * Copyright (C) 2008, Shawn O. Pearce <spearce@s"
  },
  {
    "path": "Git/Properties/AssemblyInfo.cs",
    "chars": 131,
    "preview": "using System.Reflection;\n\n[assembly: AssemblyTitle(\"git\")]\n[assembly: AssemblyDescription(\"Command line interface for G"
  },
  {
    "path": "Git/README.txt",
    "chars": 353,
    "preview": "CLI (Command Line Interface) is a not so close port of jgit's pgm-package and \nshall be equivalent to the original git c"
  },
  {
    "path": "Git/Resources/Commands.xml",
    "chars": 6148,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n<root>\n  <CommandList>\n    <Command>\n      <Name>GitSharp.CLI.Add</Name>\n      "
  },
  {
    "path": "Git/Stubs/Am.cs",
    "chars": 6149,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "Git/Stubs/Annotate.cs",
    "chars": 4898,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "Git/Stubs/Apply.cs",
    "chars": 6665,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "Git/Stubs/Archive.cs",
    "chars": 3973,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "Git/Stubs/Blame.cs",
    "chars": 5611,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "Git/Stubs/Branch.cs",
    "chars": 5253,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "Git/Stubs/CatFile.cs",
    "chars": 3817,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "Git/Stubs/CheckoutIndex.cs",
    "chars": 4431,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "Git/Stubs/Cherry.cs",
    "chars": 3147,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "Git/Stubs/CherryPick.cs",
    "chars": 3992,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "Git/Stubs/Clean.cs",
    "chars": 3734,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "Git/Stubs/CommitTree.cs",
    "chars": 3342,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "Git/Stubs/CountObjects.cs",
    "chars": 3406,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "Git/Stubs/Describe.cs",
    "chars": 4642,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "Git/Stubs/Diff.cs",
    "chars": 9969,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "Git/Stubs/DiffFiles.cs",
    "chars": 10833,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "Git/Stubs/DiffIndex.cs",
    "chars": 10213,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "Git/Stubs/DiffTree.cs",
    "chars": 12321,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "Git/Stubs/Difftool.cs",
    "chars": 3399,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "Git/Stubs/FastExport.cs",
    "chars": 4424,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "Git/Stubs/FastImport.cs",
    "chars": 4702,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "Git/Stubs/FetchPack.cs",
    "chars": 4393,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "Git/Stubs/FilterBranch.cs",
    "chars": 4870,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "Git/Stubs/FmtMergeMsg.cs",
    "chars": 3816,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "Git/Stubs/ForEachRef.cs",
    "chars": 3849,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "Git/Stubs/FormatPatch.cs",
    "chars": 13618,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "Git/Stubs/Fsck.cs",
    "chars": 4382,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "Git/Stubs/Gc.cs",
    "chars": 3770,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "Git/Stubs/Grep.cs",
    "chars": 7381,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "Git/Stubs/HashObject.cs",
    "chars": 3819,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "Git/Stubs/IndexPack.cs",
    "chars": 4284,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "Git/Stubs/LsFiles.cs",
    "chars": 5802,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "Git/Stubs/LsRemote.cs",
    "chars": 3442,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "Git/Stubs/LsTree.cs",
    "chars": 4214,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "Git/Stubs/Mailinfo.cs",
    "chars": 4182,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "Git/Stubs/Mailsplit.cs",
    "chars": 3647,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "Git/Stubs/MergeBase.cs",
    "chars": 3214,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "Git/Stubs/MergeFile.cs",
    "chars": 3482,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "Git/Stubs/MergeIndex.cs",
    "chars": 3611,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "Git/Stubs/Mergetool.cs",
    "chars": 3459,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "Git/Stubs/Mktree.cs",
    "chars": 3384,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "Git/Stubs/Mv.cs",
    "chars": 3650,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "Git/Stubs/NameRev.cs",
    "chars": 3942,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "Git/Stubs/Notes.cs",
    "chars": 3445,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "Git/Stubs/PackObjects.cs",
    "chars": 6843,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "Git/Stubs/PackRedundant.cs",
    "chars": 3435,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "Git/Stubs/PackRefs.cs",
    "chars": 3210,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "Git/Stubs/PatchId.cs",
    "chars": 3096,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "Git/Stubs/PeekRemote.cs",
    "chars": 3271,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "Git/Stubs/Prune.cs",
    "chars": 3364,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "Git/Stubs/PrunePacked.cs",
    "chars": 3377,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "Git/Stubs/Quiltimport.cs",
    "chars": 3566,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "Git/Stubs/ReadTree.cs",
    "chars": 4807,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "Git/Stubs/Rebase.cs",
    "chars": 5403,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution a"
  },
  {
    "path": "Git/Stubs/ReceivePack.cs",
    "chars": 3109,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "Git/Stubs/Reflog.cs",
    "chars": 4184,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "Git/Stubs/Relink.cs",
    "chars": 3216,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "Git/Stubs/Remote.cs",
    "chars": 3209,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "Git/Stubs/Repack.cs",
    "chars": 4550,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "Git/Stubs/Replace.cs",
    "chars": 3473,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "Git/Stubs/RequestPull.cs",
    "chars": 3108,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "Git/Stubs/Reset.cs",
    "chars": 3919,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "Git/Stubs/RevParse.cs",
    "chars": 7603,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "Git/Stubs/Revert.cs",
    "chars": 3843,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "Git/Stubs/SendPack.cs",
    "chars": 3914,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "Git/Stubs/Shortlog.cs",
    "chars": 3664,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "Git/Stubs/Show.cs",
    "chars": 4023,
    "preview": "/*\n * Copyright (C) 2008, Shawn O. Pearce <spearce@spearce.org>\n * Copyright (C) 2009, Rolenun <rolenun@gmail.com>\n *\n "
  },
  {
    "path": "Git/Stubs/ShowBranch.cs",
    "chars": 5343,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "Git/Stubs/ShowRef.cs",
    "chars": 3657,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "Git/Stubs/Stripspace.cs",
    "chars": 3241,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "Git/Stubs/Submodule.cs",
    "chars": 4217,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "Git/Stubs/Svn.cs",
    "chars": 3909,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "Git/Stubs/SymbolicRef.cs",
    "chars": 3416,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "Git/Stubs/Tag.cs",
    "chars": 4209,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "Git/Stubs/TarTree.cs",
    "chars": 3253,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "Git/Stubs/UnpackFile.cs",
    "chars": 3105,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "Git/Stubs/UnpackObjects.cs",
    "chars": 3487,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "Git/Stubs/UpdateIndex.cs",
    "chars": 5999,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "Git/Stubs/UpdateServerInfo.cs",
    "chars": 3214,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "Git/Stubs/UploadArchive.cs",
    "chars": 3114,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "Git/Stubs/UploadPack.cs",
    "chars": 3290,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "Git/Stubs/Var.cs",
    "chars": 3171,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "Git/Stubs/VerifyPack.cs",
    "chars": 3414,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "Git/Stubs/VerifyTag.cs",
    "chars": 3102,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "Git/Stubs/Whatchanged.cs",
    "chars": 4264,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "Git/TextBuiltin.cs",
    "chars": 10192,
    "preview": "/*\n * Copyright (C) 2008, Shawn O. Pearce <spearce@spearce.org>\n * Copyright (C) 2009, Rolenun <rolenun@gmail.com>\n * Co"
  },
  {
    "path": "GitSharp/AbstractObject.cs",
    "chars": 6155,
    "preview": "/*\n * Copyright (C) 2009, Henon <meinrad.recheis@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution and use in "
  },
  {
    "path": "GitSharp/AbstractTreeNode.cs",
    "chars": 3945,
    "preview": "/*\n * Copyright (C) 2009-2010, Henon <meinrad.recheis@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution and use"
  },
  {
    "path": "GitSharp/Author.cs",
    "chars": 2704,
    "preview": "/*\n * Copyright (C) 2009, Henon <meinrad.recheis@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution and use in "
  },
  {
    "path": "GitSharp/Blob.cs",
    "chars": 6252,
    "preview": "/*\n * Copyright (C) 2009, Henon <meinrad.recheis@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution and use in "
  },
  {
    "path": "GitSharp/Branch.cs",
    "chars": 11309,
    "preview": "/*\n * Copyright (C) 2009, Henon <meinrad.recheis@gmail.com>\n * Copyright (C) 2009, Nulltoken <emeric.fermas@gmail.com>\n"
  },
  {
    "path": "GitSharp/Change.cs",
    "chars": 4970,
    "preview": "/*\n * Copyright (C) 2009-2010, Henon <meinrad.recheis@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution and us"
  },
  {
    "path": "GitSharp/Commands/AbstractCommand.cs",
    "chars": 8035,
    "preview": "/*\n * Copyright (C) 2009, Henon <meinrad.recheis@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution and use in "
  },
  {
    "path": "GitSharp/Commands/AbstractFetchCommand.cs",
    "chars": 4922,
    "preview": "/*\n * Copyright (C) 2008, Shawn O. Pearce <spearce@spearce.org>\n *\n * All rights reserved.\n *\n * Redistribution and use"
  },
  {
    "path": "GitSharp/Commands/CloneCommand.cs",
    "chars": 11762,
    "preview": "/*\n * Copyright (C) 2009, Henon <meinrad.recheis@gmail.com>\n * Copyright (C) 2008, Google Inc\n * Copyright (C) 2008, Cay"
  },
  {
    "path": "GitSharp/Commands/FetchCommand.cs",
    "chars": 2678,
    "preview": "/*\n * Copyright (C) 2009, Stefan Schake <caytchen@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution and use in "
  },
  {
    "path": "GitSharp/Commands/IGitCommand.cs",
    "chars": 1801,
    "preview": "/*\n * Copyright (C) 2009, Henon <meinrad.recheis@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution and use in "
  },
  {
    "path": "GitSharp/Commands/InitCommand.cs",
    "chars": 6266,
    "preview": "/*\n * Copyright (C) 2009, Henon <meinrad.recheis@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution and use in s"
  },
  {
    "path": "GitSharp/Commands/LogCommand.cs",
    "chars": 22897,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n * Copyright (C) 2010, Andrew Cooper <andymancoope"
  },
  {
    "path": "GitSharp/Commands/MergeCommand.cs",
    "chars": 6220,
    "preview": "/*\n * Copyright (C) 2010, Henon <meinrad.recheis@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution and use in "
  },
  {
    "path": "GitSharp/Commands/PushCommand.cs",
    "chars": 9059,
    "preview": "/*\n * Copyright (C) 2009, Stefan Schake <caytchen@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution and use in"
  },
  {
    "path": "GitSharp/Commands/StatusCommand.cs",
    "chars": 8654,
    "preview": "/*\n * Copyright (C) 2010, Rolenun <rolenun@gmail.com>\n * \n * All rights reserved.\n *\n * Redistribution and use in sourc"
  },
  {
    "path": "GitSharp/Commands/_NotSupportedCommands.txt",
    "chars": 116,
    "preview": "The following git commands are not supported by the command api\n\nfmt-merge-msg: see MergeCommand.FormatMergeMessage"
  },
  {
    "path": "GitSharp/Commit.cs",
    "chars": 19461,
    "preview": "/*\n * Copyright (C) 2009, Henon <meinrad.recheis@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution and use in s"
  },
  {
    "path": "GitSharp/Config.cs",
    "chars": 3910,
    "preview": "/*\n * Copyright (C) 2009, Henon <meinrad.recheis@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution and use in "
  },
  {
    "path": "GitSharp/Diff.cs",
    "chars": 10495,
    "preview": "/*\n * Copyright (C) 2010, Henon <meinrad.recheis@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution and use in "
  },
  {
    "path": "GitSharp/Examples.cs",
    "chars": 6179,
    "preview": "/*\n * Copyright (C) 2010, Henon <meinrad.recheis@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution and use in "
  },
  {
    "path": "GitSharp/Git.cs",
    "chars": 5797,
    "preview": "/*\n * Copyright (C) 2009, Henon <meinrad.recheis@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution and use in "
  },
  {
    "path": "GitSharp/GitSharp.csproj",
    "chars": 10821,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" DefaultTargets=\"Build\" xmlns=\"http://schemas.microso"
  },
  {
    "path": "GitSharp/IReferenceObject.cs",
    "chars": 1947,
    "preview": "/*\n * Copyright (C) 2009, Henon <meinrad.recheis@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution and use in "
  },
  {
    "path": "GitSharp/IgnoreRules.cs",
    "chars": 5397,
    "preview": "/*\n * Copyright (C) 2009, Matt DeKrey <mattdekrey@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution and use in"
  },
  {
    "path": "GitSharp/Index.cs",
    "chars": 13177,
    "preview": "/*\n * Copyright (C) 2009, Henon <meinrad.recheis@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution and use in "
  },
  {
    "path": "GitSharp/Leaf.cs",
    "chars": 3516,
    "preview": "/*\n * Copyright (C) 2009-2010, Henon <meinrad.recheis@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution and us"
  },
  {
    "path": "GitSharp/Properties/AssemblyInfo.cs",
    "chars": 101,
    "preview": "using System.Reflection;\n\n[assembly: AssemblyTitle(\"GitSharp\")]\n[assembly: AssemblyDescription(\"\")]\n"
  },
  {
    "path": "GitSharp/README.txt",
    "chars": 250,
    "preview": "GitSharp.API shall not only provide user friendly access to git's objects and commands but also decouple CLI and any oth"
  },
  {
    "path": "GitSharp/Ref.cs",
    "chars": 5148,
    "preview": "/*\n * Copyright (C) 2009, Henon <meinrad.recheis@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution and use in "
  },
  {
    "path": "GitSharp/Remote.cs",
    "chars": 9229,
    "preview": "// \n// Remote.cs\n//  \n// Author:\n//       Lluis Sanchez Gual <lluis@novell.com>\n// \n// Copyright (c) 2010 Novell, Inc (h"
  },
  {
    "path": "GitSharp/Repository.cs",
    "chars": 24569,
    "preview": "/*\n * Copyright (C) 2009, Henon <meinrad.recheis@gmail.com>\n * Copyright (C) 2010, Andrew Cooper <andymancooper@gmail.co"
  },
  {
    "path": "GitSharp/RepositoryStatus.cs",
    "chars": 16476,
    "preview": "/*\n * Copyright (C) 2007, Dave Watson <dwatson@mimvista.com>\n * Copyright (C) 2008, Robin Rosenberg <robin.rosenberg@dew"
  },
  {
    "path": "GitSharp/ResetBehavior.cs",
    "chars": 2592,
    "preview": "/*\n * Copyright (C) 2009, Nulltoken <emeric.fermas@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution and use in"
  },
  {
    "path": "GitSharp/Stash.cs",
    "chars": 10000,
    "preview": "// \n// Stash.cs\n//  \n// Author:\n//       Lluis Sanchez Gual <lluis@novell.com>\n// \n// Copyright (c) 2010 Novell, Inc (ht"
  },
  {
    "path": "GitSharp/Stubs/AddCommand.cs",
    "chars": 7305,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "GitSharp/Stubs/AmCommand.cs",
    "chars": 8516,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "GitSharp/Stubs/AnnotateCommand.cs",
    "chars": 7920,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "GitSharp/Stubs/ApplyCommand.cs",
    "chars": 12432,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "GitSharp/Stubs/ArchiveCommand.cs",
    "chars": 4264,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "GitSharp/Stubs/BlameCommand.cs",
    "chars": 9771,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "GitSharp/Stubs/BranchCommand.cs",
    "chars": 7428,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "GitSharp/Stubs/CatFileCommand.cs",
    "chars": 3770,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "GitSharp/Stubs/CheckoutCommand.cs",
    "chars": 9682,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "GitSharp/Stubs/CheckoutIndexCommand.cs",
    "chars": 4879,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "GitSharp/Stubs/CherryCommand.cs",
    "chars": 2407,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "GitSharp/Stubs/CherryPickCommand.cs",
    "chars": 5046,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "GitSharp/Stubs/CleanCommand.cs",
    "chars": 4085,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "GitSharp/Stubs/CommitCommand.cs",
    "chars": 7599,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "GitSharp/Stubs/CommitTreeCommand.cs",
    "chars": 2462,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "GitSharp/Stubs/ConfigCommand.cs",
    "chars": 6243,
    "preview": "/*\n * Copyright (C) 2008, Google Inc\n * Copyright (C) 2009, Rolenun <rolenun@gmail.com>\n * \n * All rights reserved.\n *\n"
  },
  {
    "path": "GitSharp/Stubs/CountObjectsCommand.cs",
    "chars": 2700,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "GitSharp/Stubs/DescribeCommand.cs",
    "chars": 5901,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "GitSharp/Stubs/DiffCommand.cs",
    "chars": 19968,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "GitSharp/Stubs/DiffFilesCommand.cs",
    "chars": 22686,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "GitSharp/Stubs/DiffIndexCommand.cs",
    "chars": 20525,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "GitSharp/Stubs/DiffTreeCommand.cs",
    "chars": 26439,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "GitSharp/Stubs/DifftoolCommand.cs",
    "chars": 4658,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "GitSharp/Stubs/FastExportCommand.cs",
    "chars": 7190,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "GitSharp/Stubs/FastImportCommand.cs",
    "chars": 6456,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "GitSharp/Stubs/FetchPackCommand.cs",
    "chars": 5300,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "GitSharp/Stubs/FilterBranchCommand.cs",
    "chars": 10628,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "GitSharp/Stubs/ForEachRefCommand.cs",
    "chars": 3820,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "GitSharp/Stubs/FormatPatchCommand.cs",
    "chars": 29737,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "GitSharp/Stubs/FsckCommand.cs",
    "chars": 5211,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "GitSharp/Stubs/GcCommand.cs",
    "chars": 4690,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "GitSharp/Stubs/GrepCommand.cs",
    "chars": 11418,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "GitSharp/Stubs/HashObjectCommand.cs",
    "chars": 4209,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "GitSharp/Stubs/IndexPackCommand.cs",
    "chars": 5872,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "GitSharp/Stubs/LsFilesCommand.cs",
    "chars": 8039,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "GitSharp/Stubs/LsRemoteCommand.cs",
    "chars": 3376,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "GitSharp/Stubs/LsTreeCommand.cs",
    "chars": 4567,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "GitSharp/Stubs/MailinfoCommand.cs",
    "chars": 5565,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "GitSharp/Stubs/MailsplitCommand.cs",
    "chars": 3266,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "GitSharp/Stubs/MergeBaseCommand.cs",
    "chars": 2454,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "GitSharp/Stubs/MergeFileCommand.cs",
    "chars": 3171,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "GitSharp/Stubs/MergeIndexCommand.cs",
    "chars": 3198,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "GitSharp/Stubs/MergetoolCommand.cs",
    "chars": 5243,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "GitSharp/Stubs/MktreeCommand.cs",
    "chars": 3286,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "GitSharp/Stubs/MvCommand.cs",
    "chars": 3874,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "GitSharp/Stubs/NameRevCommand.cs",
    "chars": 3976,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "GitSharp/Stubs/NotesCommand.cs",
    "chars": 2961,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "GitSharp/Stubs/PackObjectsCommand.cs",
    "chars": 13264,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "GitSharp/Stubs/PackRedundantCommand.cs",
    "chars": 2959,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  },
  {
    "path": "GitSharp/Stubs/PackRefsCommand.cs",
    "chars": 2534,
    "preview": "/*\n * Copyright (C) 2010, Dominique van de Vorle <dvdvorle@gmail.com>\n *\n * All rights reserved.\n *\n * Redistribution an"
  }
]

// ... and 847 more files (download for full content)

About this extraction

This page contains the full source code of the henon/GitSharp GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 1047 files (7.5 MB), approximately 2.0M tokens, and a symbol index with 7129 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!