小编pau*_*l_h的帖子

如何减少现有git克隆的深度?

我有一个克隆.我想减少它的历史,而不是从头开始克隆,减少深度.工作示例:

$ git clone git@github.com:apache/spark.git
# ...
$ cd spark/
$ du -hs .git
193M    .git
Run Code Online (Sandbox Code Playgroud)

好吧,所以不是这样,但它会为这次讨论服务.如果我尝试gc它会变小:

$ git gc --aggressive
Counting objects: 380616, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (278136/278136), done.
Writing objects: 100% (380616/380616), done.
Total 380616 (delta 182748), reused 192702 (delta 0)
Checking connectivity: 380616, done.
$ du -hs .git
108M    .git
Run Code Online (Sandbox Code Playgroud)

尽管如此,相当大(git pull表明它仍然可以向遥控器推送/拉动).重新包装怎么样?

$ git repack -a -d --depth=5
Counting objects: 380616, done.
Delta compression using up to 4 …
Run Code Online (Sandbox Code Playgroud)

git

20
推荐指数
2
解决办法
3856
查看次数

Windows上的imapclient错误

我遇到麻烦的环境:Windows10上的Python 2.7.11(修补到目前为止).Python通过msi安装.我在设置中检查了PATH设置,并将其设置为c:\ Python27.

这适用于Mac:

from imapclient import IMAPClient

IMAPClient("imap-mail.outlook.com", use_uid=True, ssl=(True))
Run Code Online (Sandbox Code Playgroud)

但在Windows上,如果barfs像这样:

Traceback (most recent call last):
  File "test_outlook_imap.py", line 3, in <module>
    IMAPClient("imap-mail.outlook.com", use_uid=True, ssl=(True))
  File "C:\Python27\lib\site-packages\imapclient\imapclient.py", line 152, in     __init__
    self._imap = self._create_IMAP4()
  File "C:\Python27\lib\site-packages\imapclient\imapclient.py", line 164, in _create_IMAP4
    self._timeout)
  File "C:\Python27\lib\site-packages\imapclient\tls.py", line 153, in __init__
    imaplib.IMAP4.__init__(self, host, port)
  File "C:\Python27\lib\imaplib.py", line 173, in __init__
    self.open(host, port)
  File "C:\Python27\lib\site-packages\imapclient\tls.py", line 159, in open
    self.sock = wrap_socket(sock, self.ssl_context, host)
  File "C:\Python27\lib\site-packages\imapclient\tls.py", line 126, in wrap_socket
    ssl_context = create_default_context()
  File …
Run Code Online (Sandbox Code Playgroud)

windows ssl python-2.7 imapclient

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

模拟 os.system 进行单元测试的最佳方法是什么(PyTest)

我有一个执行多次os.system调用的 Python 脚本。将它们的系列作为字符串列表断言将很容易(并且相对优雅)。

拦截(和阻塞)实际调用并不那么容易。在有问题的脚本中,我可以像这样抽象 SUT (*) 中的 os.system:

os_system = None

def main():
    return do_the_thing(os.system)

def do_the_thing(os_sys):
    global os_system
    os_system = os_sys

    # all other function should use os_system instead of os.system
Run Code Online (Sandbox Code Playgroud)

我的测试调用my_script.do_the_thing()而不是my_script.main()当然(留下少量未经测试的代码)。

替代选项:我可以保持 SUT 不变,并os.system在调用main()SUT之前在测试方法中全局替换。

这给我留下了新的问题,因为这是一个全球性的、持久的变化。很好,所以我会try/finally在相同的测试方法中使用 a ,并在离开测试方法之前替换原来的。无论测试方法通过还是失败,这都有效。

但是,对于 PyTest,是否有一种安全且优雅的设置/拆卸为中心的方法来执行此操作?

其他并发症:我想对 stdout 和 stderr 做同样的事情。是的,这确实是main()我正在测试的脚本。

  • SUT == 被测系统

python unit-testing mocking pytest

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

如何在 Rust 测试中为所有测试函数创建一个具有范围/生命周期的变量?

我有一个在深入测试细节之前初始化变量的测试,我想用相同的变量进行第二次测试,而不是重复初始化代码:

#[test]
fn test_one() {
    let root = Path::new("data/");
    // the rest of the test
}
#[test]
fn test_two() {
    let root = Path::new("data/");
    // the rest of the test
}
Run Code Online (Sandbox Code Playgroud)

我不认为staticconst不会这样做,因为大小不会预先知道,尽管PathBuf.from(path)可能会这样做,但静态/常量变量的初始化表达式不能太复杂。

我见过lazy_static,但还没有看到它在测试中使用的任何例子。这是在看到带有“extern crate loading macros must be at the crate root”的编译器错误之后,在线搜索告诉我是在外面main(),但测试没有main功能。

在 Java 中,我会定义变量然后在setup()方法中初始化它,但我看不到 Rust 的在线示例。

unit-testing rust

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

如何侦听 Web 应用程序本身发起的 Web 扩展中的 URL 更改?

在网络扩展中,我以编程方式注册内容脚本:

browser.contentScripts.register({
    matches: ["https://www.example.com/messages/*"],
    js: [{file: "my-callback-script"}],
    runAt: "document_idle"
});
Run Code Online (Sandbox Code Playgroud)

我注册的页面会更改其自己的 URL,而无需重新加载页面。不,不是 # 右侧的位,而是 # 左侧 URL 的位,但仍然位于同一域/应用程序上。我不认为网络扩展有用于 URL 更改回调的特定 API,仅适用于整页加载。URL 掩码“ https://www.example.com/messages/ *”在之前和之后都是正确的,我希望它能正常工作,但事实并非如此。

我很确定这window.onhashchange不是我想要的,而且window.addEventListener('popstate', listener);看起来也不是我想要的。如何在不每隔几秒轮询一次的情况下执行此操作?

firefox-addon-webextensions

5
推荐指数
0
解决办法
650
查看次数

chocolatey安装命令到哪个目录?

我已成功完成choco install python2,choco install python3但我无法在cmd.exe上看到结果(是的,我重新打开了非管理员cmd.exe).

chocolatey安装命令在哪里?当我能找出应该存在的东西时,我会修复我的PATH env-var.

Choclatey的常见问题解答不包括这个问题的答案.我更习惯自制(Mac),答案就是/usr/local/bin/

chocolatey

4
推荐指数
2
解决办法
2475
查看次数

如何删除 Google App Engine 上的日志?

我错误地配置了到 GAE(“灵活”变体)的部署,并让它运行了几个星期。我没有为 _ah/health 设置路由,它每四秒被 GAE 基础设施 ping 一次 - 导致异常命中日志,由 Web 框架提供。在我为记录不足的健康检查路线制作了路线之后,日志已填充到 35GB,这就是它们今天所在的位置。我在 UI 中找不到任何内容来允许我删除这些日志。

https://console.cloud.google.com/logs/是查看日志的主要位置,但没有关于如何删除它们的线索。

google-app-engine

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

Mac上的卷曲'证书验证失败'

在Mac上,brew install something(在这种情况下为chromedriver),产量:

curl: (51) SSL: certificate verification failed (result: 5)
Error: Failed to download resource "chromedriver"
Download failed: https://chromedriver.storage.googleapis.com/2.22/chromedriver_mac32.zip
Run Code Online (Sandbox Code Playgroud)

Que pasa?

homebrew curl

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