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;
}