小编ing*_*ger的帖子

git的合并冲突解决方案比其他SCM和合并工具更有效吗?

git合并冲突解决方案本身是否比其他SCM(CVS,Subversion等)以及独立的合并工具更有效率?如果是这样,为什么?

澄清:这里我对算法本身更感兴趣 - 它与普通的diff3方法有什么不同?
一些工具声称更聪明(例如Guiffy),是否值得插入作为git合并工具?git是否更聪明地找出在文件内或跨文件移动的文本?(而不是报告嘈杂的冲突..我对Linus的谈话有一种模糊的印象).

背景:刚刚做了一个巨大的合并使用git-svn,导致了一半的冲突比我得到的普通svn merge(第一次合并没有跟踪)..所以我想了解原因.


类似的Qs/As周围,但它们更多的是关于过程的大局,以及合并如何更自然地适应.为此,git"优化合并"(而不仅仅是分支),它实际上意味着:

  1. 减少手动冲突 - 更好的自动分辨率算法(例如,重命名处理得很好)
  2. 更安全的操作 - 自动解决更多/只有真正的冲突和更少的错误警报
  3. 更快的操作 - 比如,由于精益和平均对象模型
  4. 更好的工具 - 这使得体验减少痛苦,例如基于DAG的合并跟踪,合并工具,历史查询/可视化,藏匿,变基等...
  5. 别的
  6. 以上的组合

?现在,我最感兴趣的是1和2.

git version-control merge conflict 3-way-merge

8
推荐指数
1
解决办法
1334
查看次数

Redmine(或其他问题跟踪器)和纯文本待办事项列表之间的任何同步方式?

我想通过简单的基于文本的界面访问Redmine任务库 - 想知道最短路径是什么(最小投资/开发).


现在,这归结为2个用例/阶段:

  1. 从简单的,基于wiki的,发布的TODO列表中导入一批任务到Redmine,即.纯文本内容.这更像是一次性任务,因此快速而肮脏的解决方案就没问题了.

  2. 稍后,一些平滑的双向同步将是很好的.例如,通过编辑器中的一些友好的纯文本(或XML)编辑任务的负载,或脚本,我可以通过简单的文本处理来操作所有这些任务; 然后与Redmine同步并将其提交回来.

有关实现这些最简单方法的任何想法?

我更喜欢外部解决方案(即不接触服务器),特别是对于一次性导入案例; 类似于整洁的IDE /编辑器/客户端,或独立的Ruby脚本(例如使用RM API).如果有适当的RM插件可用,我不会拒绝尝试(可以从我们可爱的IT支持获得root权限:) ..当前的想法:

  • Emacs/Org-mode看起来像一个很酷的任务管理器UI和完全纯文本功能的完美组合.它似乎足以捕获标签,状态.这个艺术看起来很有前途的Orgmode和Roundup:弥合公众bugtrackers和本地任务列表,虽然不完全匹配.
  • Ruby中的org-mode解析器,可以在redmine-api访问的脚本中使用,或者 - 最坏的情况(对我来说,现在) - 在新开发的RM插件中..这看起来是一个好的开始:org-ruby
  • 导出RM-> XML,进程文件,导入XML-> RM ...不确定是否支持?我想总是可以直接与DB交谈,但我宁愿避免这种情况.

实际上,我也对Bugzilla的类似解决方案感兴趣.

emacs scripting synchronization redmine org-mode

8
推荐指数
1
解决办法
2532
查看次数

Eclipse OSGI配置:相对路径和/或@ config.dir类似的替换?

在我的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字面意思.

谢谢你的任何提示.

eclipse configuration osgi eclipse-rcp equinox

8
推荐指数
1
解决办法
6362
查看次数

instance_eval的块参数 - 记录?目的?

刚刚意识到将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)

只是想要描述完整的故事,以帮助他人避免像我一样浪费时间 - 直到这被正确记录.

ruby metaprogramming

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

我可以在Ant build.xml中指定要编译的JDK路径吗?

我想将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答案提到了这一点,但很不清楚,似乎是hackish
  • executable - javac的路径,但不是libs .. - 似乎是最接近的匹配,隐式指定JDK路径?更新:由JB Nizet确认
  • fork - 看来我在这里需要真的(否则它会忽略上面没有错误?).更新:任何性能影响与默认值?(我猜JVM启动时间现在好些了,但仍然)

所以,它们本身似乎没有任何帮助..这些等同于在运行Ant之前设置JAVA_HOME的任何组合?

我有一些黑客的想法(例如,在每个平台上包装ant可执行文件只是为了设置env var - 非常难过),但我真的希望我错过了一些东西:)

java ant build javac jdk1.6

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

GIT拉冲突:怎么没有任何分支?

我检查了一个分支,我编辑并提交了一个文件.与此同时,其他人推送更改为同一个文件.

当我做一个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)

git

6
推荐指数
2
解决办法
468
查看次数

为什么Module.methods()和respond_to?irb的工作方式与脚本不同?

我正在尝试在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?' 是一种方法来查看方法是否可用 - 为什么在上述情况下不起作用?

ruby reflection metaprogramming irb

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

Linux:计算文件中的空格和其他字符

问题:

我需要匹配邮件机软件程序的确切格式.它期望某种格式.我可以计算新行,回车,标签等的数量.使用像

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)

regex linux shell perl text

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