小编Jim*_*Joo的帖子

如何"取消恢复"恢复的Git提交?

鉴于已经提交的更改已经使用commit,然后还原使用revert,那么撤消该恢复的最佳方法是什么?

理想情况下,这应该使用新的提交来完成,以便不重写历史记录.

git undo revert

421
推荐指数
7
解决办法
24万
查看次数

如何将多个提交还原为单个提交的一部分

这不是一个主要问题,只是我想知道是否可能.

假设我们有两个提交,abcd123并且wxyz789发生在非相邻的,分开的地方,远在回购历史中.现在让我们说我们想要还原它们.干

git revert abcd123 wxyz789
Run Code Online (Sandbox Code Playgroud)

将导致两个单独的提交,一个恢复abcd123,另一个恢复wxyz789.

这一切都很好,但是如果我们想要在两个提交中修复的错误在逻辑上是链接的,并且为了自我记录的目的,我们想做一个单独的提交包含一个单词" 我现在打破了一些东西 " 我正在恢复文件x,y和z "评论?有没有这样做的git命令?

(我当然知道有可能创建一个提交,我只需手动修复所有更改然后推送.这对于所有的不良原因都是痛苦的.)

git revert

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

使用Docker Compose运行时的端口发布

我似乎无法找到一种方法让端口发布以docker-compose run尽可能相同的方式工作docker run.

使用Docker Compose(以及端口映射docker-compose.yml)会产生"连接失败"错误curl:

$ docker-compose run flask
 * Running on http://0.0.0.0:2048/ (Press CTRL+C to quit)

$ curl http://localhost:2048/
curl: (7) Failed connect to localhost:2048; Connection refused
Run Code Online (Sandbox Code Playgroud)

但是,手动将端口传递到时,一切正常docker run:

$ docker run -p 2048:2048 --name flask -t flask_image
 * Running on http://0.0.0.0:2048/ (Press CTRL+C to quit)

$ curl http://localhost:2048
Hello World!
Run Code Online (Sandbox Code Playgroud)

我错过了什么?


Dockerfile

FROM centos:7

# Install EPEL repo.
RUN rpm -iUvh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm

# Install Python and Pip.
RUN …
Run Code Online (Sandbox Code Playgroud)

port docker docker-compose

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

Python中的非成员与成员函数

我对Python比较陌生,并且努力将语言的特性与我从C++和Java背景中学到的习惯相协调.

我最近的问题与封装有关,特别是Meyer的" Effective C++ " 第23项总结的一个想法:

首选非成员非友元函数到成员函数.

friend暂时忽略缺少机制,非成员函数也被认为优于Python中的成员函数吗?

一个强制的,asinine的例子:

class Vector(object):
    def __init__(self, dX, dY):
        self.dX = dX
        self.dY = dY

    def __str__(self):
        return "->(" + str(self.dX) + ", " + str(self.dY) + ")"

    def scale(self, scalar):
        self.dX *= scalar
        self.dY *= scalar

def scale(vector, scalar):
    vector.dX *= scalar
    vector.dY *= scalar
Run Code Online (Sandbox Code Playgroud)

鉴于v = Vector(10, 20),我们现在可以调用v.scale(2)scale(v, 2)加倍向量的大小.

考虑到我们在这种情况下使用属性的事实,两个选项中的哪一个 - 如果有的话 - 更好,为什么?

python encapsulation member-functions non-member-functions

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

如何将属性表还原为其默认值?

假设我在首次安装和打开Microsoft Visual Studio 2010后立即执行以下步骤:

  1. File- > New- > Project- > Win32 Console App- > Finish.

  2. 转到Property Manager窗格 - >展开Debug | Win32- >右键单击Microsoft.Cpp.Win32.user- >选择Properties.

  3. 以一种无知的方式疯狂地改变设置,并且通常表现得像个傻瓜.

  4. 单击Apply,保存项目,然后关闭Visual Studio.

如何将Microsoft.Cpp.Win32.user属性表恢复为默认的"工厂"设置?

msbuild visual-studio-2010 propertysheet visual-studio msbuild-4.0

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

快速将内存中的数据库转储到文件中

我希望利用在内存中保存SQLite数据库(通过SQLAlchemy)的速度优势,同时我经历一次插入内容的过程,然后将其转储到文件中,存储以供以后使用.

考虑以通常方式创建的沼泽标准数据库:

# in-memory database
e = create_engine('sqlite://')
Run Code Online (Sandbox Code Playgroud)

有没有更快捷的方法将其内容移动到光盘,除了创建一个全新的数据库并手动插入每个条目?

编辑:

对于我是否看到使用内存数据库有任何好处存在疑问.不幸的是,我已经看到了大约120倍的巨大时差.

这种混乱可能是由于我错过了问题中的一些重要细节.也许可能是由于我对我的缺乏了解:缓存/页面大小/等等.请允许我详细说明:

我正在运行我已经设置的系统的模拟,每个模拟都经历以下阶段:

  1. 对数据库进行一些查询.
  2. 根据这些查询的结果进行计算/运行模拟.
  3. insert 基于最新模拟的数据库中的新条目.
  4. 通过运行确保数据库是新条目的最新版本commit().

虽然我在每次模拟运行中只进行了十几次插入,但我会运行数百万次模拟,并且每次模拟的结果都需要可用于将来的模拟.正如我说的,这个阅读运行文件备份数据库时写入过程需要相当长的时间; 这是6个小时到一个月之间的差异.

