小编Bor*_*ard的帖子

如何在不相关的分支上重新提交提交?

我有一个简单的存储库,其中包含线性的提交历史记录,例如:

[A] -> [B] -> [C] -> [D] -> [E] ...
Run Code Online (Sandbox Code Playgroud)

我基本上需要删除提交A和B,所以我想我会创建一个新的存储库,并希望实现类似的东西:

[X] -> [C] -> [D] -> [E] ...
Run Code Online (Sandbox Code Playgroud)

所以我创建了一个新的存储库,手动创建了提交X,它从A和B获取存储相关信息,现在需要一个命令,它将从原始存储库中提交C,D,E等提交,并将其放在我的新存储库之上提交X.

怎么做?

编辑:我建议的樱桃挑选方法有两个问题:

  1. 转移的提交丢失了日期.有没有办法保留提交日期?
  2. 当我从原始存储库中获取master(并且该远程主服务器没有与新存储库相同的任何提交)时,我无法删除这些提取的提交.当我这样做时git branch -D myoriginalrepo/master,它表示没有这样的分支存在,而我可以在我的GUI工具中清楚地看到这些提交.

git

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

什么是Visual Studio 2015中的"Roslyn代码修复"?

我在新发布的VS 2015中看到了这一点:

罗斯林代码修复

但是,单击它不会做任何事情(也尝试双击,大喊大叫等).如何与这个元素进行交互?

resharper visual-studio roslyn

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

如果我选择RavenDB,我会失去SQL Server的哪些好处?

如果我选择RavenDB作为一个相当标准的类似CMS的Web应用程序,与SQL Server相比,我会失去什么?

编辑:标题中有一个"好处",这是一个有点争议的术语.也许我应该说"可能性"或"功能"之类的东西,希望我很清楚我追求的是什么.

想到的一些事情(但我是RavenDB的新手,所以这只是一些建议,有些可能是错的,我希望有人会提供更完整和准确的列表):

  • 使用ASP.NET动态数据的快速但可自定义的管理界面(有一些内置的Silverlight管理应用程序,但我很确定它不会取代我的情况下完整的管理部分)
  • 可能有一些查询功能?或者Raven索引几乎可以替换我想到的每个SQL查询?
  • 实体框架集成(我知道有些人讨厌EF,但我认为作为EF提供商意味着您可以轻松地将数据发布为OData,使用EF代码优先等等,对吧?)
  • Azure部署 (根据评论不正确)
  • 无数的SQL查询/管理工具

一个更完整/准确的列表将不胜感激.

(注意:我并不是说我需要所有这些(或任何),我只是想了解如果我选择RavenDB会有什么不可用.另外,请不要讨论RavenDB的优势,我知道他们很容易从官方网站上消化.)

sql-server comparison ravendb

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

WebStorm和TypeScript:如何导航到包的JS源文件?

假设在我的TypeScript项目中,我使用Express和这样的方法:

response.send('Hello');
Run Code Online (Sandbox Code Playgroud)

我想看看该send()方法是如何实现的.但是,当我按住Ctrl键并单击WebStorm中的方法名称时,它会将我带到一个.d.ts文件(TypeScript定义)而不是真正的源.可以理解,但有点不愉快.什么是最简单的来源?

webstorm typescript

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

如何在d.ts中扩充TypeScript接口

我的用例:请求的RequestResponse类型定义缺少body属性,如下所示:

declare namespace request {

    // ...

    export interface RequestResponse extends http.IncomingMessage {
        request: Options;
    }

    // ...

}
declare var request: request.RequestAPI<request.Request, request.CoreOptions, request.RequiredUriUrl>;
export = request;
Run Code Online (Sandbox Code Playgroud)

我试图通过创建一个这样的request-fix.d.ts文件来修复它:

import * as http from 'http';
declare namespace request {
    export interface RequestResponse extends http.IncomingMessage {
        body: any;
    }
}
Run Code Online (Sandbox Code Playgroud)

但它没有效果.我的最终目标是在我身上app.ts,我可以这样做:

import * as rp from 'request-promise';
import { RequestResponse } from 'request';

let response = rp.get(url);

response.statusCode; // works
response.body; // doesn't …
Run Code Online (Sandbox Code Playgroud)

typescript

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

如何在CSS/JS中创建固定/粘性侧边栏?

我正在尝试创建一个包含主要内容区域和侧边栏的网站,类似Stack Overflow上的内容.目标是当您向下滚动时,侧边栏保持可见.

我见过两种方法:

  1. position:fixed;
  2. 使用DOM进行JavaScript操作

