小编Wil*_*hes的帖子

Git日志不显示子模块更改

我有一个提交master,hash 6877146,它更新了一个子模块.

$ git show 6877146
commit 6877146f1781bfbd4ec3ae2a27121a606f5f688e
Author: [snip]
Date:   Wed Feb 22 16:10:20 2012 +0000

    updating potatobase

diff --git a/potatobase b/potatobase
index 5877e2c..b77ba62 160000
--- a/potatobase
+++ b/potatobase
@@ -1 +1 @@
-Subproject commit 5877e2c2d82645fa44f121884291ee48cf24584d
+Subproject commit b77ba624d6a1c5e62d434ad2d06383604aeab431
Run Code Online (Sandbox Code Playgroud)

这个提交在master分支上,我目前已检查过:

$ git branch -a --contains 6877146
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/master
  remotes/origin/ticket-1479-refactor-blade-json-functions
Run Code Online (Sandbox Code Playgroud)

但是,在子模块上执行git log并不会显示提交:

$ git log potatobase | grep 6877146
$
Run Code Online (Sandbox Code Playgroud)

如果我明确地检查了这个提交,它就在日志中:

$ git checkout 6877146
$ git log potatobase | grep 6877146
commit 6877146f1781bfbd4ec3ae2a27121a606f5f688e
Run Code Online (Sandbox Code Playgroud)

当我检查出master时,为什么这个提交没有显示在日志中?它已经合并为主人:

$ …
Run Code Online (Sandbox Code Playgroud)

git git-submodules

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

如何使用一个或多个SCM在Jenkins工作流中获取罪魁祸首或提交者

从一个或多个SCM(通过checkout()或其他SCM步骤如git/svn)检出时,是否可以访问有关Jenkins工作流作业的提交者和/或罪犯的信息?

目的是使用该信息来通知提交者和/或罪犯有关工作状态的信息,例如在一个mail步骤中.

工作流定义的一个小示例:

node {
  // checkout from one or more SCMs, e.g.
  git url: '<URL>' 
  checkout([$class:...])
  ...

  // how can we know about committers or culprits at this point?
  $committers = ??

  // send a mail to committers or culprits
  mail to: '$committers', subject: 'JENKINS', body: '<information about the job status>'
}
Run Code Online (Sandbox Code Playgroud)

在运行SCM步骤之后,如何调整它以获取提交者的集合?

编辑:我目前正在使用Jenkins版本1.596.2和Workflow:Aggregator版本1.6,这似乎是JENKINS-24141中的一个未解决的问题

version-control jenkins jenkins-workflow jenkins-pipeline

6
推荐指数
4
解决办法
8108
查看次数

reStructuredText不尊重副标题

这是一个简单的reST片段:

deleting this line causes all subheadings to be rendered as h1 tags

I should be an h1
=================

I should be an h2
-----------------
foo            

I should also be an h2
----------------------
foo
Run Code Online (Sandbox Code Playgroud)

这是一个演示它的演示:

初始行:http
://rst.ninjs.org/?n = f = 66780d732a33c7844f350c240804d0没有初始行:http://rst.ninjs.org/?n = 550ea2c1b4233affdce1d158c5dc4d99

我正在使用以下Python渲染reST:

from docutils.core import publish_parts
parts = publish_parts(rest_content, writer_name="html")
html_snippet = parts['html_body']
Run Code Online (Sandbox Code Playgroud)

如何在<h2>没有初始线的情况下获得副标题(特别是标签)?是否在子标题上方提供了两级层次结构?天真地提供页眉没有帮助:http://rst.ninjs.org/?n = e874f6eaad17c8ae7fd565f9ecb2212b

python restructuredtext docutils

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

为什么Pip会忽略冲突的依赖关系?

如果我创建了一个虚拟包-这是/tmp/example_package/setup.py(请注意要求):

from distutils.core import setup

setup(name='my_project',
      description="Just a test project",
      version="1.0",
      py_modules=['sample'],
      install_requires=['requests > 0.12'])
Run Code Online (Sandbox Code Playgroud)

这是/tmp/example_package/sample.py:

import requests

def get_example():
    return requests.get("http://www.example.com")
Run Code Online (Sandbox Code Playgroud)

现在,我创建一个virtualenv:

$ virtualenv /tmp/foobar --distribute -p python2.7
Running virtualenv with interpreter /usr/bin/python2.7
New python executable in /tmp/foobar/bin/python2.7
Also creating executable in /tmp/foobar/bin/python
Installing distribute.................................................................................................................................................................................................done.
Installing pip................done.
$ source /tmp/foobar/bin/activate
Run Code Online (Sandbox Code Playgroud)

我创建了一个有冲突的需求的requirements.pip

# this requires requests > 0.12:
file:///tmp/example_package

# but this conflicts:
requests==0.9.0
Run Code Online (Sandbox Code Playgroud)

Pip高兴地安装了这个:

$ pip install -r requirements.pip                                                                                                                                                                       [18:40:10]
Unpacking ./example_package
  Running setup.py egg_info for package …
Run Code Online (Sandbox Code Playgroud)

python pip python-2.x python-2.7

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

如何使用rx在Emacs中创建害羞的组?

通常,我可以使用优秀的rx宏来创建可读的正则表达式,并确保我已经转义了正确的元字符.

(rx (any "A-Z")) ;; "[A-Z]"
Run Code Online (Sandbox Code Playgroud)

但是,我无法弄清楚如何创建害羞的群体,例如\(?:AB\).rx有时会在输出中产生它们:

(rx (or "ab" "bc")) ;; "\\(?:ab\\|bc\\)"
Run Code Online (Sandbox Code Playgroud)

