我正在寻找一种方法来获取工作目录中所有文件的列表,并且他们需要FileStatus
。
我发现repo.RetrieveStatus()
是完美的,但它不会返回未经修改的文件。
private void GetFilesList()
{
//1. Get files in repository
Repository repo = new Repository(LocalRepo);
List<File> filelist = new List<File>();
foreach (var item in repo.RetrieveStatus()) //This only lists altered files
{
filelist.Add(new File(item.FilePath, this, item.State));
}
Files = filelist.ToArray<File>();
}
我能想到这样做的唯一方法是创建两个列表,一个包含目录中的所有文件:Directory.GetFiles();
- (ListA)
然后将其与从RetrieveStatus()
- (ListB)创建的列表进行比较。然后我必须假设 ListA中列表B中没有的任何文件都没有改变。
当然有更好的方法吗?
我已经在GitHub上搜索了存储库,我唯一能找到的问题是this one ,它似乎没有相关性。
有没有人知道我可以用于此目的的LibGit2Sharp库中的任何其他方法?
提前谢谢。
答案 0 :(得分:0)
有关此确切功能的持续拉取请求(请参阅 #863 )。
建议的实现是将可选的布尔值传递给StatusOptions
。
RepositoryStatus status = repo.RetrieveStatus(
new StatusOptions() { IncludeUnaltered = true | false });
随意订阅,以便及时了解其进度(以及最终合并)。