小编EnT*_*Cas的帖子

使用git commit hooks附加票号?

所以我的分支机构以bugtracker票号命名,类似"issue-1234",我们有一个约定,总是在提交消息中写下票号.我想知道当我正在处理issue-*分支时,是否可以自动将票号附加在提交消息中,而我没有明确地输入它.

我查看了git commit hooks,即pre-commit,prepare-message和post-commit,但它们似乎都没能做我想做的事情.提交后挂钩很接近,但您无法修改使用-m提交的消息.

重申一下,我想知道这是否可行:

在分支上:issue-1234

git commit -a -m"fixed this pesky issue"
Run Code Online (Sandbox Code Playgroud)

提交后,在git log中,它将消息显示为:

fixed this pesky issue. ticket number: #1234
Run Code Online (Sandbox Code Playgroud)

git githooks

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

无法获得Python callables的argspec?

我正在玩Python可调用.基本上,您可以定义python类并实现__call__方法,以使此类的实例可调用.例如,

class AwesomeFunction(object):
    def __call__(self, a, b):
        return a+b
Run Code Online (Sandbox Code Playgroud)

模块检查有一个函数getargspec,它为您提供函数的参数规范.但是,我似乎无法在可调用对象上使用它:

fn = AwesomeFunction()
import inspect
inspect.getargspec(fn)
Run Code Online (Sandbox Code Playgroud)

不幸的是,我得到了一个TypeError:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.6/inspect.py", line 803, in getargspec
    raise TypeError('arg is not a Python function')
TypeError: arg is not a Python function
Run Code Online (Sandbox Code Playgroud)

我认为你不能将任何可调用对象视为函数是非常不幸的,除非我在这里做错了什么?

python reflection inspection

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

带有命名空间的XML文档上的XPath

我有这个带有命名空间的XML文档,我想用XPath提取一些节点.

这是文件:

<ArrayOfAnyType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://tempuri.org/">
  <anyType xsi:type="Document">
    <Id>5</Id>
    <Title>T1</Title>
  </anyType>

  <anyType xsi:type="Document">
    <Id>15</Id>
    <Title>T15</Title>
  </anyType>
</ArrayOfAnyType>
Run Code Online (Sandbox Code Playgroud)

如果我想用xsi:type ="Document"提取所有"anyType"元素,XPath表达式会是什么?

我试过这个:

//anyType[@xsi:type="Document"]
Run Code Online (Sandbox Code Playgroud)

它不起作用:

xml xpath namespaces

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

Clojure记录:如何在给定属性名称的情况下获取提示类型

我想知道有没有办法检索与defrecord声明的属性相关联的类型提示.例如,如果我有以下记录定义:

(defrecord Foo [^Integer id ^String description])
Run Code Online (Sandbox Code Playgroud)

我想检索一个Foo类型的地图,它给出了属性和它们的暗示类型.我知道我可以通过反射获得声明属性的列表:

(->> record .getDeclaredFields (remove #(java.lang.reflect.Modifier/isStatic (.getModifiers #))))
Run Code Online (Sandbox Code Playgroud)

这确实给了我一个声明字段列表,但它们的类型是Object.我知道Clojure是一种动态语言,但是当我需要它们时,它会很好地回馈给我.

record clojure

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

相同的源代码,Eclipse构建成功但Maven(javac)失败

使用Maven进行编译时不断出现此错误:

type parameters of <X>X cannot be determined; no unique maximal instance exists for type variable X with upper bounds int,java.lang.Object
Run Code Online (Sandbox Code Playgroud)

泛型类型干扰不能应用于原始类型.但我认为自Java5以来,装箱/拆箱机制在原始类型和包装类之间无缝地工作.

无论如何,奇怪的是Eclipse没有报告任何错误并愉快地编译.我正在使用JDK1.6.0_12.这可能是什么问题?

java eclipse generics compiler-errors

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

git branch - 使用管道命令

有没有办法实现相当于 git branch --merged 使用git管道命令?

我知道有一些命令git for-each-ref可以提供提交哈希值和相应的引用名称.是否有一个命令来判断是否可以从另一个提交中获取提交(这基本上是--merged做什么的)?

git

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

带有通配符和反斜杠的MySQL LIKE运算符

使用LIKE运算符中使用的MySQL模式转义令人沮丧.

root@dev> create table foo(name varchar(255));
Query OK, 0 rows affected (0.02 sec)

root@dev> insert into foo values('with\\slash');
Query OK, 1 row affected (0.00 sec)

root@dev> insert into foo values('\\slash');
Query OK, 1 row affected (0.00 sec)

root@dev> select * from foo where name like '%\\\\%';
Empty set (0.01 sec)

root@dev> select * from foo;
+------------+
| name       |
+------------+
| with\slash | 
| \slash     | 
+------------+
2 rows in set (0.00 sec)

root@dev> select * from foo where name …
Run Code Online (Sandbox Code Playgroud)

mysql escaping wildcard

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

scala:解析器帮助

我正在学习编写一个简单的解析器组合器.我正在自下而上编写规则并编写单元测试来验证我的工作.但是,我阻止使用带有空格的repsep()作为分隔符.

object MyParser extends RegexParsers {
  lazy val listVal:Parser[List[String]]=elem('{')<~repsep("""\d+""".r,"""\s+""".r)~>elem('}')
}
Run Code Online (Sandbox Code Playgroud)

简化了规则以说明问题.当我用"{1 2 3}"提供解析器时,它总是抱怨它不匹配:

[1.4]失败:'}'预期但发现2

我想知道正如我所描述的那样编写规则的正确方法是什么?

谢谢

parsing scala

3
推荐指数
1
解决办法
317
查看次数

git merge:有没有办法强制--squash?

因此,我们项目的开发工作流程是这样的:我们创建一个任务/错误票据,然后我们分离master以处理任务/错误,并最终将其合并回master.我们希望master上的提交有很好的消息.在任务分支上提交的人可能没有好的提交消息,这没关系,但是如果要合并分支,那些带有不干净消息的提交将进入主服务器.

解决此问题的一种方法是始终使用--squash与master合并.这样,您就有机会提供良好的提交消息,并将整个提交范围视为一个.我想知道是否有办法强制执行?意思是,如果我们可以让git服务器拒绝不被压缩的合并?

git merge squash

3
推荐指数
1
解决办法
1681
查看次数

Scala集合:完全不可预测的行为

对Scala 2.8收集行为感到非常沮丧.这是问题:我正在创建一个数独板.我将单元格从A1标记为I9(字母为行,数字为列).我想得到一块板上的单位,即9行,夜间列和夜间象限.

这是我的scala类:

class Square(val row:Char, val column:Int) extends Pair[Char, Int](row, column) {
    override def toString() = "" + row + column 
}

object Board {
    private val rows = "ABCDEFGHI"
    private val cols = 1 to 9
    private lazy val units = unitList(rows, cols)
    private def cross(rows:Iterable[Char], columns:Iterable[Int]):Iterable[Square] = {
        for (row <- rows; col <- columns)
            yield new Square(row, col)
    }

    private def unitList(rows:Iterable[Char], cols:Iterable[Int]) = {
        val u1 = (for (col <- cols) yield cross(rows, List(col)))
        val …
Run Code Online (Sandbox Code Playgroud)

scala yield scala-2.8 scala-collections

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

有什么理由我不应该忽略具体类型中的泛型类型?

Java中的泛型有时会很吵.编译后,编译器抛出参数化类型,所以我的问题是,忽略它们是否真的有任何缺点,只要我声明包含参数化类型的引用类型?例如,

Map<String, Map<Integer, String>> myMap = new HashMap<String, Map<Integer,String>>();
Run Code Online (Sandbox Code Playgroud)

太吵了.如果我写的怎么办:

@SuppressWarnings("unchecked")
Map<String, Map<Integer, String>> myMap = new HashMap();
Run Code Online (Sandbox Code Playgroud)

它是如此清晰,除了Eclipse将在它下面放一个令人作呕的波浪线.把@SuppressWarning放到Eclipse会很开心,但很多人(包括我)都不喜欢在代码中使用@SuppressWarning.忽略"new HashMap()"中的类型参数真的那么糟糕吗?

java generics

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

当线程休眠时退出进程

在 python 脚本中,我启动了一堆线程,每个线程使用 time.sleep(interval) 按一定时间间隔提取一些资源。我有另一个线程正在运行,它使用 cmd 模块来监视用户输入。当用户输入“q”时,我调用

sys.exit(0)
Run Code Online (Sandbox Code Playgroud)

但是,当脚本运行并且我输入“q”时,线程用户输入监视线程将退出,但休眠线程仍然存在。(意味着程序不会退出)

我想知道我这样做是否正确?

python multithreading

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