问题标签 [sparse-checkout]
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 稀疏结帐
在这个2015 年的F8 会议视频(从 8:40 开始)中,他们谈到了使用 Mercurial 和跨 facebook 的单一存储库的优势。
这在实践中如何运作?使用 Mercurial,我可以签出子目录(位于 SVN 中)吗?如果是这样,怎么做?我需要为此使用facebook-mercurial-extension
svn - SVN - 特定类型的稀疏检出文件 - 或 - 匹配特定模式
我正在使用一个庞大的 SVN 存储库——它由数百个目录(都在不同的深度)和数千个文件(所有不同的类型)组成。我需要对这个 repo 中包含的几百个 JavaScript 文件进行批量更新。我希望有选择地只签出 .js 文件,而不是下载整个 repo。我一直在玩一堆不同的方法,但一直无法破解它。这是我能想到的......
我在终端中得到的回复似乎表明一切正常,但是,显然情况并非如此。我留下了完整的目录树,但绝对没有 .js 文件。这是我的终端输出示例:
编辑:
现在都在工作!最终命令列表:
svn - 如何进行任意结构化的稀疏结帐
我有一个目录结构如下的项目:
我想检查source
andtests/utils
目录(以及递归的所有内容)。其余目录(如abc
, cde
, ...)不应被检出,因为它们很大。
我想svn co --depth empty
这就是我要找的。但是,只有在结帐完成后不存在时,如何才能tests/utils
结帐test
?
git-svn - 在 git-svn 中取消忽略目录(将目录添加到稀疏结帐)
使用 git svn 时,中央存储库的稀疏签出可能通过以下方式实现
使用此设置一段时间后,我想将另一个目录 dir4 添加到跟踪的目录中。这个目录存在于我已经签出的许多提交中。通过运行编辑变量 svn-remote.svn.include-paths
对(仅在未来提交中更改的文件将在更改时签出;不会立即签出)没有预期的效果git fetch
,并且以下内容也不会签出 dir4:
我认为以下方法会起作用,但由于重新获取自 dir4 首次出现的第一个修订版(我们称之为 REV)以来的所有修订版,因此效果会非常低:
跟踪 dir4 的更好方法是什么?如果我不关心 dir4 的历史怎么办?
如果我怀疑以后要更改跟踪目录的列表,是否有更好的方法来使用 git-svn 进行初始稀疏签出?我还尝试从列出原始提交中不获取的directeis开始,但我不知道以后如何取消它们:
dir4
但是,当我决定也要检查它时,如何告诉 git 停止忽略呢?
git - 克隆 git 存储库而不签出整个 repo - 稀疏签出过程?
我需要访问 250 GB 的 git 存储库中的少量目录。显然,检查整个事情在时间和磁盘空间上是一个很大的打击。但是,我无法找到如何仅获取所需目录的有效解决方案。我可以克隆整个事情,然后启用稀疏结帐,但这会破坏整个观点。
我意识到这已经被问过很多次了:
如何仅克隆 Git 存储库的子目录? 是否可以在不先检出整个存储库的情况下进行稀疏检出?
但这些(或其他: http: //jasonkarns.com/blog/subdirectory-checkouts-with-git-sparse-checkout/)解决方案都不适合我。
我在 Fedora 25 机器上运行 git 2.9.3。我已经尝试了以下开始,但我最终得到了整个回购。将最后一行的 -f 更改为 -n 无效。
我也试过这个无济于事:
(即使我在 git remote add 行之前执行 echo 行,也会发生同样的事情。)
当然,有一个简单的解决方案实际上有效,不是吗?
编辑:为了完整起见,这就是我现在根据评论所做的事情。仍然有同样的问题。
git - 如何将完整结帐转换为稀疏结帐?
对存储库进行完整签出后,如何将其转换为稀疏签出?
git - 从主存储库的稀疏签出中有效地更新 git 子模块
我正在编写一些自动化程序来将 git 子模块更新到远程的最新版本。通常这是通过指定并运行来实现branch=<blah>
的:.gitmodules
但对我来说,这不合适。
我处理的主要存储库超过 6 个演出,子模块超过 10 个演出。不要问我为什么,就是这样。当一个运行时git submodule update --remote --init
,git 对远程分支执行完整的检出,这需要很长时间。我想在不检查整个子模块的情况下将主存储库中的子模块指针更新为最新的。如果可能,我还想避免检查整个主存储库。所以我设计了一个使用稀疏检出并手动克隆子模块的解决方案:
1) 对主存储库执行稀疏签出.gitmodules
git clone -b <branch> --no-checkout --depth=1 <url>
git config core.sparsecheckout true
echo .gitmodules > .git\info\sparse-checkout
git checkout <topic-branch>
2)手动克隆子模块
git submodule init
git clone --no-checkout --depth=1 -b <submodule-branch> <submodule-url> <submodule-path>
在这一点上,我希望 git status 报告子模块提交的差异,因为它现在与子模块的签入版本不同。然后我可以简单地添加子模块路径、提交并创建拉取请求。但是,使用这种稀疏检出方法,主存储库不知道我在子模块中所做的更改。如果我对主存储库进行普通签出而不是稀疏签出,则此方法有效,但是我还需要签出整个主存储库。这是与 git 子模块相关的稀疏结帐的一些限制吗?
谢谢!
git - 编辑稀疏结帐后如何让git下载一个新文件夹?
我有一个 git repo,我只想下载某些子文件夹。我的配置如下所示:
在.git/info/sparse-checkout
我有这个:
这是themes
我想要获取的子文件夹中的文件夹。(我不需要其他很多)。
如果我做一个 git/pull 我可以看到 git 获取很多东西,包括themes
我不想要的子文件夹,这很好。我知道 sparse-checkout 仍然会拉下对象。
我现在想要一份themes/theme15
,进行一些更改。所以,我.git/info/sparse-checkout
这样编辑:
然后做了一个git pull dreamhost master
,以为 git 会在下添加 theme15 文件夹themes
。但是,什么也没发生——它只是说
并且文件夹不存在。谁能告诉我我做错了什么?编辑后是否有额外的步骤.git/info/sparse-checkout
?
谢谢,马克斯
编辑:这是git version 2.8.1
顺便说一句
git - 特定工作目录的稀疏结帐
我正在尝试将项目自动部署到我的共享托管服务器。
我想要完成的是公共目录需要在 www 目录中签出,而其他文件和目录需要在根目录下签出,例如/home/{username}/laravel-project-files
我看到 git 中有一个“稀疏结帐”选项。
但我需要使用两组不同的文件签出到两个不同的工作目录。
public 将转到/home/{username}/public_html/
剩余的 laravel 项目文件所在的位置/home/{username}/laravel-project-files
我只是 git 的 GUI 用户,但希望可能有解决方案或任何其他更好的方法来处理这个问题。
我正在使用 github webhooks 将项目自动部署到我的托管服务器。
git - 创建 git 存储库的稀疏和浅层克隆会导致错误:尝试写入非提交对象
我想在某个标签处创建一个 git 存储库的稀疏和浅层克隆。
这就是我目前正在做的事情:
它可以正常工作,但会引发错误:
我在 Ubuntu 17.04 上使用 Git 2.11.0 和在 Windows 10 64 位上使用 Git 2.13.2.windows.1 时遇到此错误。我没有尝试克隆到映射驱动器。
是什么导致了这个错误,我该如何避免它?