上下文:TeamCity检测到git提交,并启动自动构建.
鉴于git commit hash和TeamCity配置,如何在包含提交的配置中找到构建,而不必通过Web UI手动检查每个构建?
代码片段
decimal one1 = 10m * 0.1m;
decimal one2 = 10m / 10m;
Console.WriteLine($"{one1}, {one2}, {one1 == one2}");
Run Code Online (Sandbox Code Playgroud)
产生输出:
1.0, 1, True
Run Code Online (Sandbox Code Playgroud)
为什么第一个数字带有小数点而第二个数字没有。如果答案在于十进制类型没有完全表示的精度0.1
,那么为什么相等运算符返回 true?
一个常见的场景是在推送到存储库之前执行本地 git 提交的交互式 rebase。一种方法是找到本地提交的数量并运行命令(在本例中为 3 个本地提交)
git rebase -i HEAD~3
Run Code Online (Sandbox Code Playgroud)
有没有什么办法可以省去事先找出本地提交次数的需要,直接运行一个命令,意思是git rebase -i 'commits not yet pushed'
.
编辑:让我通过给出一个特定的场景来详细说明。我执行三个提交:
Commit change A
Commit change B
Commit change C
Run Code Online (Sandbox Code Playgroud)
此时我意识到C中的变化属于A中的变化,所以我想rebase给我我想要的:
Commit containing A + C
Commit containing B
Run Code Online (Sandbox Code Playgroud)
在这一点上,没有任何推动。看到我不记得变化 C 有多少变化,我做了一个
git log @{u}..
Run Code Online (Sandbox Code Playgroud)
并确定我有三个变化。所以现在我想做一个
git rebase -i HEAD~3
Run Code Online (Sandbox Code Playgroud)
或者,正如@cosimo93 指出的那样,我可以简单地做
git rebase -i
Run Code Online (Sandbox Code Playgroud) microk8s
已经安装在ubuntu机器上。查找当前安装的频道的命令行是什么?
以下代码是在Visual Studio 2012 Express for Windows Desktop中编译和运行的,作为学习练习.
#include <cstdio>
class X
{
public:
X() { printf("default constructed\n"); }
~X() { printf("destructed\n");}
X(const X&) { printf("copy constructed\n"); }
X(X&&) { printf("move constructed\n"); }
X & operator= (const X &) { printf("copy assignment operator\n"); }
};
X A() {
X x;
return x;
}
int main() {
{
A();
}
std::getchar();
}
Run Code Online (Sandbox Code Playgroud)
在禁用编译器优化(/ Od)的情况下编译时,结果输出表明析构函数被调用两次.考虑到只构造了一个对象,这是一个问题.为什么析构函数被调用两次?如果班级管理自己的资源,这不是一个问题吗?
default constructed
move constructed
destructed
destructed <<< Unexpected call
Run Code Online (Sandbox Code Playgroud)
我尝试了几个实验来尝试解释输出,但最终这些并没有导致任何有用的解释.
实验1:在使用优化(/ O1或/ O2)编译相同代码时,结果输出为:
default constructed
destructed …
Run Code Online (Sandbox Code Playgroud) git ×3
c# ×1
c++ ×1
c++11 ×1
decimal ×1
git-rebase ×1
kubernetes ×1
microk8s ×1
precision ×1
teamcity ×1
ubuntu ×1
visual-c++ ×1