方法没有.1,据我所知,当视口小于侧边栏内容时会出现问题所以我想这是不能可靠使用的,我见过的JavaScript脚本通常是动画的或者通常是"慢"的(你可以看到)每次滚动后都会重新绘制).

有人能指出一个不会受上述问题影响的JavScript库/ CSS方法吗?

编辑:一个例子是这个页面, 侧边栏没有动画时粘在顶部,并且当侧边栏高于内容/视口时正确处理情况.

html javascript css dom

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

TypeScript:异步生成器

我想要这样的功能:

export async function* iterateDir(dir: string) {
    let list = await fs.readdir(dir); // fs-promise implementation of readdir
    for (let file of list) {
        yield file;
    }
}
Run Code Online (Sandbox Code Playgroud)

我会用的是:

for (let file in iterateDir(dir)) {
    processFile(file);
}
Run Code Online (Sandbox Code Playgroud)

这不起作用,因为函数不能同时是异步和生成器.

我将如何构造代码以实现相同的目标?

  1. 如果我改变await fs.readdirto回调,我假设外部for..of循环不会等待.
  2. 如果我摆脱了生成器并且目录很大,iterateDir()将会很慢.

供参考:异步生成器功能提议

javascript generator async-await typescript

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

Dockerfiles 中 &amp;&amp; 和 `set -ex` 的区别

在 Dockerfiles 中,我已经习惯于看到这种模式(在Docker 的最佳实践中也有说明):

RUN apt-get update \
    && apt-get install -y curl \
    && rm -rf /var/lib/apt/lists/*
Run Code Online (Sandbox Code Playgroud)

最近,我经常遇到这样的模式:

RUN set -ex; \
    apt-get update; \
    apt-get install -y curl; \
    rm -rf /var/lib/apt/lists/*
Run Code Online (Sandbox Code Playgroud)

我想知道有什么区别。我试过这个:

$ (echo one; exit 0) && (echo two; exit 0)
one
two

$ (echo one; exit 1) && (echo two; exit 0)
one

$ (echo one; exit 1) ; (echo two; exit 0)
one
two

$ set -ex; (echo one; exit 1) ; …
Run Code Online (Sandbox Code Playgroud)

bash docker dockerfile

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

重写 Git 历史记录时保留提交哈希值的肮脏技巧?

注意:有一个类似的问题How to keep commit hashs not change when use git filter-repo rewrite the History,但答案集中在Git如何不能做到这一点上。在这个问题中,我想探讨理论上是否可以编写自定义脚本来保留提交哈希值。

Gitfilter-branchBFG Repo-Cleaner是两种流行的工具,用于从存储库历史记录中删除大文件和其他内容。它们导致不同的提交 SHA/散列,这就是 Git 的工作方式,因为它“指纹”提交的内容、其父项等。

然而,我们面临的情况是,不久前发生了不幸的大文件提交,并且我们有各种对较新提交的引用,例如在 GitHub 问题(“参见提交 f0ec467”)和其他外部系统中。如果我们使用过滤器分支或 BFG,很多东西都会被破坏。

所以我来这里询问是否有一些肮脏的、低级的技巧如何保留提交 ID / SHA-1,即使是重写提交。我想,对于我们想要重写的错误提交,自定义脚本将创建一个新的 Git 对象,但“硬编码”相同/旧的 SHA-1,跳过它的计算。我认为较新的提交(其子级/后代)应该继续工作(?!)。

如果这行不通,我想了解为什么。Git 是否定期检查哈希值是否与实际内容一致?它是否仅在某些操作(例如gc推或拉)期间执行此操作?

(我知道这是一个非常薄冰的情况,在我们接受我们将永远在我们的仓库中拥有一个大型二进制文件之前,我只是在技术上探索我们的选择,其所有影响包括永远拥有更大的备份,完整克隆需要更长的时间, ETC。)


更新:现在有一个被接受的答案,但与此同时,没有答案提到git replace这可能是解决方案?我已经做了一些基本实验,但还不确定。

git

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

哪个有更好的.NET实现,Mercurial或git?

我需要从我的.NET代码访问一些DVCS,因为我熟悉Mercurial和Git,其中一个有更好的.NET客户端库?我并不仅仅意味着一个包装器,我的意思是一个完整的.NET实现,不需要在后台进行任何命令行调用.

注意:如果答案是Bazaar或其他我不熟悉的DVCS,那没关系,实际的DVCS并不重要.

编辑:我正在寻找那些实际尝试过.NET客户端并能判断其质量的人的答案.

.net git mercurial

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