我不清楚以下是什么意思(来自git submodule update docs):
...将使子模块HEAD分离,除非
--rebase或--merge指定...
怎么--rebase/ --merge改变事情?
我的主要用例是有一堆中央存储库,我将通过子模块嵌入到其他存储库中.我希望能够改进这些中央回购,直接在他们的原始位置,或从他们的嵌入回购(通过子模块使用它们的那些).
哪个是存储源代码版本的系统的正确名称,如SVN或TFS?
我一直称它为源代码控制,但像维基百科这样的地方称它为版本控制?
为了使像这样的更复杂的网站有两个标签?
组件驱动开发术语开始被广泛使用,尤其是 与控制反转有关.
有很多网页在那里暗示让svn外部看起来像git子模块的hackish方法.我已经读过一些关于差异的说法,但这似乎不是很基础:
Git子模块链接到另一个项目的存储库中的特定提交,而svn:externals总是获取最新的修订.
为什么这种差异会使它们根本不相容?我们可以假设没有合理的默认值,例如大多数svn:externals指向永不移动的标签吗?
我们正在改变源代码控制系统,我们目前正在评估git和mercurial.总代码库大约有600万行代码,因此不是很大,也不是很小.
首先让我简单介绍一下当前存储库设计的外观.
我们有一个完整代码库的基本文件夹,在该级别下面有几个不同的上下文中使用的各种模块.例如,"dllproject1"和"dllproject2"可以看作完全独立的项目.
我们正在开发的软件是我们称之为配置器的软件,可以根据不同的客户需求进行无休止的定制.总共我们可能有50个不同的版本.但是,他们有一个共同点.它们共享一些必需的模块(mandatory_module1 ..).这些文件夹基本上包含内核/核心代码和公共语言资源等.然后,所有自定义都可以是其他模块(module1 ..)之间的任何组合.
由于我们目前正在使用cvs,因此我们在CVSROOT/modules文件中添加了别名.他们可能看起来像:
core –a mandatory_module1 mandatory_module2 mandatory_module3
project_x –a module1 module3 module5 core
Run Code Online (Sandbox Code Playgroud)
因此,如果有人决定使用project_x,他/她可以快速检查所需的模块:
base>cvs co project_x
Run Code Online (Sandbox Code Playgroud)
直观地说,将基本文件夹作为单个存储库感觉是错误的.作为程序员,您应该能够查看当前正在使用的项目所需的确切代码子集.你对此有何看法?
另一方面,将每个模块放在不同的存储库中感觉更为正确.但这使得程序员更难以检查出他们需要的模块.您应该能够通过一个命令执行此操作.所以我的问题是:在git/mercurial中是否有类似的方法来定义别名?
任何其他问题,建议和指示都非常欢迎!
PS.我已经搜索了类似的问题,但并不觉得他们中的任何一个都100%适用于我的情况.
我想保留两个不同的git回购.repos应该保留在同一个根目录中.怎么实现呢?
我愿意的是:管理两个略有不同的回购.我可以在同一个文件夹中有两个完全不同的回购吗?
感谢关心:)
我有一个基于我的开源框架的闭源项目.我想知道如何构建我的工作流程.以下是我使用带子模块的git的最佳猜测.
从这里我可以改变:
如何处理包含私有和公共代码和子模块的repo.现在看起来我只需要维护两个单独的代码库来实现这一目标.
我正在寻找最好的答案,可以帮助一些相当新的git简化处理半开源和半私有的代码库的过程.关于它的一个好处是每个文件夹都是私有或公共文件夹,所以不用担心私有文件和公共文件在某处 - 但有些私人文件夹可能在公共文件夹中!
我可以给出的另一个例子是使用zendframework来构建你的私人公司网站,同时仍然可以每天(也许是补丁推送)到zend repo.并且还在zendframework中拉动和推送您的私人网站.
例如,想象一下这样的目录结构:
/private_folder
/public
/public_folder
/public_folder2
/private_folder
Run Code Online (Sandbox Code Playgroud)
也许我要求两个人在一个加入的repo目录中处理它们.也许没有简单的方法可以做到这一点,我应该将它们分开并在一个中完成所有公共补丁然后只需进入我的私人仓库.当然,这意味着如果我正在处理一些私有代码 - 我将不得不离开该repo并开放公共代码并使修补的代码更改,然后返回私有代码,合并,然后继续处理私有代码.