上周末(2011年7月16日)我们的mercurial软件包使用ubuntu lucid上的mercurial-stable ppa自动更新到最新的1.9 mercurial二进制文件.
现在通过SSH从存储库中提取不再有效.显示以下错误:
remote: Traceback (most recent call last):
remote: File "/usr/share/mercurial-server/hg-ssh", line 86, in <module>
remote: dispatch.dispatch(['-R', repo, 'serve', '--stdio'])
remote: File "/usr/lib/pymodules/python2.6/mercurial/dispatch.py", line 31, in dispatch
remote: if req.ferr:
remote: AttributeError: 'list' object has no attribute 'ferr'
abort: no suitable response from remote hg!
Run Code Online (Sandbox Code Playgroud)
在mercurial 1.9 升级说明中有一个"有趣"的说明:
contrib/hg-ssh from older Mercurial releases will not be compatible with version 1.9, please update your copy.
Run Code Online (Sandbox Code Playgroud)
有人知道如何升级(如果已经有版本)包mercurial-server?或者我们需要升级其他东西吗?(新的python脚本?)
如果没有新版本的必要软件包,如何降级到之前的1.7.5(ubuntu lucid)?
任何帮助都非常受欢迎,因为我们的开发过程确实因此而变慢.:S
谢谢
我们在代码中简化了泛型的一些定义和用法.现在我们得到一个有趣的案例,举个例子:
public class MyWeirdClass {
public void entryPoint() {
doSomethingWeird();
}
@SuppressWarnings( "unchecked" )
private <T extends A & B> T getMyClass() {
if ( System.currentTimeMillis() % 2 == 0 ) {
return (T) new MyClass_1();
} else {
return (T) new MyClass_2();
}
}
private <T extends A & B> void doSomethingWeird() {
T obj = getMyClass();
obj.methodFromA();
obj.methodFromB();
}
static interface A {
void methodFromA();
}
static interface B {
void methodFromB();
}
static class MyClass_1 implements A, …Run Code Online (Sandbox Code Playgroud) 在此问题被标记为重复之前,请阅读它.;)已经有几个关于覆盖工具等的问题,但是这与通常的有点不同(我希望).
根据维基百科,有几种不同类型的"覆盖"变化会影响"覆盖"一词的几个不同方面.
这里有一个小例子:
public class Dummy {
public int a = 0;
public int b = 0;
public int c = 0;
public void doSomething() {
a += 5;
b += 5;
c = b + 5;
}
}
public class DummyTest {
@Test
public void testDoSomething() {
Dummy dummy = new Dummy();
dummy.doSomething();
assertEquals( 10, dummy.c );
}
}
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,测试将覆盖100%的行,字段'c'的值的断言将覆盖此字段,间接也覆盖字段'b',但字段'a'上没有断言覆盖.这意味着测试覆盖了100%的代码行并确保c包含期望值,并且最可能b也包含正确的值,但是a根本没有声明并且可能是完全错误的值.
那么......现在的问题是:是否有工具能够分析(java)代码并创建一个报告,该报告关于断言覆盖哪些字段/变量/未被(直接和/或间接)覆盖的内容?
(好吧,当使用getter而不是public字段时,你会看到没有调用getA(),但这不是我想听到的答案;))
在这里我们的情况:我们在Mercurial存储库中有两个分支,我们称它们为分支A和分支B.
在分支A中修改的所有内容都已合并到分支B.但是现在我们来到分支B中的代码与分支A有几个不同之处.我们在分支A中进行了一些大的代码更改,在分支B中合并这些更改将是一个真正的痛苦,实际上我们想做一个解决方案的替代实现.但是稍后我们还想继续对分支A进行更改,并且仍然能够将这些稍后的次要更改合并到分支B中.所以问题是:当合并到分支B并合并时,是否可以从分支A跳过一些单个变更集后来又从A变为B?(可能使用纯Hg解决方案,没有变通方法,备份副本等等......)
这里概述了我们将达到的目标:
Changesets Branch A Changesets Branch B
Chgset A.1 Chgset B.1 (Merged with A.1)
Chgset A.2
Chgset B.2 (**Not merged with A.2**)
Chgset A.3 Chgset B.3 (Merged with A.3 but not with A.2)
提前感谢任何建议