小编Gle*_*min的帖子

如何在git中预览合并?

我有一个git分支(例如主线),我想在另一个开发分支中合并.或者我呢?

为了确定我是否真的想合并这个分支,我想看看合并将做什么的某种预览.最好能够查看正在应用的提交列表.

到目前为止,我能想到的最好的是merge --no-ff --no-commit,然后diff HEAD.

git git-merge

371
推荐指数
6
解决办法
11万
查看次数

通过 vagrant 在 vi​​rtualbox 上创建仅主机接口时出现 E_ACCESSDENIED

升级到 VirtualBox 6.1.28 后尝试运行时vagrant up,收到以下错误消息

There was an error while executing `VBoxManage`, a CLI used by Vagrant
for controlling VirtualBox. The command and stderr is shown below.

Command: ["hostonlyif", "ipconfig", "vboxnet0", "--ip", "192.168.33.1", "--netmask", "255.255.255.0"]

Stderr: VBoxManage: error: Code E_ACCESSDENIED (0x80070005) - Access denied (extended info not available)
VBoxManage: error: Context: "EnableStaticIPConfig(Bstr(pszIp).raw(), Bstr(pszNetmask).raw())" at line 242 of file VBoxManageHostonly.cpp
Run Code Online (Sandbox Code Playgroud)

security computer-science virtualbox helper vagrant

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

在NodeJS中读取第N行文件

我试图提取一个文件的一行,因为我知道路径名和行号,理想情况下我想这样做而不必读取任何文件而不是必要的.

出于我在这里使用的目的,无论是异步还是同步都无关紧要.

我当前(糟糕)的实现看起来像这样:

function get_line(filename, line_no, callback) {
    line_no = parseInt(line_no);
    var data = fs.readFileSync(filename, 'utf8');
    var lines = data.split("\n");
    for (var l in lines) {
        if (l == line_no - 1) {
            callback(null, lines[l].trim());
            return;
        }
    }
    throw new Error('File end reached without finding line');
}
Run Code Online (Sandbox Code Playgroud)

我试图用createReadStream做一些事情,但数据事件似乎永远不会触发.任何人都可以提供这个问题的直接解决方案,或者指向一些NodeJS文件系统交互文档,这些文档比标准库API文档更具实例性驱动?

node.js

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

如何反转ruby的include函数

我将在代码中解释我正在寻找的内容,因为这可能是最简洁的:

module Mixin
  def method
    puts "Foo"
  end
end

class Whatever
  include Mixin
end

w = Whatever.new
w.method
=> "Foo"

# some magic here
w2 = Whatever.new
w.method
=> NoMethodError
Run Code Online (Sandbox Code Playgroud)

我曾尝试使用remove_const取消定义Mixin模块,但这似乎对Whatever没有任何影响.我曾假设#include只是将模块的引用添加到类的方法解析链中 - 但这种行为与此不一致.

任何人都可以告诉我幕后实际做了什么,以及如何扭转这种局面?

ruby metaprogramming class

22
推荐指数
2
解决办法
7494
查看次数

VirtualBox 提供程序 Vagrant 在仅主机网络上失败并出现 E_ACCESSDENIED

在 Ubuntu 上VirtualBox 更新vagrant up失败并出现以下错误后:

There was an error while executing `VBoxManage`, a CLI used by Vagrant
for controlling VirtualBox. The command and stderr is shown below.

Command: ["hostonlyif", "ipconfig", "vboxnet2", "--ip", "10.160.0.1", "--netmask", "255.255.255.0"]

Stderr: VBoxManage: error: Code E_ACCESSDENIED (0x80070005) - Access denied (extended info not available)
VBoxManage: error: Context: "EnableStaticIPConfig(Bstr(pszIp).raw(), Bstr(pszNetmask).raw())" at line 242 of file VBoxManageHostonly.cpp
Run Code Online (Sandbox Code Playgroud)

使用的版本:

  • 流浪者2.2.14
  • virtualbox-6.1 6.1.28-147628~Ubuntu~eoan
  • Ubuntu 20.04.3 LTS

