我有一个hg存储库,带有一个hg子存储库,它有一些git子模块.(我知道这听起来很疯狂,但它正在使用谷歌代码中的svn repos,github中的libs和bitbucket中的模块.我正在使用由一群人自由提供的代码,我是谁来抱怨他们的决定版本控制 - 我想要的是代码,我很感激.
关于这种情况的一点"树":
+ hg repo
+ hg subrepo
+ git submodules
Run Code Online (Sandbox Code Playgroud)
当我更改hg子存储库中的文件并提交时,它会提交所有git子模块,即使它们没有被更改.我已经运行了hg status,它没有显示任何关于git子模块的信息,但如果我提交:
committing subrepository SUBREPO
Run Code Online (Sandbox Code Playgroud)
如果我只使用一个带有一堆git子模块的hg主回购,那就不会有问题了.当我在第一个hg存储库中进行更改时,问题依赖于:现在,当我提交时,它会在hg存储库和hg子存储库中提交,因为它总是提交git子模块.所以现在,我有一个评论,设计只在第一个hg存储库,并在hg子存储库中的相同注释.
对于我committing subrepository SUBREPO使用git子模块在hg repository/subrepository上进行的每次提交,我如何避免这种干扰?这是一个错误吗?这是一个git设计(也许git存储库总是至少改变一个"状态"文件或类似的东西,总是在拉动后改变?我没有太多的git经验...)
我正在尝试将git子模块添加到我的项目中,特别是ShareKit.我的项目是一个git repo,当我尝试输入时
git submodule add git://github.com/ShareKit/ShareKit.git Submodules/ShareKit
Run Code Online (Sandbox Code Playgroud)
进入终端我得到一个错误,说子模块已经存在.我想我刚刚在这个项目中添加了它,并最终没有使用它并且不正确地从项目目录中删除它(最有可能删除子模块文件夹).所以我尝试着做
git rm --cached Submodules/ShareKit
Run Code Online (Sandbox Code Playgroud)
根据如何删除子模块?,现在当我尝试使用第一段代码再次添加子模块时,我得到了这个:
A git directory for 'Submodules/ShareKit' is found locally with remote(s):
origin git://github.com/ShareKit/ShareKit.git
If you want to reuse this local git directory instead of cloning again from
git://github.com/ShareKit/ShareKit.git
use the '--force' option. If the local git directory is not the correct repo
or you are unsure what this means choose another name with the '--name' option.
Run Code Online (Sandbox Code Playgroud)
而且我不确定该怎么做.我对git很新,我需要在我的项目中得到这个 - 有没有办法只是擦除项目中的所有git并从头开始?我只是用一个新项目做到这一点,但除此之外它已经非常完整,从头开始并将所有内容复制完毕将非常耗时.我让ShareKit在测试应用程序中工作,安装正确,有什么理由我不能将该文件夹中的所有ShareKit文件复制到我需要的文件夹中吗?
编辑:我试过了
git submodule deinit Submodules/ShareKit
Run Code Online (Sandbox Code Playgroud)
这给了我这个错误:
error: …Run Code Online (Sandbox Code Playgroud) git submodule update已支持--depth此答案中所述的选项。
但是我们仍然无法轻松确定深度值,这可能会使 git 无法找到子模块的预期修订版。
浅层更新子模块是否有真正的解决方案?
我想知道与其他程序员共享Prolog代码/库的最佳实践(以及多个项目之间的自己).我自己也在使用SWI-Prolog,但也对其他Prolog如何解决这个问题感兴趣.
相比之下,Java有Maven + JAR,Python有EasyInstall + PythonEggs,其他语言可能还有很多其他语言.但Prolog还有吗?
在SWI-Prolog中有Packs,由模块支持library(prolog_pack).这些的缺点是:
另一种我直到现在使用过的方法是Git子模块.通过将一个存储库导入另一个存储库来实现库之间的依赖关系.这与SWI-Prolog包有一些相同的缺点:
我个人对完美的Prolog代码共享方法的偏好是:
以上暗示我理想的库共享方法是基于文件的,而不是基于包的.如果Prolog模块A使用Prolog模块B并且加载了A,则从本地文件(如果存在)加载B或从存储库下载B. 我不确定基于文件的方法在其他语言中有多常见.前面提到的Maven + JAR和EasyInstall + PythonEggs都是基于包的.
我对其他Prolog程序员使用和思考这个主题非常感兴趣!
我有一个目录/amp中RepoA和RepoB(与/放大器的内容填充最初).我想将/ampRepoA中的任何更改镜像 到RepoB.
可能吗 ?
PS:RepoA包含许多其他目录.我只想镜像/ amp dir.而RepoB只会有/ amp内容而不是其他内容.
考虑将具有依赖项的 Python 子模块导入具有自身依赖项的项目的情况。假设子模块有它的environment.yml文件,而项目本身有一个environment.yml文件。
有没有办法创建一个包含这两个环境规范的环境,如果是这样,您将如何进行?(或者是否有更好/更优选的方法来处理这种情况?)
首先,我有一个主项目和一个子模块。
我想做的是:
我想跟踪并更新子模块到主项目的更改;同时,我还可以从子模块刷新。
有没有更简单的方法来实现这一目标?
我是 git 新手,目前正在考虑从 mercurial 移植一些大型项目。我们有一个根项目,它只包含对所有外部项目(git 中的子模块)的引用。我正在尝试在 git 中重新创建它。
我已经将一个项目 (foo) 导入到 gitib 中。我创建了一个新的空项目(root)并将其克隆到本地。我想使用添加 Foo 作为子模块
git submodule add https://github.com/.../foo.git
Run Code Online (Sandbox Code Playgroud)
来自 /c/Work/GitHub/root (master)
但我不断收到“请确保 .gitmodules 文件在工作树中”。
查看文档,此命令的第一次运行应创建 .gitmodules 文件,但即使我手动创建它也会收到此错误。在谷歌上寻找这个错误只会返回带有错误的源文件,但没有解释为什么我会得到它。我认为这只是我对 git 的了解不足。
我做错了什么?
编辑:我也试过。
mkdir test
cd test
git init
git submodule add https://github.com/.../foo.git
Run Code Online (Sandbox Code Playgroud)
我犯了同样的错误。
我目前正在开发一条天蓝色的管道。在我的主 github 存储库(存储库 A)中,我添加了另一个 github 存储库作为子模块。(回购协议B)
我的目标是使用以下 YAML 在管道开始处签出子模块:
stages:
- stage: checkout
jobs:
- job: checkout
steps:
- checkout: self
submodules: true
persistCredentials: true
Run Code Online (Sandbox Code Playgroud)
然后尝试签出子模块,但以以下错误结束:
Cloning into '/home/vsts/work/1/s/devops-scripting'...
fatal: could not read Username for 'https://github.com': terminal prompts disabled
fatal: clone of 'https://github.com/sourcerepo/devops-scripting.git' into submodule path '/home/vsts/work/1/s/devops-scripting' failed
Run Code Online (Sandbox Code Playgroud)
这似乎是使用不正确的用户/密码的问题 - 如果我推动我可以简单地使用提供的用户/密码参数,但这似乎不适用于签出。
如何通过天蓝色管道更新子模块?
git-submodules ×10
git ×8
github ×2
azure ×1
conda ×1
git-subtree ×1
mercurial ×1
module ×1
move ×1
prolog ×1
python ×1
swi-prolog ×1