- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有两个日期 - 从和到。我必须找到在该日期差异之间在存储库中更改的文件并列出它。这是一个相关的问题,它得到了树之间的差异。 Get files modified/added/removed from a commit in LibGit2Sharp .
最佳答案
所以让我们假设您正在尝试复制:
git log --reverse --since "11/10/2015" --until="11/15/2015" --format="%cD %s"
一旦你有了一个提交列表,ICommitLog
,通过所有 repo 的 Commits
,过滤的分支列表等。你可以通过 Linq 过滤。
因此创建您的提交列表:
var repo = new Repository ("/Users/sushi/code/playscript/mono");
var filter = new CommitFilter {
SortBy = CommitSortStrategies.Time | CommitSortStrategies.Reverse,
};
var commits = repo.Commits.QueryBy(filter);
现在使用 ICommitLog commits
对象,在提交对象上应用 Linq
过滤器。在这种情况下,我使用提交者的日期并过滤从今天起 2 到 7 天的提交,但请记住还有一个 Author
日期:
var since = new DateTimeOffset(DateTime.Now.AddDays(-7));
var until = new DateTimeOffset(DateTime.Now.AddDays(-2));
var filteredCommitLog = commitLog.Where(c => c.Committer.When > since && c.Committer.When < until);
foreach (Commit commit in filteredCommitLog)
{
Console.WriteLine("{0} : {1}", commit.Committer.When.ToLocalTime(), commit.MessageShort);
}
结果:
11/15/2015 5:32:36 AM -08:00 : [runtime] Fix Thread.CurrentThread in non-root appdomains by setting the tls slot in start_wrapper, otherwise Thread.CurrentThread would create a new Thread object so there would be two. Fixes #35828.
11/15/2015 12:00:30 AM -08:00 : Fix a warning.
....
11/10/2015 6:41:09 AM -08:00 : Merge pull request #2214 from kumpera/fix_enum_get_get_hashcode
11/10/2015 6:07:50 AM -08:00 : [Mono.Posix] Update incorrect test
更新:
我完全错过了这个答案的一部分,修改后的文件列表...:-/(需要更多咖啡)
git log --name-status --reverse --since "11/10/2015" --until="11/15/2015" --format="%cD %s"
变成:
var since = new DateTimeOffset(DateTime.Now.AddDays(-7));
var until = new DateTimeOffset(DateTime.Now.AddDays(-2));
var filteredCommitLog = commitLog.Where(c => c.Committer.When > since && c.Committer.When < until);
foreach (Commit commit in filteredCommitLog)
{
Console.WriteLine("{0} : {1}", commit.Committer.When.ToLocalTime(), commit.MessageShort);
foreach (var parent in commit.Parents) {
foreach (TreeEntryChanges change in repo.Diff.Compare<TreeChanges>(parent.Tree, commit.Tree)) {
Console.WriteLine ("\t{0} :\t{1}", change.Status, change.OldPath);
}
}
}
输出示例:
11/11/2015 8:09:41 AM -08:00 : Crashing test in mono_class_init() from a MonoGenericClass.
Modified : mcs/class/corlib/Test/System.Reflection/MonoGenericClassTest.cs
11/11/2015 8:12:03 AM -08:00 : [runtime] mono_class_init() - don't look for metadata if the dynamic image doesn't have it.
Modified : mono/metadata/class.c
11/11/2015 9:05:07 AM -08:00 : Merge pull request #2217 from rcruzs00/master
Modified : mcs/tools/macpack/LOADER
11/11/2015 11:26:25 AM -08:00 : Merge pull request #2198 from BrzVlad/feature-concurrent-work
Modified : mono/sgen/sgen-conf.h
Modified : mono/sgen/sgen-gc.c
Modified : mono/sgen/sgen-memory-governor.c
Modified : mono/sgen/sgen-workers.c
Modified : mono/sgen/sgen-workers.h
Modified : acceptance-tests/.gitignore
Added : acceptance-tests/GCStressTests/AssemblyExtensions.cs
Added : acceptance-tests/GCStressTests/AssemblyLoadContext.cs
Modified : acceptance-tests/Makefile.am
Modified : acceptance-tests/SUBMODULES.json
Modified : acceptance-tests/versions.mk
要跳过日志并仅获取过滤后的提交列表中的文件列表:
git log --name-status --since "11/10/2015" --until="11/15/2015" --format=""
变成:
foreach (TreeEntryChanges change in repo.Diff.Compare<TreeChanges>(filteredCommitLog.First().Tree, filteredCommitLog.Last().Tree)) {
Console.WriteLine ("\t{0}\t:\t{1}", change.Status, change.OldPath);
}
示例输出:
Modified : acceptance-tests/Makefile.am
Modified : acceptance-tests/SUBMODULES.json
Modified : external/referencesource
Modified : mcs/class/Facades/Makefile
Modified : mcs/class/Mono.Cairo/Mono.Cairo/Context.cs
Modified : mcs/class/Mono.Security/Mono.Security.Interface/CertificateValidationHelper.cs
Modified : mcs/class/Mono.Security/Mono.Security.Interface/MonoTlsProvider.cs
Modified : mcs/class/System.Threading.Tasks.Dataflow/Test/System.Threading.Tasks.Dataflow/ActionBlockTest.cs
Modified : mcs/class/System.Threading.Tasks.Dataflow/Test/System.Threading.Tasks.Dataflow/BatchBlockTest.cs
Modified : mcs/class/System.Threading.Tasks.Data
关于c# - 如何使用 libgit2sharp 更改/删除/添加文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33750641/
我尝试安装 expo在我执行命令后exp start但我得到了: Something went wrong installing the "sharp" module Cannot find modu
推荐一个C#开发的,实现WebSocket功能的开源项目。 01 项目简介 websocket-sharp提供 WebSocket 客户端和服务器库,基于 C# 开发的,并遵循 WebSocket
我需要在 fsharp 中制作一个程序,将输入文本文件中所有出现的字符串“needle”替换为另一个字符串“replace”。这个问题的一个很好的解决方案已经发布在这里: F# - fileRepla
我对该库有很多麻烦(显然是因为我是新手)。我正在使用Microsoft Visual Studio 2015。 首先,我绝对不知道如何将这个库添加到我的项目中。我也没有找到任何对Google有帮助的信
我已经按照错误所说的做了。我删除了 sharp 然后 npm install --ignore-scripts=false --verbose 但它仍然不起作用。 我也试过: rimraf node_
是否可以在 GeneticSharp 中实现不等式约束(线性或非线性)? 最佳答案 您可以在适应度函数中实现它们,通过与正常适应度范围相比以惊人的惩罚来惩罚违反约束的染色体。 我已经解决了一些问题并且
我在放置要从 Microsoft 引入的 F# 语言的概念和可能性时遇到问题。 F# 仅用于声明函数吗?还是通过将 F# 与普通 C# 或 VB 代码混合在一起,将应用程序“完全”用 F# 编写? 最
我正在使用 WkHtmlToXSharp (QT webkit) 库构建一个 HTML 到 PDF 转换器,并且想知道是否有人知道如何向文档添加页眉和页脚?我在这里看到了一些有关此库的问题,但找不到有
声明一个将对列表转换为关系的函数。 type Relation = ('a * 'b list) list 基本上,转动这个: [(2,"c");(1,"a");(2,"b")] 进入此: [(2,[
这是我的代码,当我输入一个非常大的数字时,我得到堆栈溢出错误有人知道为什么吗?当我输入一个非常大的数字时,我得到了那个错误,我不确定是什么原因造成的,只有大数字才能正常工作..... // // me
我有一个非托管结构,我想编码为 c sharp,它看起来基本上是这样的: struct MyStruct{ /* ... some stuff ... */ int numChild
给定多个时间跨度,我怎样才能得到一个数组来给出一天的工作小时数。 工作时间从09:00开始到17:00结束 例子: 15-Nov-2017 16:00 - 17-Nov-2017 12:00 -> 应
当然,最新的 Restsharp 中的默认值应该能够序列化“日期时间”。 下面是我的请求构建 var request = new RestRequest(Method.POST); request.R
我试图在另一个静态方法中调用 Browser.NewPageAsync(),但是当我调用它时,调用它的方法就退出了。 partial class Program { s
我使用 websocket-sharp ( https://github.com/sta/websocket-sharp )(仅限服务器端)。 我可以将许多客户端应用程序连接到我的 websocket
通过 Visual Studio,您可以轻松地为事件(单击按钮等)创建方法。有没有办法为多个事件创建一个方法,比如在单击三个按钮之一或输入多个文本框之一时运行的方法? 最佳答案 一旦您创建了该方法,您
我们刚刚开始试用 gStreamer-Sharp,看看我们是否可以创建管道,以便为我们的 .NET 软件编写媒体播放器组件。我们在 Windows/.NET 上运行,而不是 Linux/Mono。 一
我正在尝试使用 menustrip,我有 helpToolStripMenuItem_Click 可能有人会帮助我关于如何放置文档的代码,即如果我单击帮助,一个新的窗口显示出现像我从 vlc 帮助按钮
我有一个站点 Index.html 并且有一个从数据库生成的类别菜单。菜单由 HTML anchor 组成,但 href 属性始终类似于“Index.html#cat=xyz”,因为每个类别的内容都是
有人知道在 gtk# 中是否有一个 richtextbox 等效项或任何复制功能的方法吗? 我可能不需要完整的 rtf 支持,如果无法完成完整的 rtf 解决方案,我可能可以显示彩色文本。 提前致谢。
我是一名优秀的程序员,十分优秀!