希望这能澄清事情.我可以拼凑一个简单的python脚本,以便在必要时进一步概述我的过程.

python sqlite sqlalchemy

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

禁用 QGroupBox 的标题

给定一个 QGroupBox,调用其成员函数,“setEnabled(false)” 将变灰并禁用其内容。

但是,如何使框的标题变灰?大概有一些涉及样式的解决方法,如果某处没有简单的方法,我可以使用它们。如果是这样,什么是最简单的?

qt

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

包含/导入具有命名空间的本地模式

这是一个模式文件,midi.xsd它定义了一个类型note,用于存储MIDI音符值:

<?xml version="1.0" encoding="utf-8"?>

<xs:schema elementFormDefault="qualified"
           xmlns:xs="http://www.w3.org/2001/XMLSchema">

  <xs:simpleType name="note">
    <xs:restriction base="xs:integer">
      <xs:minInclusive value="0"/>
      <xs:maxInclusive value="127"/>
    </xs:restriction>
  </xs:simpleType>

</xs:schema>
Run Code Online (Sandbox Code Playgroud)

这里是另一个模式文件,octaves.xsd它使用midi.xsd来帮助定义布局上包含约八度数据的XML文件,以强制执行:

<?xml version="1.0" encoding="utf-8"?>

<xs:schema elementFormDefault="qualified"
           xmlns:xs="http://www.w3.org/2001/XMLSchema">

  <xs:include schemaLocation="midi.xsd"/>

  <xs:element name="octaves">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="octave">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="name" type="xs:string" />

              <xs:element name="midi">
                <xs:complexType>
                  <xs:sequence>

                    <xs:element name="value" type="xs:integer" />
                    <xs:element name="from" type="note" />
                    <xs:element name="to" type="note" />

                  </xs:sequence>
                </xs:complexType>
              </xs:element>

            </xs:sequence>

            <xs:attribute name="index" type="xs:integer" />

          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

</xs:schema>
Run Code Online (Sandbox Code Playgroud)

这很好,并且完全按照您的预期工作,除了我有另一个要求:我想要note在它自己的命名空间中 …

xsd

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

如何使用模块向Fortran公开Python回调

这篇关于F2Py的scipy文档页面说明:

[回调函数]也可以在模块中明确设置.然后,没有必要将参数列表中的函数传递给Fortran函数.如果调用python回调函数的Fortran函数本身由另一个Fortran函数调用,则可能需要这样做.

但是,我似乎无法找到如何做到这一点的例子.

考虑以下Fortran/Python组合:

test.f:

subroutine test(py_func)

use iso_fortran_env, only stdout => output_unit

!f2py intent(callback) py_func
external py_func
integer py_func
!f2py integer y,x
!f2py y = py_func(x)

integer :: a
integer :: b

a = 12
write(stdout, *) a

end subroutine
Run Code Online (Sandbox Code Playgroud)

call_test.py:

import test

def func(x):
    return x * 2

test.test(func)
Run Code Online (Sandbox Code Playgroud)

使用以下命令编译(英特尔编译器):

python f2py.py -c test.f --fcompiler=intelvem -m test
Run Code Online (Sandbox Code Playgroud)

我需要采取哪些更改才能以func模块的形式暴露给整个Fortran程序,以便我可以从子程序内部调用函数test,或者在项目中的任何其他fortran文件中调用任何其他子程序?

python fortran module f2py

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

获取 MongoDB 索引中的文档数量

根据标题,我想知道是否有办法获取 MongoDB 索引中的文档数量。

需要明确的是,我并不是寻找以下任何一个:

  • 如何获取集合中文档的数量- .count().
  • 如何获取索引的大小.stats()- .

indexing mongodb

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

连接嵌套元组

给出两个变量

A = (2, 3)
B = (1, 4), (5, 8)
Run Code Online (Sandbox Code Playgroud)

将两者连接成结果变量的最简单方法是什么C,以便:

C = ((2, 3), (1, 4), (5, 8))
Run Code Online (Sandbox Code Playgroud)

请注意,只需调用:

C = A + B 
Run Code Online (Sandbox Code Playgroud)

结果是:

C = (2, 3, (1, 4), (5, 8))
Run Code Online (Sandbox Code Playgroud)

不是理想的结果.

此外,请注意,元组是优选的列表,以便的地方A,B并且C可以作为字典键在其它地方使用.

python nested tuples concatenation

3
推荐指数
2
解决办法
4436
查看次数

对"非类型"模板参数实施规则

我希望能够对类的"非类型"模板参数强制执行某些规则.这可能吗?

例如,考虑一个模板化的"循环"类,它在值"MIN"和"MAX"之间循环通过"TYPE"类型的值.

基本的第一步可能如下所示:

template <class TYPE, TYPE MIN, TYPE MAX>
class Cycle
{
public:
  Cycle() :
    m_value(MIN)
  {
  }

  const TYPE & value() const
  {
    return m_value;
  }

  void up()
  {
    if (m_value == m_max)
        m_value = m_min;
    else
      ++m_value;
  }

  void down()
  {
    if (m_value == m_min)
        m_value = m_max;
    else
      --m_value;
  }

private:
  TYPE m_value;

  static TYPE m_min;
  static TYPE m_max;
};

template <class TYPE, TYPE MIN, TYPE MAX>
TYPE Cycle<TYPE, MIN, MAX>::m_min = MIN;

template <class TYPE, …
Run Code Online (Sandbox Code Playgroud)

c++ templates

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