小编Avi*_*ish的帖子

带有svn.pushmergeinfo的Git-SVN:如何避免自引用mergeinfo行

在最新版本的git中,svn.pushmergeinfo引入了配置:

config key:svn.pushmergeinfo

此选项将导致git-svn尝试在可能的情况下自动填充SVN存储库中的svn:mergeinfo属性.目前,这只能在提交非快进合并时才能完成,其中除第一个之外的所有父级已经被推入SVN.

我们使用它来创建一个混合环境,其中一些开发人员使用SVN,一些使用Git-SVN.当在Git中分支和合并SVN分支然后git svn dcommit回到SVN时,这很有用,并且它实际上在几乎所有情况下都正确地填充了mergeinfo属性.但是,在特定情况下,它会错误地执行.

这种情况主要发生在将分支合并到主分支(主干)之后,将主干合并到该分支(实际上,相当于SVN重新整合).

从主干到分支的合并为该分支上的trunk增加了一个mergeinfo行(根据需要),但是从分支返回到trunk的reintegrate-merge复制到trunk的mergeinfo中,有效地在trunk的mergeinfo属性中创建了一个自引用行这指向了自己.据我所知,这种自我引用永远不应该发生,并且单独使用SVN时不会发生.所以,我认为这是一个git-svn错误(我在这里报告).这反过来会产生影响其他SVN用户的问题,并在未来的提交中破坏mergeinfo.

我正在寻找的是一种解决方法:如何轻松告诉git不要为要合并的分支复制mergeinfo行,或者如何告诉SVN在提交时删除那些自引用(或任何其他解决方案导致自引用mergeinfo行,但确实保留了自动svn的其他特性:从git创建mergeinfo.

(为了澄清,我不是在寻找人们向我引用git手册或告诉我"与Git-SVN合并是危险的并且不受支持".请仅在你可以帮助解决问题或提出替代工作流程时回答.指向相关的git代码也会有所帮助,因为它们可能允许我创建一个补丁来解决这个问题.谢谢!)

svn git git-svn mergeinfo

11
推荐指数
1
解决办法
1759
查看次数

如何使用O(n)中的LINQ根据特定顺序查找第一个项目?

假设我有一个项目列表(例如,帖子),我想根据一些非平凡的顺序找到第一个项目(例如,PublishDate然后将CommentsCount作为打破平局).使用LINQ执行此操作的自然方式如下:

posts.OrderBy(post => post.PublishDate).ThenBy(post => post.CommentsCount).First()
Run Code Online (Sandbox Code Playgroud)

然而,我的微优化器担心调用OrderBy实际上花费我O(n*lgn)来排序整个列表,当我真正需要的是O(n)find-minimum操作时.

那么,LINQ是否足够智能从OrderBy()返回一些知道如何优化后续First()调用的东西?如果没有,开箱即用的更好的方法是什么?(我总是可以编写自己的FindMinimumItem实现,但这看起来有点过分).

c# linq complexity-theory sql-order-by

7
推荐指数
1
解决办法
174
查看次数

标签 统计

c# ×1

complexity-theory ×1

git ×1

git-svn ×1

linq ×1

mergeinfo ×1

sql-order-by ×1

svn ×1