GitScc.GitRepository.GetRevision C# (CSharp) Method

GetRevision() public method

public GetRevision ( string filename ) : string
filename string
return string
        public string GetRevision(string filename)
        {
            var relativePath = "";
            var revision = "";
            using (var repository = GetRepository())
            {
                if (TryGetRelativePath(filename, out relativePath))
                {
                    string objectName = Path.GetFileName(filename);
                    var indexEntry = repository.Index[relativePath];
                    if (indexEntry != null)
                    {
                        // determine if the file has been staged
                        var status = GetFileStatus(filename);
                        if (status == GitFileStatus.Added || status == GitFileStatus.Staged)
                            revision = "index";
                        else
                            revision = repository.Head.Tip.Sha.Substring(0, 7);
                    }
                }
            }
            return revision;
        }

Usage Example

        //TODO mode ot RepoManager
        public static DiffFileInfo GenerateDiffFileInfo(GitRepository repository, string filename)
        {
            var info = new DiffFileInfo();

            info.ActualFilename = Path.GetFileName(filename);
            info.ModifiedFilePath = filename;
            info.LastRevision = repository.GetRevision(filename);

            var filetype = Path.GetExtension(filename);

            //write unmodified file to disk
            var unmodifiedFile = repository.GetUnmodifiedFileByAbsolutePath(filename);
            var tempFileName = Path.GetTempFileName() + filetype;
            File.WriteAllText(tempFileName, unmodifiedFile);
            info.UnmodifiedFilePath = tempFileName;

            return info;
        }
All Usage Examples Of GitScc.GitRepository::GetRevision