小编Dan*_*ina的帖子

使用mercurial 1.9和ssh引发麻烦

上周末(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

谢谢

linux mercurial

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

Java泛型的特殊用法:"破解"或"提高生产力"?

我们在代码中简化了泛型的一些定义和用法.现在我们得到一个有趣的案例,举个例子:

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)

java generics compilation

8
推荐指数
2
解决办法
569
查看次数

是否有某种"断言"覆盖工具(针对Java)?

在此问题被标记为重复之前,请阅读它.;)已经有几个关于覆盖工具等的问题,但是这与通常的有点不同(我希望).

根据维基百科,有几种不同类型的"覆盖"变化会影响"覆盖"一词的几个不同方面.

这里有一个小例子:

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(),但这不是我想听到的答案;))

java code-coverage

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

Mercurial:关于在分支之间合并时如何跳过一些变更集的任何想法?

在这里我们的情况:我们在Mercurial存储库中有两个分支,我们称它们为分支A和分支B.

  • 分支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)

提前感谢任何建议

mercurial branching-and-merging

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