小编Ach*_*him的帖子

在多个客户的Web项目中使用git

有没有更好的建议来控制Web项目,在几个客户项目中使用git进行小的随机更新?

我想使用git进行Web项目的版本控制.与几乎所有其他提案的主要区别在于,这是一个使用HTML,JavaScript和一些PHP文件的Web项目 - 没有中央库被一个或多个程序使用,就像在典型的Linux软件包中一样.

我所有不同的Web项目都是针对不同的客户,基于相同的平台文件,我估计80%的文件是相同的(称为平台),20%是针对不同的客户进行修改以满足他们的需求.这里的问题是,我不知道我们需要客户更新哪些文件 - 详细地说每个客户都不同.

最好的方法是将平台特定文件保存在一个目录中,并将这些文件与客户特定文件重叠在另一个目录中.为了用git来解决这个问题,到目前为止我没有发现什

  • git的子模块(如建议在这里)通常设计成具有供应商开发库的知情人士谁连接它的程序.因此问题是平台和客户文件位于不同的目录中,因此我必须在部署期间将它们混合以创建Web服务器的文件.此外,我必须手动保持目录树同步,这对于10个目录深度层次结构来说将是很多工作.一般来说,很多帖子抱怨使用子模块的大量管理工作,看起来有点矫枉过正.
  • git子树(就像这里提出的)似乎比子模块更简单,但是遇到了不同目录的相同问题,所以我还需要保持dir结构同步并在部署期间混合文件.此外,很难将平台变更从客户回购中推回.
  • GitSlave(就像这里提到的那样)我不确定这对我是否有益.它允许保持几个git repos同步,也许它有助于同步平台的dir结构,但我无法相信
  • 在不同的目录平台和客户文件之间重构(像结果这样的讨论)我觉得这是根本不可能在我的客户的情况,并通过网络项目使用的技术.对于一个客户,此页面需要更新,另一个页面需要更新.即使在引入PHP框架时,客户特定的更改也会分布在整个树中.
  • 签出(像还提出在最近发帖讨论)这看起来很简单的和有希望的,有缺点,即所有客户提供特定的文件是git的外部(这样的外部版本控制).此外,如果文件在平台和客户中更新,git pull会失败 - 它会中止,因此这是不可用的
  • 正如我所知,供应商分支(如此处重新开始),分支机构将被合并回来,而不是针对我的客户特定补丁.这些分支将始终是开放的,仅在从平台(主)向客户更新后合并.这将导致一个巨大的回购保留所有客户和平台信息 - 而不是处理回购的git方式.
  • 在部署期间混合.因此,一种非常务实的方法是将平台文件保存在一个仓库中,客户文件也保存在专用的仓库中.在将文件部署到Web服务器期间,它可以首先编写所有平台文件,而不是通过特定于平台的文件覆盖其中一些文件.混合发生在Web服务器目录中很晚.这也有一个缺点,即每个客户的目录结构必须手动保持与平台结构同步 - 否则部署将过于复杂.

这里最好的方法是什么?

git project web-deployment

14
推荐指数
1
解决办法
1755
查看次数

了解Linux顶级CPU利用率输出

我正在使用在Debian下运行的单核小型ARM处理器,并且在理解top的CPU利用率输出时遇到问题,请参阅:

top - 15:31:54 up 30 days, 23:00,  2 users,  load average: 0.90, 0.89, 0.87
Tasks:  44 total,   1 running,  43 sleeping,   0 stopped,   0 zombie
Cpu(s): 65.0%us, 20.3%sy,  0.0%ni, 14.5%id,  0.0%wa,  0.0%hi,  0.3%si,  0.0%st
Mem:     61540k total,    40056k used,    21484k free,        0k buffers
Swap:        0k total,        0k used,        0k free,    22260k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                    
26028 root      20   0  2536 1124  912 R  1.9  1.8   0:00.30 top                                                                                        
31231 root      19 …
Run Code Online (Sandbox Code Playgroud)

linux performance

8
推荐指数
1
解决办法
3万
查看次数

目录树中具有多个依赖项的 Makefile

即使这方面有很多主题,我也找不到解决方案。我想在 GNU make Makefile 中结合两种技术,从带有文件的目录树中创建多个 Debian 软件包:

  1. 创建一个 Debian 软件包,依赖于相应目录中的文件树。egadeb 依赖于目录 a/ 中的所有文件,因此如果更改了 a/foo/bar,将生成 a.deb
  2. 对具有相同构建规则和操作的多个包执行此操作,例如目标 a.deb 依赖于目录 a/ 中的文件树,b.deb 依赖于 b/ 直到 z.deb 依赖于 z/

以下看起来不错,但没有找到必备文件:

TARGETS = a.deb b.deb z.deb
all: $(TARGETS)
%.deb: $(shell find % -type f)
$(TARGETS):
   @echo "#### Building $@ due to \"$?\" ####"
Run Code Online (Sandbox Code Playgroud)

仅出于测试目的,我使用简单的“echo”而不是“find”测试了规则,这工作得很好(但当然仅取决于目录中的目标,而不是完整的文件树):

TARGETS = a.deb b.deb z.deb
all: $(TARGETS)
%.deb: $(shell echo %/ )
$(TARGETS):
   @echo "#### Building $@ due to \"$?\" ####"
Run Code Online (Sandbox Code Playgroud)

如果我将目标文件名硬编码到“查找”内的规则中,它会起作用:

TARGETS = a.deb b.deb z.deb
all: $(TARGETS)
a.deb: …
Run Code Online (Sandbox Code Playgroud)

debian makefile

2
推荐指数
1
解决办法
1378
查看次数

标签 统计

debian ×1

git ×1

linux ×1

makefile ×1

performance ×1

project ×1

web-deployment ×1