但我想明确添加它们.我可以:

(rx (regexp "\\(?:AB\\)"))
Run Code Online (Sandbox Code Playgroud)

但这失败了rx.

在一个完美的世界里,我希望能够写下:

(rx (shy-group "A"))
Run Code Online (Sandbox Code Playgroud)

我会满足于这样的事情(这些都不起作用):

;; sadly, `regexp` only accepts literal strings
(rx (regexp (format "\\(?:%s\\)" (rx WHATEVER))))

;; also unfortunate, `eval` quotes the string it's given
(rx (eval (format "\\(?:%s\\)" (rx WHATEVER))))
Run Code Online (Sandbox Code Playgroud)

如何使用害羞组创建正则表达式rx

emacs elisp

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

确保所有Django视图返回200?

我有很多简单的Django视图,如下所示:

@team_leader_required
def view_all_teams(request):
    teams = Team.objects.all()

    template_vars = {'toolbar': 'teams',
                     'teams': teams}
    return render(request, "all_teams.html", template_vars)
Run Code Online (Sandbox Code Playgroud)

我最终写了很多关于表单的单元测试:

def test_view_all_teams_renders(self):
    user = self.create_team_leader()
    self.log_in(user)

    response = self.client.get(reverse('all_teams'))
    self.assertHttp200(response)
Run Code Online (Sandbox Code Playgroud)

尽管我有创建用户的便利方法(例如.create_team_leader)和各种便利断言(例如.assertHttp200),但我的测试中仍然存在大量重复.

(我的测试很简单,因为我看不到其他任何有用的断言这些视图 - TestCase.assertTemplateUsed如果你重命名模板就会中断,即使视图是正确的.)

很容易错过测试,这让我在重命名模板时没什么信心.有什么方法可以自动生成测试用例吗?像(伪代码):

for every view in urls:
    if view doesn't take extra arguments:
        test that view returns 200 when a logged in superuser does a GET
Run Code Online (Sandbox Code Playgroud)

编辑

这是我的urls.py中的代表性片段:

urlpatterns = patterns('',
    url(r'^teams/$', 'teams.views.view_all_teams', name='all_teams'),
    url(r'^teams/major/$', 'teams.views.view_major_teams', name='major_teams'),
    url(r'^teams/minor/$', 'teams.views.view_minor_teams', name='minor_teams'),
    url(r'^teams/(?P<team_id>\d+)/$', 'teams.views.view_team', name='view_team'),
    url(r'^teams/(?P<team_id>\d+)/edit$', …
Run Code Online (Sandbox Code Playgroud)

python django unit-testing

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

如何找到对象理解的消息?

在Pharo,我知道整数理解这个信息to:.工作区提供建议:

工作区建议

但是,如果我从工作区检查一个整数,它没有提到to::

检查整数

搜索SmallInteger也不会在系统浏览器中显示任何内容:

系统浏览器

如何发现可以发送给对象的消息?理想情况下,我也希望看到他们的源代码.

reflection smalltalk pharo

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

如何在Jenkinsfile中的函数中运行多个sh命令?

鉴于以下Jenkinsfile:

@NonCPS
void touchFiles() {
    sh "touch foo"
    sh "touch bar"
}

node('general') {
    touchFiles()

    sh "ls"
}
Run Code Online (Sandbox Code Playgroud)

我在Jenkins的控制台日志中看到以下内容:

Running on box35 in /internal/slave/build/workspace/1499786637.EXAMPLE_test-repo_test_jenkinsfile
[Pipeline] {
[Pipeline] sh
[1499786637.EXAMPLE_test-repo_test_jenkinsfile] Running shell script
+ touch foo
[Pipeline] sh
[1499786637.EXAMPLE_test-repo_test_jenkinsfile] Running shell script
+ ls
foo
Run Code Online (Sandbox Code Playgroud)

请注意,“ bar”尚未创建。

为什么只在sh这里第一次运行?如何sh在Jenkinsfile中排除一系列调用?

(我知道我会写,sh "touch foo; touch bar"但是在更复杂的Jenkinsfiles中,有时需要单独的sh调用。)

jenkins jenkins-pipeline

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

为什么c ++使用memset(addr,0,sizeof(T))来构造一个对象?标准版还是编译错误?

这个问题与我的另一篇文章有​​关:为什么allocate_shared和make_shared这么慢

在这里,我可以更清楚地描述这个问题.

考虑以下代码:

struct A {
    char data_[0x10000];
};

class C {
public:
    C() : a_() { }
    A a_;
};

int main() {
    C c;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我发现代码中C() : a_(),编译器使用A memset(addr,0,0x10000)作为构造函数.如果类型A有一个空构造函数,则asm代码是正确的.

为了更清楚地描述问题,我写了一些测试代码:

#include <stdlib.h>

struct A {
    //A() {}
    char data_[0x10000];
    void dummy() { // avoid optimize erase by compiler
        data_[rand() % sizeof(data_)] = 1;
    }
    int dummy2() { // avoid optimize erase by compiler
        return data_[0];
    }
};

class B {
public:
    template<class …
Run Code Online (Sandbox Code Playgroud)

c++ constructor perfect-forwarding c++11

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

我如何匹配[在Smalltalk正则表达式?

我希望[在Pharo 6中使用正则表达式进行匹配.

这很好用:

| matcher |
matcher := RxMatcher forString: '\['.
matcher matches: '['. "produces true"
Run Code Online (Sandbox Code Playgroud)

但是,我无法在内部看到如何做到这一点[].既不工作[[]也不[\[]工作.

我可以匹配收盘]罚款[]],但我无法弄清楚如何做到这一点[.

regex smalltalk pharo

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