ファイルの名前を変更すると、ファイルの追加/チェックアウト/リバート/名前変更後の状態を視覚的に更新するGetStatus()
メソッドが実行されます/等。以前にチェックアウトしたファイルの名前を変更すると、RenamedInIndexまたはRenamedInWorkingDirステータスではなく、NewInIndexが返されます。ここでlibgit2sharp: "RenameInIndex"がリネームされたときに "NewInIndex"を返すステータス(パス)
は私の方法である:
public Tuple<SourceControlStatus, LockStatus> Status(string path)
{
try
{
var existingPath = path;
//finds an existing path so we can still get the status of deleted files (repo.Discover will fail if the path does not exist)
while (!File.Exists(path) && !Directory.Exists(path))
{
existingPath = Path.GetDirectoryName(existingPath);
}
var repoPath = Repository.Discover(path);
using (var repo = new Repository(repoPath))
{
var status = repo.RetrieveStatus(path);
return new Tuple<SourceControlStatus, LockStatus>(GetStatus(status), LockStatus.None);
}
}
catch (Exception ex)
{
}
return new Tuple<SourceControlStatus, LockStatus>(SourceControlStatus.Checkin, LockStatus.None);
}
は、誰も私は、私はそれが正確に右のステータスを返してもらうために何をする必要があるか理解するのに役立つことはできますか?または、アイテムが "NewInIndex"を返す場合は、リポジトリ全体のステータスを確認してから、名前が変更されたファイルのリストを調べ、該当するものがあるかどうかを確認するだけです。