问题标签 [shallow-clone]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1892 浏览

mercurial - Mercurial Shallow Clone 扩展的状态如何?

浅谈克隆扩展

有一些关于 Mercurial 的非官方浅克隆扩展工作的讨论。此扩展的功能与扩展类似git clone --depth X,但会提供更好的推送支持和合并安全性。

基本上,它可以让用户克隆一个较小的历史子集以节省时间和空间,但仍然受益于 hg 的所有其他好处。毕竟,并非所有开发人员都需要将整个历史记录回溯到变更集 0 才能高效工作。

讨论链接

浅克隆扩展在 hg的网站上进行了讨论。他们还建立了一个状态页面和一个实施计划。此外,他们反复提到他们在 2010 年夏天获得了一名 Google Summer of Code (gsoc) 实习生来进行扩展。

即使如此,我似乎也无法找到有关此功能的任何最新状态。我发现了两个可能与之相关的 bitbucket 项目,但都没有看到任何最近的提交:hg-shallow-clonehg-shallow

浅克隆仍在开发中吗?

有谁知道这个扩展的状态?它是否仍然有人在某个地方工作,还是真的被遗弃了?GSoC 的工作成果如何?

0 投票
3 回答
4520 浏览

c# - 创建 EntityObject 子类的浅拷贝/克隆

我们的数据库中有一个审计表,更新时新旧值被序列化为 XML 并存储在同一行中。这些对象当前被深度克隆,因此:

虽然这可行,但由于从深度克隆中提取的相关记录,它会生成大量数据,从数据库中读取数十万次,dcSer.WriteObject(memoryStream, obj)最终 MemoryStream 大小约为 200MB,更不用说正在写入的数据量回到数据库。不理想。

所以我想做一个成员克隆,因为我的理解是成员克隆会将对象引用排除在外,并避免复制所有相关的实体框架模型。

所以我这样做了:

但我得到一个无效的强制转换异常,因为传入的实际类型EntityObject是与表本身相关的子类。

我也尝试过使用扩展方法来访问MemberwiseClone(),但是扩展方法无法访问受保护的方法。

那么,如何创建通用 EntityObject 的浅表副本?

0 投票
1 回答
1354 浏览

c# - 通过反射调用的 String.MemberwiseClone() 方法不起作用,为什么?

首先让我说我知道它是一个受保护的方法,我不应该调用它,但它不应该工作,因为MemberwiseClone是在Object类中定义的并且String继承自它吗?

所以这是克隆方法(我删除了空引用处理以专注于重要的事情):

如果我这样称呼它:

结果字符串 (str) 将是:

提前致谢!

0 投票
5 回答
18469 浏览

git - 浅克隆后推送到 github

由于提交的数量巨大,我有一个庞大的 git 存储库,所以按照这里的建议,我创建了一个浅克隆。我已经对这个新的本地 repo 进行了更改,现在我想推送到我在 Github 的起源(然后再推送到我在 Heroku 上的暂存和生产遥控器)。也许有一天我会学会阅读文档:

git clone --depth 命令选项说

--depth 创建一个浅克隆,其历史被截断为指定的修订数。浅层存储库有许多限制(您不能克隆或从中获取,也不能从中推送或进入)

那么......我如何才能摆脱这种情况并将我的代码推送到 Github?

0 投票
3 回答
1604 浏览

git - git浅克隆连同分支

我必须处理一个包含一些二进制文件的 git repo。

如果有人能向我解释这一点,我将不胜感激

也就是说,为什么在传递-b时似乎正在改变--depth的行为?

0 投票
2 回答
464 浏览

java - 如何浅克隆未实现 Cloneable 的实例?

我的框架处理任何类的域对象。我需要能够浅克隆这样一个域对象实例foo,就好像它实现了Cloneable(它没有实现)并且我调用Object.clone()它返回一个浅克隆。

不起作用的事情:

  • 强制 foo 的类实现Cloneable公共方法clone()
  • 通过反射调用 foo.clone() (到达受保护的方法Object.clone())。它抛出CloneNotSupportedException是因为foo's 类没有实现Cloneable
  • 序列化和反序列化 foo:我需要浅拷贝,而不是深拷贝。

限制:

  • foo的类在编译时是不知道的。
  • foo可能具有未作为 getter/setter 公开的字段。

注意:有几个类似的问题,但似乎没有一个专注于获得浅层克隆。

0 投票
5 回答
52388 浏览

git - 如何从浅克隆中有效地 git fetch

我们使用git 来分发操作系统并使其保持最新状态。我们无法分发完整的存储库,因为它太大(>2GB),所以我们一直在使用浅克隆(~300M)。但是最近从浅层克隆中获取时,它现在获取整个 >2GB 存储库的效率很低。这是对部署带宽的一种站不住脚的浪费。

git 文档说您不能从浅层存储库中获取,尽管这绝对不是真的。是否有任何变通方法git clone --depth 1可以获取从中更改的内容?或者其他一些策略来保持分布大小尽可能小,同时让所有位 git 需要进行更新?

我尝试克隆 from--depth 20以查看它是否会更有效地升级,但没有成功。我也确实查看了http://git-scm.com/docs/git-bundle,但这似乎创建了巨大的捆绑包。

0 投票
3 回答
4232 浏览

mercurial - 我可以只克隆存储库的最新变更集而不是整个历史记录吗?

我必须使用具有数百万行代码和数十万变更集的 hg 存储库。可以想象,这确实减慢了 mercurial 和 TortoiseHg 的速度。

我是否可以创建一个只有最新几千个变更集的本地存储库?

这不仅有望使事情运行得更快,而且还可以为我节省一些硬盘空间。

0 投票
1 回答
31887 浏览

git - 如何在特定分支上浅克隆 repo?

如何浅克隆 git 存储库,以便我的克隆仅包含 1 个历史记录项,并从特定分支开始?

我知道如何做一个浅克隆:

但不在特定分支上启动克隆。

0 投票
3 回答
79087 浏览

git - git shallow clone (clone --depth) 错过了远程分支

克隆远程存储库后,它不会通过 -a 选项显示任何远程分支。可能是什么问题呢?如何调试它?在此代码段中,未显示两个远程分支:

在另一台机器上尝试了相同的命令,它运行良好:

还尝试克隆另一个仓库,效果很好。虽然我可以在这台机器上再试一次,但最好知道哪里出了问题。

任何建议或提示都将受到欢迎。

编辑:答案摘要:由于 git 版本 1.8.3.2 需要一起使用“--depth”和“--no-single-branch”以获得与以前相同的行为。这被认为是一个错误修复。