问题标签 [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.
mercurial - Mercurial Shallow Clone 扩展的状态如何?
浅谈克隆扩展
有一些关于 Mercurial 的非官方浅克隆扩展工作的讨论。此扩展的功能与扩展类似git clone --depth X
,但会提供更好的推送支持和合并安全性。
基本上,它可以让用户克隆一个较小的历史子集以节省时间和空间,但仍然受益于 hg 的所有其他好处。毕竟,并非所有开发人员都需要将整个历史记录回溯到变更集 0 才能高效工作。
讨论链接
浅克隆扩展在 hg的网站上进行了讨论。他们还建立了一个状态页面和一个实施计划。此外,他们反复提到他们在 2010 年夏天获得了一名 Google Summer of Code (gsoc) 实习生来进行扩展。
即使如此,我似乎也无法找到有关此功能的任何最新状态。我发现了两个可能与之相关的 bitbucket 项目,但都没有看到任何最近的提交:hg-shallow-clone和hg-shallow。
浅克隆仍在开发中吗?
有谁知道这个扩展的状态?它是否仍然有人在某个地方工作,还是真的被遗弃了?GSoC 的工作成果如何?
c# - 创建 EntityObject 子类的浅拷贝/克隆
我们的数据库中有一个审计表,更新时新旧值被序列化为 XML 并存储在同一行中。这些对象当前被深度克隆,因此:
虽然这可行,但由于从深度克隆中提取的相关记录,它会生成大量数据,从数据库中读取数十万次,dcSer.WriteObject(memoryStream, obj)
最终 MemoryStream 大小约为 200MB,更不用说正在写入的数据量回到数据库。不理想。
所以我想做一个成员克隆,因为我的理解是成员克隆会将对象引用排除在外,并避免复制所有相关的实体框架模型。
所以我这样做了:
但我得到一个无效的强制转换异常,因为传入的实际类型EntityObject
是与表本身相关的子类。
我也尝试过使用扩展方法来访问MemberwiseClone()
,但是扩展方法无法访问受保护的方法。
那么,如何创建通用 EntityObject 的浅表副本?
c# - 通过反射调用的 String.MemberwiseClone() 方法不起作用,为什么?
首先让我说我知道它是一个受保护的方法,我不应该调用它,但它不应该工作,因为MemberwiseClone是在Object类中定义的并且String继承自它吗?
所以这是克隆方法(我删除了空引用处理以专注于重要的事情):
如果我这样称呼它:
结果字符串 (str) 将是:
提前致谢!
git - 浅克隆后推送到 github
由于提交的数量巨大,我有一个庞大的 git 存储库,所以按照这里的建议,我创建了一个浅克隆。我已经对这个新的本地 repo 进行了更改,现在我想推送到我在 Github 的起源(然后再推送到我在 Heroku 上的暂存和生产遥控器)。也许有一天我会学会阅读文档:
git clone --depth 命令选项说
--depth 创建一个浅克隆,其历史被截断为指定的修订数。浅层存储库有许多限制(您不能克隆或从中获取,也不能从中推送或进入)
那么......我如何才能摆脱这种情况并将我的代码推送到 Github?
git - git浅克隆连同分支
我必须处理一个包含一些二进制文件的 git repo。
如果有人能向我解释这一点,我将不胜感激
也就是说,为什么在传递-b时似乎正在改变--depth的行为?
java - 如何浅克隆未实现 Cloneable 的实例?
我的框架处理任何类的域对象。我需要能够浅克隆这样一个域对象实例foo
,就好像它实现了Cloneable
(它没有实现)并且我调用Object.clone()
它返回一个浅克隆。
不起作用的事情:
- 强制 foo 的类实现
Cloneable
公共方法clone()
。 - 通过反射调用 foo.clone() (到达受保护的方法
Object.clone()
)。它抛出CloneNotSupportedException
是因为foo
's 类没有实现Cloneable
。 - 序列化和反序列化 foo:我需要浅拷贝,而不是深拷贝。
限制:
foo
的类在编译时是不知道的。foo
可能具有未作为 getter/setter 公开的字段。
注意:有几个类似的问题,但似乎没有一个专注于获得浅层克隆。
git - 如何从浅克隆中有效地 git fetch
我们使用git 来分发操作系统并使其保持最新状态。我们无法分发完整的存储库,因为它太大(>2GB),所以我们一直在使用浅克隆(~300M)。但是最近从浅层克隆中获取时,它现在获取整个 >2GB 存储库的效率很低。这是对部署带宽的一种站不住脚的浪费。
git 文档说您不能从浅层存储库中获取,尽管这绝对不是真的。是否有任何变通方法git clone --depth 1
可以获取从中更改的内容?或者其他一些策略来保持分布大小尽可能小,同时让所有位 git 需要进行更新?
我尝试克隆 from--depth 20
以查看它是否会更有效地升级,但没有成功。我也确实查看了http://git-scm.com/docs/git-bundle,但这似乎创建了巨大的捆绑包。
mercurial - 我可以只克隆存储库的最新变更集而不是整个历史记录吗?
我必须使用具有数百万行代码和数十万变更集的 hg 存储库。可以想象,这确实减慢了 mercurial 和 TortoiseHg 的速度。
我是否可以创建一个只有最新几千个变更集的本地存储库?
这不仅有望使事情运行得更快,而且还可以为我节省一些硬盘空间。
git - 如何在特定分支上浅克隆 repo?
如何浅克隆 git 存储库,以便我的克隆仅包含 1 个历史记录项,并从特定分支开始?
我知道如何做一个浅克隆:
但不在特定分支上启动克隆。
git - git shallow clone (clone --depth) 错过了远程分支
克隆远程存储库后,它不会通过 -a 选项显示任何远程分支。可能是什么问题呢?如何调试它?在此代码段中,未显示两个远程分支:
在另一台机器上尝试了相同的命令,它运行良好:
还尝试克隆另一个仓库,效果很好。虽然我可以在这台机器上再试一次,但最好知道哪里出了问题。
任何建议或提示都将受到欢迎。
编辑:答案摘要:由于 git 版本 1.8.3.2 需要一起使用“--depth”和“--no-single-branch”以获得与以前相同的行为。这被认为是一个错误修复。