问题标签 [repository-design]
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:多客户项目的存储库布局
我们为多个客户部署了这个 webapp 产品,并考虑从 svn 切换到 mercurial。在 svn 中,我们将主干视为我们项目的“核心”,而为每个客户设置分支。
现在我想知道在 mercurial 中最好的 repo 布局是什么。
可以说该项目基本上由三个主要文件夹组成:html
, css
, js
.
虽然/html
客户之间的内容保持不变,但我们在/css
&中进行了自定义/js
。
现在,这些定制存在于单独的文件中,例如skin.css
,因此我们可以清楚地分辨出真正的定制定制,从修复/更改到核心/通用文件。
然后,SVN 让我们将部分更改从客户分支提交回主干,这样我们就可以在处理客户项目时修复全局问题。据我了解,mercurial 目前不支持部分提交。
那么,我们如何在 mercurial 中最好地处理这种情况呢?我们是否应该拥有一个中央核心存储库(可能带有发布分支)并将客户项目克隆为单独的(远程)存储库?在一个仓库中拥有所有核心和客户分支会更好吗?
非常感谢任何指针!
git - “分层” git 存储库
我现在每天都在使用 git,这一次我遇到了一个可以这样描述的问题。
我有一个包含整个网站结构的存储库,并且 Web 根目录位于存储库的根目录中。一切都很好,直到那是单个站点的存储库。但是,同一个 repo 现在用于多个站点 - 基本上是同一个站点,使用不同的语言,小的模板调整,不同的图形等。这些东西自然是版本化的。
有一个 master 分支,它保存该站点的原始源代码,我希望 master(或其他一些分支)保存所有站点通用的代码,因为最终会有太多的更改站点-具体包括在回购的通用部分。
接下来,每个使用此源代码的站点都有一个分支。所有这些分支(例如site1、site2和site3)都是从 master 分支创建的,并且每个站点都克隆正确的分支。
好吧,这似乎是个好主意,直到我开始到处进行更改。
如果我在 site1 分支上进行了更改,并且需要将该更改复制到 site2 分支,我会从一个分支选择提交到另一个分支。在那里合并是不可能的,因为 site1 分支上还有其他不属于 site2 分支的更改。对于这种情况,是否还有其他更优雅的解决方案,或者挑选樱桃正是为了这个目的?
现在,对我来说真正的“问题”是当我更改 master 时,然后我想将所有这些更改复制到所有分支。自然地,考虑到所有分支都是 master 的后代,并且我确实希望在所有 site* 分支中进行这些更改,我切换到每个分支并合并 master。
这为所有分支创造了一个看起来很糟糕的历史。每一轮合并都会使图变得相当复杂,这使我得出两个结论:
- 只要我注意自己的步骤并且不做任何愚蠢的事情,并且不试图从所有分支历史图表中获得任何意义,这种分层分支的方式就可以工作。或者..
- 必须有一些更好,更合适的方法来做到这一点。
为了说明我的“问题”,我将给出创建这些分支后得到的图形图像,添加一些特定于分支的提交,挑选其中的几个,添加并合并从 master 到所有分支的提交,提交或两个到特定的分支,然后再进行一个 master-to-all 合并。
我不知道,我喜欢简单,也许我不习惯看到像这样难以理解的图表(恐怕每次合并都会变得更加复杂)。
我想我可以一直进行挑选,并拥有整洁的历史图表,但这听起来也不对,因为我可能会连续进行几次提交,然后忘记选择其中一个到所有其他分支。 ..
所以... 有什么想法、经验和建议,您不介意分享吗?
更新:我选择了我对已接受答案的评论中描述的解决方案。感谢所有贡献的人!
更新 2:尽管它与这个问题并没有密切相关,但最近我偶然发现了这种似乎适用于几乎任何有组织的开发周期的分支模型,其中 GIT 作为底层 DVCS。这真是一本好书。受到推崇的。
asp.net-mvc-3 - 在 MVC 中调用存储过程的最佳策略是什么?
我在 ASP.NET MVC3 中使用存储库模式。我正在通过存储过程提取数据。
我应该为每个存储过程创建不同的存储库还是只为所有过程创建一个 REPOSITORY 类?
我不能将它们嵌入到 Table 类中,因为它们中很少有人从两个或多个表中获取数据。
那么根据 Good repository 模式,什么是最好的选择呢?
mercurial - 如何组织和维护 mercurial 存储库
目前,我有 5 种不同品牌的产品,它们的代码库几乎相同(差异与品牌有关),所有这些产品都位于独立的 mercurial 分支中。
Bug 修复和开发在default
分支中完成,所有更改都通过命令移植到分支hg transplant
。这种方法是有效的,但品牌的数量可能会增加,使所有分支机构保持最新状态需要更长的时间。
我想知道这项任务是否有其他/更简单的方法。
version-control - 如何将集市存储库向上移动一个层次结构?
我有一个像这样的项目层次结构,其中有一个在subFolder_1
.
我现在想将集市存储库上移一层,就像我在a_folder
.
新结构应如下所示:
我想保留历史记录(提交日志和提交内容)。我应该如何进行?
git - 在另一个 git 存储库中使用 git 存储库有什么注意事项吗?它被认为是一种好的做法吗?
(我知道有一些类似的问题,但我认为没有一个完全适用于这个问题,所以我决定问它。)
我从来没有自己做存储库嵌套,但我的情况是它会变得很方便。我只是想知道是否有任何已知的警告可能会导致以后会增加主存储库管理的困难。
另外,如果可以这样做(存储库中的存储库),我想知道是否有任何类型的指南或特定的存储库配置来实现这一点而不会出现以后的问题。
谢谢阅读。
asp.net-mvc - 模型的依赖注入
我敢肯定之前有人问过这个问题,但我很难找到在哪里。
我正在使用 Ninject 从我的控制器中删除依赖项,以及存储库设计模式。
据我了解,这种方法的一个好处是我可以轻松地拆分我的存储库和域实体,并在我希望的情况下使用另一个程序集。因此,我将域实体和存储库保存在外部程序集中,并且可以从接口模拟我的所有依赖项。
似乎虽然我可以在大多数地方使用接口来引用我的域实体,但在涉及模型绑定时,我必须使用对具体类的引用。我读过这与我理解的序列化有关,但这是避免引用域实体来创建单独模型的唯一方法吗?
我可以用自定义模型绑定做什么?
一点背景知识:我是一位经验丰富的 ASP.net 开发人员,但对 MVC 很陌生。
svn - svn 存储库布局 - 需要意见
全部 - 我在这里阅读了几篇关于 svn 存储库布局最佳实践的文章,不幸的是,它们都没有帮助我确定最适合我们的路线,所以我想就如何根据这些信息构建存储库征求您的意见:
- 展望未来,我们的大部分代码将使用 C# 开发并成为 .NET 应用程序。
- 我们之前的 Web 开发是用 Java 完成的。
- 我们有一些用 Delphi 开发的非常旧的程序,没有进行太多修改,当我们迁移到新的案例管理系统时,所有的 Delphi 应用程序都将过时。
基于这些信息,您会为所有不同的源代码提供一个存储库,还是为每种类型的源(即一个 Delphi 存储库、一个 Java 和一个 .NET)提供一个存储库?
请记住,在一年左右的时间里,所有的 Delphi 代码和大量的 Java 代码都将过时。这让我认为将它们放在单独的存储库中可能是最好的方法,因为我们不需要在迁移后保留任何代码。
所以,我的问题基本上是每种类型的代码都有一个存储库还是 3 个单独的存储库?
谢谢!莱斯利
svn - 如何自定义 SVN 修订版?
我想知道如何在 SVN 中自定义修订编号。我有一个在 Ubuntu 机器上运行的存储库。整个事情目前只是增量修订:Current revision 7
.
我希望能够使用版本编号系统(例如 r1.0.0)自定义整个事物,并使用附加版本系统标记其中的某些项目。
例如:
目录中的所有内容都myproject
属于发布版本(r1.0.0)
。固件文件将是主要 r1.0.0 版本的一部分,但也会标记其当前的 fw 版本。因此,如果firmware_file1
是5.6
该产品的版本。它将有一个标签v5.6
。
那有意义吗?我是 SVN 新手,一直在阅读文档,但没有遇到有关如何执行此操作的说明。
谢谢!
svn - 有关 SVN 文件夹和良好存储库名称的问题
假设我想在本地机器上使用 SVN,我有点困惑应该如何配置 SVN 相关设置。它们如下:
- 文件夹——主干、分支和标签——是默认创建的还是我们需要自己引入(比如在 UNIX 上使用 mkdir 命令)?
svn
将我们的存储库命名为或者可以是任何一个是一个好习惯吗?