版本控制中的三方合并

在学习Git时,一般会学到Git的合并方式,除了快进之外,还有三方合并(three way merge)。三方合并也是Subversion等传统版本控制软件的合并策略。本文讲解什么是三方合并,为何需要三方合并,为何不使用两方合并。

同一个文件现在有以下两个分支,1bdd3be5d6c1b0e[……]

继续阅读

docker运行笔记

清理docker

你以前可能执行过一些docker命令,给镜像或容器命过名,或者当前有容器正在运行,占用了某些端口。如果不清理,下文的某些命令可能会失败。下面的清理脚本是暴力清理,会删除所有东西。如果你知道怎么清理不要的东西,或者会自己解决冲突,恐怕你也不用看本篇初学者笔记了。

# St[......]

继续阅读

Directory Opus编程

脚本插件运行外部程序的方式曲折,必须调用ActiveX对象WScript.Shell,使用Exec命令(不然会有黑色cmd窗口),并把输出重定向到硬盘文件。如果经常调用此脚本,会向硬盘写入大量临时文件。我倾向于不使用调用外部程序的脚本插件。[……]

继续阅读

单调队列及应用

单调队列

单调队列是一种优先队列,要求元素是可排序的,或传入比较器。单调队列继承队列的以下性质:

  • 可从队尾插入元素。
  • 可从队头弹出元素。
  • 在队列中的所有元素里,队头元素一定是最早插入的。在队列中的所有元素里,队尾元素一定是最晚插入的。(FIFO)

单调队列有以下特[……]

继续阅读

126. Word Ladder II

LeetCode是用C# release模式运行的。

解法1:

使用队列进行广度优先搜索,统一在Dequeue后进行终止条件判断。

缺点是生成下一个状态,enqueue前,没有检查是不是解。

using System;
using System.Collections.Ge[......]

继续阅读

.NET测试框架测评

最近用了xUnit.net,结构简洁。用[Fact]标记无参测试方法,用[Theory]标记有参测试方法并用[InlineData]提供参数。而且,xUnit.net可以使用静态类作为测试类。这使得编写简洁的测试代码成为可能。

美中不足是xUnit的断言除了Assert.True()Asse[......]

继续阅读