小编Chr*_*ris的帖子

git的"rebase --preserve-merges"到底是做什么的(为什么?)

Git的命令文档rebase非常简短:

--preserve-merges
    Instead of ignoring merges, try to recreate them.

This uses the --interactive machinery internally, but combining it
with the --interactive option explicitly is generally not a good idea
unless you know what you are doing (see BUGS below).
Run Code Online (Sandbox Code Playgroud)

那么当你使用时会发生什么--preserve-merges?它与默认行为(没有该标志)有何不同?"重新创建"合并等意味着什么?

git git-rebase

328
推荐指数
3
解决办法
8万
查看次数

如何在所有克隆/机器上禁用Git end-of-line(CRLF to LF)?

正如人们可以 其他 帖子中收集的那样,Git的终端规范化有其优点和缺点.我有一个特定的Windows项目,我认为最好的办法是完全禁用行尾规范化.也就是说,我希望保留所有换行符(大部分都是CRLF完整的),而不是让git将它们规范化为 - LF仅在幕后,我希望该更改能够影响所有计算机上存储库的所有克隆.问题是最有效的方法.

大多数关于Git行尾规范化的讨论都是根据core.autocrlf,我可以通过设置来实现我的目标core.autocrlf=false.但是,这是一个git-config设置,我相信必须在每台机器上分别设置它.如果为true,那似乎容易出错,特别是因为msysgit安装程序会将其引导到设置中core.autocrlf=true.

git newline gitattributes core.autocrlf

64
推荐指数
1
解决办法
2万
查看次数

在Git樱桃挑选或rebase合并冲突中,BASE(又名"祖先"),LOCAL和REMOTE如何确定?

在正常的Git合并冲突中,三向合并的三个版本的文件大致如下:

  • LOCAL:我的分支机构的版本
  • REMOTE:来自其他分支的版本
  • BASE:来自两个分支的共同祖先的版本(特别是我的分支的HEAD的共同祖先和另一个分支的HEAD)

当一个Git樱桃挑选产生合并冲突时,没有共同的祖先,正确地说,那么这些东西是如何确定的?关于rebase也可以这样说.

git cherry-pick git-cherry-pick

27
推荐指数
1
解决办法
6022
查看次数

Sql Server Service Broker:如何构建简单队列方案的对话?

我是一个Sql Server Service Broker新手,我正在尝试掌握为一个(看似)简单的用例设置Service Broker的最佳方法:我想创建一个简单的工作队列,其中一个应用程序将工作项丢弃到队列和单独的应用程序从该队列中获取工作项并处理它们.第一个应用程序不需要从第二个应用程序返回状态消息.我希望队列存在于单个Sql Server实例中.

最令我困惑的是对话/对话与这种情况的关系.我知道你只能在对话/对话的上下文中发送/接收消息,但由于这两个应用程序之间没有来回的喋喋不休,我对于何时是创建新会话的正确时间感到迷茫.两种极端的替代方案似乎是:

  • 每次我排队工作项目,我都会开始一个新的对话.因此,每个对话最终都只有一条消息.
  • 在部署时,我手动创建一个无限寿命对话.在将工作项排入队列时,我总是将其作为单个对话的一部分发送.

走这些路线的后果是什么?

此外,在第一种情况下,似乎我需要进行一些END CONVERSATION,以便Sql Server能够在内部清理资源.什么时候将它们放入正确的地方是否有任何指导?(或者最终依靠对话超时可能会更好?)

sql-server queue service-broker

16
推荐指数
2
解决办法
7304
查看次数

是否可以使用.NET为Amazon Elastic MapReduce编写map/reduce作业?

