git合并冲突解决方案本身是否比其他SCM(CVS,Subversion等)以及独立的合并工具更有效率?如果是这样,为什么?
澄清:这里我对算法本身更感兴趣 - 它与普通的diff3方法有什么不同?
一些工具声称更聪明(例如Guiffy),是否值得插入作为git合并工具?git是否更聪明地找出在文件内或跨文件移动的文本?(而不是报告嘈杂的冲突..我对Linus的谈话有一种模糊的印象).
背景:刚刚做了一个巨大的合并使用git-svn,导致了一半的冲突比我得到的普通svn merge(第一次合并没有跟踪)..所以我想了解原因.
类似的Qs/As周围,但它们更多的是关于过程的大局,以及合并如何更自然地适应.为此,git"优化合并"(而不仅仅是分支),它实际上意味着:
?现在,我最感兴趣的是1和2.
我想通过简单的基于文本的界面访问Redmine任务库 - 想知道最短路径是什么(最小投资/开发).
现在,这归结为2个用例/阶段:
从简单的,基于wiki的,发布的TODO列表中导入一批任务到Redmine,即.纯文本内容.这更像是一次性任务,因此快速而肮脏的解决方案就没问题了.
稍后,一些平滑的双向同步将是很好的.例如,通过编辑器中的一些友好的纯文本(或XML)编辑任务的负载,或脚本,我可以通过简单的文本处理来操作所有这些任务; 然后与Redmine同步并将其提交回来.
有关实现这些最简单方法的任何想法?
我更喜欢外部解决方案(即不接触服务器),特别是对于一次性导入案例; 类似于整洁的IDE /编辑器/客户端,或独立的Ruby脚本(例如使用RM API).如果有适当的RM插件可用,我不会拒绝尝试(可以从我们可爱的IT支持获得root权限:) ..当前的想法:
实际上,我也对Bugzilla的类似解决方案感兴趣.
在我的RCP应用程序中,我想将property(osgi.java.profile)指向一个文件,并且更喜欢使用相对于我的安装和配置目录的路径.
是否有关于config.ini支持哪种变量的确定规范?
似乎支持@config.dir,内置中有引用,并且它总是作为典型示例提到(例如,这个SO答案)但是,查看Eclipse帮助/ 运行时选项等文档,它提到了一些"符号位置",如@的user.home; 但是这看起来相当有限,并且不包括@ config.dir.
甚至还挖掘了org.eclipse.osgi源代码,并没有发现对此的引用(我确实找到了@Manager.dir&co的LocationManager及其硬编码变量替换).我能以某种方式参考任意系统属性吗?
这个@config.dir是一个特例,只能由P2处理吗? 更新:这似乎是这样的..看看Eclipse SDK,关于..配置对话框显示@ config.dir未解析,可能是由Equinox字面意思.
谢谢你的任何提示.
刚刚意识到将instance_evalyield self作为相关块的参数(除了1.9.2版本中的错误:http://www.ruby-forum.com/topic/189422 )
1.9.3p194 :003 > class C;end
1.9.3p194 :004 > C.new.instance_eval {|*a| a}
=> [#<C:0x00000001f99dd0>]
1.9.3p194 :005 >
Run Code Online (Sandbox Code Playgroud)
这是在某处记录/指定的吗?看看ruby-doc:BasicObject,看不到任何提到的块参数.
是否有一个理由 - 从一些纯粹的历史性的那个 - 用于明确地传递它,无论如何它总是被定义?
我受此打击的方式是:
l = lambda { }
myobj.instance_eval(&l) # barks
Run Code Online (Sandbox Code Playgroud)
这在1.8.x中运行良好(我想因为块arity没有强制执行).
然后升级到1.9.2 - 它仍然有效!这是一个奇怪的巧合,尽管lambda块参数是严格执行的(所以它会抱怨没有声明自己的参数),但是由于上面链接的bug - 实际上并没有在这个版本中传递self.
然后升级到1.9.3,修复了那个bug,所以它开始抛出参数错误 - 对于一个小版本改变恕我直言,这非常令人惊讶.
所以一个解决方法是声明参数,或者使lambda成为块:
l = proc { }
myobj.instance_eval(&l) # fine
Run Code Online (Sandbox Code Playgroud)
只是想要描述完整的故事,以帮助他人避免像我一样浪费时间 - 直到这被正确记录.
我想将JDK 1.6用于项目的一个分支,而其他人则继续使用JDK 1.5.开发人员希望偶尔在这些之间切换.
那么告诉Ant的javac使用哪个JDK 的最佳方法是什么?最好的,我的意思是一个强大,透明,低维护,与源一起版本化(Ant本身和JDK肯定不是,但它们生活在标准的地方).
显而易见的 - 比我想的更好的方法是在Ant之外:继续改变JAVA_HOME env变量.然而,这将需要开发人员手动切换(另一件事要记住:容易出错),更改所有--man-build服务器(现在为我工作更多).
寻找一些简单的javac属性,例如jdk-path,我注意到了几个(感谢在网上阅读和在SO中):
compiler- 公平,但文档说" 现代:.. javac1.5和javac1.6 ..作为别名 "..对我来说这表明它不会有任何区别 - 是吗?source- 似乎只与JLS版本有关(尽管从上面链接的文档中没有明确%100)target - 字节码版本bootclasspath - 一些SO答案提到了这一点,但很不清楚,似乎是hackishexecutable - javac的路径,但不是libs .. - 似乎是最接近的匹配,隐式指定JDK路径?更新:由JB Nizet确认fork - 看来我在这里需要真的(否则它会忽略上面没有错误?).更新:任何性能影响与默认值?(我猜JVM启动时间现在好些了,但仍然)所以,它们本身似乎没有任何帮助..这些等同于在运行Ant之前设置JAVA_HOME的任何组合?
我有一些黑客的想法(例如,在每个平台上包装ant可执行文件只是为了设置env var - 非常难过),但我真的希望我错过了一些东西:)
我检查了一个分支,我编辑并提交了一个文件.与此同时,其他人推送更改为同一个文件.
当我做一个git pull,我明白了
First, rewinding head to replay your work on top of it...
Applying: add new line
Applying: create 1 conf
Using index info to reconstruct a base tree...
Falling back to patching base and 3-way merge...
Auto-merging <filename>
CONFLICT (add/add): Merge conflict in <filename>
Recorded preimage for '<filename>'
Failed to merge in the changes.
Patch failed at 0002 create 1 conf
When you have resolved this problem run "git rebase --continue".
If you would prefer to skip this …Run Code Online (Sandbox Code Playgroud) 我正在尝试在Ruby中使用反射方法,并遇到一种我觉得很惊讶的行为.
以下示例似乎在IRB中以及在调用ruby脚本时的工作方式不同:
例1:
def myfun; end
p respond_to?(:myfun)
Run Code Online (Sandbox Code Playgroud)
在IRb中,这表示'true',在脚本中:'false'.
例2:
ml = methods
def myfun; end
p methods - ml
Run Code Online (Sandbox Code Playgroud)
在IRb中,这表示[:myfun].在脚本中:[].
我发现这是1.8,1.9 MRI,JRuby 1.5.6等 - 所以我认为这是正常的.
为什么有区别?
我很确定'respond_to?' 是一种方法来查看方法是否可用 - 为什么在上述情况下不起作用?
问题:
我需要匹配邮件机软件程序的确切格式.它期望某种格式.我可以计算新行,回车,标签等的数量.使用像
cat -vte
Run Code Online (Sandbox Code Playgroud)
和
od -c
Run Code Online (Sandbox Code Playgroud)
和
wc -l ( or wc -c )
Run Code Online (Sandbox Code Playgroud)
但是,我想知道字符和文本部分之间的前导和尾随空格的确切数量.标签也是如此.
题:
您将如何分析然后使用常见的unix工具+ perl或python完全匹配模板?一线人更喜欢.另外,您对匹配DOS编码文件的建议是什么?你会先把它翻译成NIX,然后按原样分析或离开吗?
UPDATE
使用它来查看单个空格[假设文件中没有'%'字符]:
sed 's/ /%/g' filename.000
Run Code Online (Sandbox Code Playgroud)
计划构建一个分析每一行标签和空间内容的脚本.
使用@ shiplu的解决方案,向抗猫人群致敬:
while read l;do echo $l;echo $((`echo $l | wc -c` - `echo $l | tr -d ' ' | wc -c`));done<filename.000
Run Code Online (Sandbox Code Playgroud)
仍然需要对Windows进行一些调整,但它的方式很好.
示范文本
阅读的关键:
标有\n的换行符
回车标有\ r \n
标有[:space:]的未知空格/制表符(需要对其进行计数)
\r\n
\n
[:space:]Institution Anon LLC\r\n
[:space:]123 Blankety St\r\n
[:space:]Greater Abyss, AK 99999\r\n
\n
\n
[:space:] 10/27/2011\r\n
[:space:]Requested materials are available for pickup:\r\n
[:space:]e__\r[:space:] …Run Code Online (Sandbox Code Playgroud)