ubuntu virtualbox vagrant

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

为什么在闭包引发异常时,array_map会发出警告?

我最近开始使用PHP进行编程,经过与其他语言的长期合作,在此期间我开发了一种更具功能性的风格 - 我希望尝试和维护.

我注意到一些奇怪的行为,我设法将其提炼成一个我希望有人可以解释的测试用例.

$func = function($item) {
    if ($item == 0)
        throw new Exception("Can't do 0");
    return $item;
};

try {
    array_map($func, array(1, 2, 3, 0, 5));
} catch (Exception $ex) {
    echo "Couldn't map array";
}
Run Code Online (Sandbox Code Playgroud)

执行上面的代码时,我看到以下输出:

警告:array_map():在第10行的map_closure.php中调用map回调时发生错误无法映射数组

我可以用@ on array_map来抑制错误,但这看起来好像很多.

php functional-programming

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

如何"替换"通过ruby include函数包含的模块

作为一个跟进我如何反转ruby的包含函数,这个问题得到了很好的解答,但结果表明我对实际问题的简化并不意味着该解决方案不适用.

我现在面对这个(名称改为保护身份!):

module OldFormHelpers
  def foo
    puts "foo"
  end
  def bar
    puts "bar"
  end
end

module Helpers
  include OldFormHelpers
end
Run Code Online (Sandbox Code Playgroud)

这给了我:

Helpers.instance_methods
=> ["bar", "foo"]
Helpers.ancestors
=> [Helpers, OldFormHelpers]
Run Code Online (Sandbox Code Playgroud)

这是我无法真正有权修改的代码,而不需要分叉.

我想要做的是创建一个新模块;

module BetterFormHelpers
  def foo
    puts "better foo"
  end
end
Run Code Online (Sandbox Code Playgroud)

这需要从中删除行为OldFormHelpers,然后从中添加新内容BetterFormHelpers

以前的解决方案是这样使用undef_method:

Helpers.module_eval do
  OldFormHelpers.instance_methods do |m|
    undef_method(m)
  end
end
Run Code Online (Sandbox Code Playgroud)

但是,在包含之后BetterFormHelpers,Helpers.instance_methods不包含"foo".其原因在http://ruby-doc.org/core/classes/Module.src/M001652.html上解释.

使用remove_method告诉我Helpers没有"foo"方法,所以我想我需要一些方法从祖先链中删除第一个包含...

这有点长,所以我最后停止了这么多片段,但是我添加了一个irb会话,显示了undef/remove的行为,然后是一个include.

ruby metaprogramming class

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

如何使用RSpec声明初始化行为?

我有一个消息类,可以通过将参数传递给构造函数来初始化,或者通过不传递任何参数,然后使用访问器设置属性.在属性的setter方法中进行了一些预处理.

我有测试确保setter方法做他们应该做的事情,但我似乎无法找到一种测试初始化​​方法实际调用setter的好方法.

class Message
  attr_accessor :body
  attr_accessor :recipients
  attr_accessor :options

  def initialize(message=nil, recipients=nil, options=nil)
    self.body = message if message
    self.recipients = recipients if recipients
    self.options = options if options
  end

  def body=(body)
    @body = body.strip_html
  end
  def recipients=(recipients)
    @recipients = []
    [*recipients].each do |recipient|
      self.add_recipient(recipient)
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

ruby mocking rspec2

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

webpack会采用AST作为模块输入吗?

目前webpack处理文件,它通过加载器解析以确定依赖关系.

当使用babel时,babel会解析一个文件,并且有足够的信息可以直接告诉webpack它有哪些依赖项.据我所知,没有办法将这些丰富的信息直接传递给webpack,babel必须生成一个JavaScript文件作为文本,然后webpack将重新解析以提取依赖信息.

(a)我的总结是否正确?这是现在发生的事吗?(b)是否有任何计划允许这样的层之间更紧密的集成?我希望这对构建时间有相当不错的影响.

webpack

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