问题标签 [git-slave]
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.
git - 如何在不使用分支的情况下在同一个基本目录中创建两个 Git 存储库?
我们目前正在将我们的 Magento Enterprise(电子商务 Web 应用程序)文件移动到 Git 中。httpdocs/.gitignore 文件包含以下内容:
在初始化、提交和推送 httpdocs/ 之后,我们的第一个 Git 存储库就成功创建了。我们现在想将上述两个目录放入它们自己的单独存储库中。(一起,在一个存储库中!)我们在这里遇到的问题是这些目录共享一个公共根目录,该根目录已经包含我们的第一个 Git 存储库;即:httpdocs/
我已经读过子模块功能可以将其他存储库嵌入现有树的子目录中。但是,例如kernel.org和git-scm.com上的文档似乎非常复杂,以至于我怀疑这是否真的是前进的道路。我们所需要的只是两个独立的存储库,它们恰好具有相同的根。
我读过的另一种可能的解决方案可能是从 app/design/frontend/company/website/ 初始化并添加 skin/frontend/company/website/ 作为移植点,以便将这些目录连接在一起。然而,再一次,这似乎过于复杂,并且打算在从另一个修订控制系统迁移到 Git 时使用。
git - 使用从中进行提交的 Git 子模块时有哪些选项?
在工作中,我们正在开发十几个 Java OSGi 包,每个包都有自己的 git 存储库。从长远来看,所有捆绑软件都将相互独立,这证明了单独的存储库是合理的——尽管现在我们仍然经常同时修改其中的几个。
当我们发布产品(包含所有捆绑包)时,会在每个捆绑包中创建一个新分支,这有点麻烦。因此,我们正在考虑使用 git-submodule 来减轻痛苦(类似于git submodule foreach <cmd>
)。
因此,我们想要的设置将是一个主项目Product
,以及每个包的子模块:
现在,我花了几个小时阅读我能找到的关于子模块的所有内容,我明白如果我在 中修改内容BundleA
,我必须在 中提交BundleA
、推送,然后提交子模块更改Project
并再次推送。
这显然听起来不是 git-submodule 最初被设计为使用的方式。像这样使用它是否违反最佳实践?还是听起来像是首选替代方案的情况?
欢迎任何其他建议。
git-submodules - Git 子模块的替代品?
我觉得使用 Git 子模块对我的开发工作流程来说有点麻烦。我听说过 Git 子树和 Gitslave。
- 是否有更多工具可用于多个存储库项目,它们如何比较?
- 这些工具可以在 Windows 上运行吗?
git - Git:组合多个存储库
我们为可用于新项目的基本设置创建了一个存储库。这个基本设置是“进行中的”,所以这方面的开发正在进行中。当有一个新项目时,我们希望进行基本设置并使用它。新项目是基本设置中的模块。
由于正在开发基本设置,我们希望将更新推送到其他存储库。我们如何用 Git 做到这一点?
我在 Gitslave 上读过一些东西。这个好吗? http://gitslave.sourceforge.net/
windows - 用于 Windows 的 git-slave
git-slave 文档只有以下关于在 Windows 上安装的不太有用的评论:
当我尝试下载并运行“nmake install”时,我得到了同样神秘的错误:
有没有人有这方面的经验并且可以指出我正确的方向?
git - 将 Git Slave 与 Jenkins 集成
将 git-slave 与 jenkins 集成的最佳方法是什么?如果不编写完整的插件,是否可以做到这一点?有什么捷径可以走吗?我最感兴趣的是复制:
(1) 根据对 git-slave git 存储库或其子项的更改轮询并启动构建。
(2) 打印出自上次构建以来所有存储库中的提交。
只是看看有没有其他人在这方面做过任何事情。我喜欢 git-slave,因为对于普通 scm 用户来说,它似乎比其他多存储库方法(即 git submodule、git subtree)更不容易出错。我看到 repo 有一个插件,但不幸的是 repo 与 gerrit 联系得太紧密了。
git - 多个 git 存储库的最佳实践
我有大约 20 个不同的存储库。许多是独立的并作为库编译,但其他一些在它们之间具有依赖关系。依赖解析和分支很复杂。
假设我有一个只聚合所有其他存储库的超级项目。它专门用于运行测试——这里没有真正的开发。
现在,要为每个(a
)开发特定功能或修复,尤其是需要特定版本的项目来编译或运行的功能或修复(b v2.0
和c 3.0
),我必须创建一个新分支:
对于b
,可能还需要其他东西,例如a v0.9
and c v3.1
:
在实现涉及功能分支、修补程序分支、发布分支等的常见 git 工作流时,这变得更加复杂和复杂。我被建议(并建议不要)使用git-submodules
, git-subtree
, google's git-repo
,git-slave
等。
对于这样一个复杂的项目,我该如何管理持续集成?
编辑
真正的问题是如何在不必模拟所有其他依赖项目的情况下运行测试?特别是当所有项目可能使用不同的版本时。 在 git 子模块中提交后触发 Jenkins 测试
windows - 在cygwin上安装Git slave
是否可以让 git slave 在 windows 下的 cygwin 上运行。我尝试使用 cygwin 运行make
& make install
,但是make install
产生了
有什么建议么?
git - git submodules , gitslave, git subtree 或更简单的解决方案
我们有一个包含 N 个文件夹的 git 存储库。
我们希望与不同的合作者共享不同的文件夹。每个协作者应该只能访问他允许的文件夹子集。使用 git 实现这一目标的“好”方法是什么?
答案是使用git submodules
. 但是看完这篇文章后:
https ://codingkilledthecat.wordpress.com/2012/04/28/why-your-company-shouldnt-use-git-submodules/
我明白你需要对git有很好的掌握(这不是我们的合作者的情况),以便在使用时不会出现问题git submodules
。
我阅读了一些可能的替代方案,例如gitslave
, 和git subtree
. gitslave
似乎是一个很好的解决方案,但在我看来仍然是一个复杂的解决方案。
这是我的简单解决方案,我想知道它是否有一些非常糟糕的缺点:
- 每个文件夹都有一个简单的存储库和 Repo 的存储库。然后在主 Repo 中添加 Folder1、...、FolderN 中的所有文件。
-globalpush 脚本:
-globalpull 脚本:
该解决方案的优点是:
1 - 每个人都能理解的简单解决方案。
2 - 可以独立授予每个文件夹的访问权限。
3 - 对于主要开发人员(有权访问 Repo),存储库 Repo 是独立的,包含所有历史记录(以防 Folder1、...、FolderN 的存储库出现问题)。
4 - 当主要开发人员使用给定描述进行提交时,将为所有文件夹存储库创建具有相同描述的提交,即使是那些没有修改的(--allow-empty),这当然不是完美的,但是帮助跟踪主要开发人员提交的版本。
编辑 :
似乎有一个我不知道的新命令git subrepo
......
git - 如何在 gitslave 的子存储库中签出分支?
我有一个包含多个子存储库的超级存储库。我想将其中一个子存储库更改为另一个分支。但是,当我git checkout
过去这样做时,在gits status
子回购以某种方式回到主分支之后。更改子存储库上的分支的正确方法是什么?