是否可以使用.NET语言为Amazon Elastic MapReduce(http://aws.amazon.com/elasticmapreduce/)编写map/reduce作业?特别是我想使用C#.

初步研究表明没有.上面的URL的营销文本表明你有"Java,Ruby,Perl,Python,PHP,R或C++的选择",而没有提到.NET语言.这个亚马逊线程(http://developer.amazonwebservices.com/connect/thread.jspa?messageID=136051 - "支持C#/ F#map/reducers")明确表示"目前Amazon Elastic MapReduce不支持Mono平台或语言如C#或F#."

以上表明它无法完成.我想知道是否有任何变通方法.例如,我可以为我的帐户修改Elastic MapReduce机器映像,并在那里安装Mono吗?

另一种方法,由亚马逊常见问题解答"使用您的Jar所需的其他软件"(http://docs.amazonwebservices.com/ElasticMapReduce/latest/DeveloperGuide/index.html?CHAP_AdvancedTopics.html)和"如何使用其他文件和库"使用Mapper或Reducer"(http://docs.amazonwebservices.com/ElasticMapReduce/latest/DeveloperGuide/index.html?addl_files.html),将Map/Reduce作业的第一步安装在Mono上本地实例.这听起来有点低效,但也许它可以工作?

也许更好的选择是尝试放弃Elastic MapReduce的便利性,并在EC2上手动设置我自己的Hadoop集群.然后我假设我可以毫无困难地安装Mono.

.net mapreduce amazon-ec2

13
推荐指数
2
解决办法
2603
查看次数

为什么Java的invokevirtual需要解析被调用方法的编译时类?

考虑这个简单的Java类:

class MyClass {
  public void bar(MyClass c) {
    c.foo();
  }
}
Run Code Online (Sandbox Code Playgroud)

我想讨论一下c.foo()行会发生什么.

原创,误导性问题

注意:并非所有这些实际上都发生在每个invokevirtual操作码上.提示:如果您想了解Java方法调用,请不要只阅读invokevirtual的文档!

在字节码级别,c.foo()的内容将是invokevirtual操作码,并且根据invokevirtual 的文档,或多或少会发生以下情况:

  1. 查找编译时类MyClass中定义的foo方法.(这涉及首先解析MyClass.)
  2. 做一些检查,包括:验证c不是初始化方法,并验证调用MyClass.foo不会违反任何受保护的修饰符.
  3. 找出实际调用的方法.特别是,查找c的运行时类型.如果该类型具有foo(),则调用该方法并返回.如果没有,查找c的运行时类型的超类; 如果该类型具有foo,则调用该方法并返回.如果没有,查找c的运行时类型的超类的超类; 如果该类型具有foo,则调用该方法并返回.等等..如果找不到合适的方法,那么错误.

单独的步骤#3似乎足以确定调用哪个方法并验证所述方法具有正确的参数/返回类型.所以我的问题是为什么第一步执行第一步.可能的答案似乎是:

  • 在步骤#1完成之前,您没有足够的信息来执行步骤#3.(乍一看似乎难以置信,所以请解释一下.)
  • 在#1和#2中完成的链接或访问修饰符检查对于防止发生某些不良事件至关重要,并且必须基于编译时类型而不是运行时类型层次结构执行这些检查.(请解释.)

修订问题

行c.foo()的javac编译器输出的核心将是这样的指令:

invokevirtual i
Run Code Online (Sandbox Code Playgroud)

其中i是MyClass的运行时常量池的索引.该常量池条目的类型为CONSTANT_Methodref_info,并将指示(可能是间接的)A)调用方法的名称(即foo),B)方法签名,以及C)调用该方法的编译时类的名称on(即MyClass).

问题是,为什么需要编译时类型(MyClass)的引用?由于invokevirtual将在c的运行时类型上进行动态调度,因此将引用存储到编译时类是不是多余的?

java methods jvm virtual-functions

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

是否可以在任何地方记录发布配置文件(.pubxml)中可用的所有标签/属性的含义?

在Visual Studio中创建新的.pubxml时,它具有在顶级PropertyGroup元素下定义的一组基本属性(例如,属性WebPublishMethod,DeployIisAppPath等).但是我发现很难找到这些属性的确切含义的文档,更不用说可以在配置文件中使用的完整可选标记/属性集的引用.这些文件是否存在?到目前为止,唯一可用于了解大量标签/属性的方法是查看其他人的示例.pubxml文件.

希望有人可以证明我是错的,但似乎很难通过Google搜索来表达这样的文档.

asp.net visual-studio publish-profiles

10
推荐指数
1
解决办法
903
查看次数

当我的工作树和/或索引变脏时,"git pull"是否安全?

假设我有一个git repo,其工作树和/或索引是"脏的"(即我有尚未提交或隐藏的本地修改)并且我很想在没有先提交或存储的情况下执行"git pull".(或者,说我正在向git介绍一个新的团队成员,当他们的本地回购"肮脏" 时,他们很想运行"git pull ".)我想知道做一个"git pull"是多么安全这个案例.如果它不安全,那可能发生的最糟糕的事情是什么?如果我从受信任的vs不受信任的来源中撤出,这有关系吗?

到目前为止,我的调查表明,对于我所认为的一个相当简单的问题,一系列令人困惑的想法.

首先,git-stash手册页听起来像git pull非常安全,并且如果你遇到可能出错的情况,它会中止:

   Pulling into a dirty tree
       When you are in the middle of something, you learn that there are
       upstream changes that are possibly relevant to what you are doing.
       When your local changes do not conflict with the changes in the
       upstream, a simple git pull will let you move forward.

       However, there are cases in which your local changes do conflict
       with the upstream changes, …
Run Code Online (Sandbox Code Playgroud)

git git-pull

9
推荐指数
1
解决办法
8882
查看次数

让服务经纪人对检测毒药信息不那么积极?

Sql Service Broker使用以下启发式方法来确定队列中的消息何时阻止您的应用程序执行任何有用的工作:

"Service Broker提供自动中毒消息检测.当包含RECEIVE语句的事务回滚五次时,Service Broker会通过自动将队列状态设置为OFF来禁用事务从中接收消息的所有队列." (http://msdn.microsoft.com/en-us/library/ms166137.aspx)

我对这种基本方法很好,但有没有办法将重试次数从5改为更高,可能是20?

这对我有用的原因是我当前用来处理队列的代码是一个在Sql Server之外的应用程序,它有大约10个工作线程,每个工作线程都有一个独立的SqlConnection,每个线程执行自己独立的RECEIVE声明.如果此应用程序由于某种原因而死亡,则可能会为每个工作线程导致单独的回滚事务,这足以回滚以禁用队列.相反,我希望能够在不禁用队列的情况下终止我的应用程序.我应该重写应用程序以使用单个SqlConnection,但如果我可以说类似的话会更容易

ALTER QUEUE MyQueue SET RollbacksBeforePoison=20
Run Code Online (Sandbox Code Playgroud)

有可能吗?

sql-server service-broker

6
推荐指数
1
解决办法
2317
查看次数

Mondrian/OLAP是否是加入大尺寸/套装的错误工具?

简介:我见过的MDX连接的大多数示例都涉及加入相对较小的集合,例如每个集合数十或数百个项目.但我发现自己也想尝试加入(特别是"非空加入")集合,每个集合包含数千或数万个项目,到目前为止它还不能正常运行.我想知道这是否可以使用,或者我是否需要考虑使用除Mondrian/OLAP之外的其他东西.

具体来说,我有一个记录公司(n = 7000)和客户(n = 27000)之间互动的立方体.目前公司和客户都是完全扁平化的层次结构; 有所有级别和个人 - 公司级别,其间没有其他级别.有一个中央事实表,以及公司和客户的单独维度表.

我的用户至少似乎想要沿着这些方向获取摘要报告,聚合公司和客户之间的所有非空交互:

select
  [Measures].[Amount] on columns,
  NonEmptyCrossJoin([Firm].Children,
                      [Client].Children) on rows
from MyCube
Run Code Online (Sandbox Code Playgroud)

但是这个查询及其变体在我的测试Mondrian设置中不起作用.要么我得到一个OutOfMemoryException(在2GB的Java堆上),要么Java似乎花了不可思议的长时间在mondrian.rolap.RolapResult $ AxisMember.mergeTuple(TupleCursor).(如果有帮助的话,我可以提供更完整的堆栈跟踪.)"不可思议的长"我的意思是Java在我放弃之前会在数小时内停留在查询中.

我最初的预期上面的查询进行确定,因为从概念上讲它可以做一定程度的只是在做沿着这些路线的SQL查询有效:

select Firm, Client, Sum(Amount) as n
from fact, firm, client
where fact.firmid = firm.firmid and fact.clientid = client.clientid
group by Firm, Client
Run Code Online (Sandbox Code Playgroud)

(事实上​​,如果我直接在MySql中执行这样的操作,则执行时间不会超过15秒.)

但是从调试日志来看,Mondrian似乎没有尝试这种优化.相反,它似乎是在内部进行连接,并且最终变得特别慢.我在我的mondrian.properties中设置了mondrian.native.crossjoin.enable = true,但这似乎不是Mondrian能够"生成本机"的连接类型之一.(如果我打开mondrian.native.unsupported.alert = ERROR,那么我得到相应的异常.)

我想知道我是否需要阻止我的用户尝试加入如此大的尺寸/集合,或者Mondrian是否可能不是我在这里寻找的工具.但也许我只是做错了什么.

olap join cross-join mondrian

6
推荐指数
1
解决办法
3980
查看次数

在将PDF转换为文本时,我可以阻止ABCpdf将单词混合在一起(例如mashingwordstogether)吗?

我正在使用ABCpdf来提取某些PDF文件的文本内容,特别是通过调用Doc.GetText("Text").(你可以在一个循环中调用它,每页一次.)这通常很有效,但是对于某些PDF文件,生成的文本包含缺少空格字符的文本,例如

Thissentencedoesn'thaveanyspacesbetweenwords.

有趣的是,如果我尝试使用Apache Tika(由PDFBox提供支持)从完全相同的PDF中提取文本,我倾向于获得我期望在单词之间的所有空间.也就是说,上述句子将由Tika作为

这句话在单词之间没有任何空格.

总的来说,这两个工具就像他们害怕犯下不同的错误一样 - ABCpdf就像世界上最糟糕的事情就是插入一个不属于自己的空间,而Tika就像世界上最糟糕的事情一样是无法插入一个人所属的空间.

有没有任何设置可以让ABCpdf在这方面更像Tika?

abcpdf

5
推荐指数
1
解决办法
1226
查看次数