Articles of 版本控制

从模板创build多个GitHub私有存储库

我必须以编程方式在GitHub上创build存储库。 他们每个人都会有相同的初始提交。 这是为数百人。 我find了一个命令行工具来创build工作正常的存储库,但是我需要克隆它们,移动我的模板,提交和推送。 我想知道是否已经有一个这种情况下的图书馆,或者如果我需要自己创build一个。 谢谢

更新使用Jenkins&GitLab的package.json版本

我有一个在Gitlab中托pipe的项目。 我有一个Webhook钩子,告诉Jenkins在有人向主人推送代码时触发CI构build。 我打算使用npm version来更新package.json。 如何在不触发其他CI构build的情况下将新版本提交到git中

控制源代码(git)docker-compose.yml

我docker-compose.yml文件编排了一个基于PHP API的应用程序和一个Nodejs Web前端的容器。 这两个都是在单独的git回购。 问题: 在哪里以及如何检查我docker-compose.yml文件到git中? 我的容器: Nginx的 Redis的 MySQL的 Nodejs应用程序 PHP应用程序

部署竞争条件导致CDNcaching旧的或损坏的文件

我们目前的部署过程如下所示: 使用grunt来创build生产资产。 在我们的CDN创builddate戳记和点文件(例如/scripts/20140324142354/app.min.js )。 旁注:我以前听说过这个叫“版本控制”的过程,但是我不确定这个过程是否合适。 提交到github构build。 在web服务器上运行git pull从github中获取新的代码。 这是一个node.js站点,我们forever -w使用forever -w来监视文件更改并相应地更新站点。 我们的应用程序中有一个path设置,通过/scripts/*/app.min.js提供最新版本的应用程序。 我们这样版本的原因是因为我们的CDN被设置为无限期地cachingJavaScript文件,这有意创buildcaching未命中,以便在CDN(也在用户的浏览器中)更新代码。 这在大多数情况下工作正常。 但是,如果其中一台服务器在检查新代码时有点滞后, 有时客户端在部署正在进行的同时点击该页面,并尝试从CDN检索新的JavaScript代码。 CDN试图检索它,但点击一个未完成检查新代码的服务器,并caching一个旧的或部分下载的文件,导致各种问题。 这个问题由于我们的CDN有很多边缘位置而加剧了,所以我们的办公室并不总是能立即看到问题。 一些边缘位置可能已经拉下了旧的/坏的代码,而其他的可能已经拉下了新的/好的代码。 有没有更好的方法来做这些部署,以避免这个问题?

某人如何在用户的应用程序中实现版本控制系统,例如。 在plnkr.co

我正在创build一个应用程序,其中每个用户将有他自己的工作区,将包含一些文本文件。 他将过度编辑和保存这些文件。 我想为每个用户实现一个版本控制系统来跟踪他的工作,并且如果他愿意的话可以回到以前的任何版本。 我也希望用户能够进入彼此的工作区,将内容复制到他们自己的工作区,就像在plnkr.co中一样,做出改变并轻松地提交。 我的堆栈是node.js和angular.js 我应该从哪里开始实施呢? 我想应该有一些方法来使用git或其他一些开源项目。 有人有什么想法是什么plunker使用?

在版本控制中不包括Node模块的情况是否也适用于Composer包?

在研究Node的node_modules是否应该被检入你的版本控制库时,最近的共识似乎是你应该把它包含在你部署的应用程序中。 资料来源: 检查node_modules与shrinkwrap 在Heroku上创buildnode.js应用程序时,是否应该检查node_modules? https://www.npmjs.org/doc/misc/npm-faq.html#Should-I-check-my-node_modules-folder-into-git 在阅读这些论点时,它让我质疑composer php/vendors目录是否也应该被检入版本控制。 composer php的文档build议你不要: 我应该在供应商目录中提交依赖关系吗? 一般build议是否定的。 供应商目录应该被添加到.gitignore / svn:ignore / etc。 最好的做法是让所有的开发人员使用Composer来安装依赖关系。 同样,构build服务器,CI,部署工具等也应该适应作为其项目引导的一部分运行Composer。 虽然在某些环境下实施它可能会很诱人,但会导致一些问题: 大型VCS存储库大小和更新代码时的差异。 在您自己的VCS中复制所有依赖关系的历史logging。 […] 对比这个论点是这个( 来源 ): 不检查node_modules在源码树中创build了很多与我的应用程序无关的噪音? 不,你错了,这个代码被你的应用程序使用,它是你的应用程序的一部分,假装不会让你陷入麻烦。 你依赖于其他人的代码,他们就像你一样可能写出新的错误,可能更多。 检查源代码pipe理中的所有代码,使您可以审核应用程序中每一个变更的行。 它允许您在本地使用$ git bisect,并确保它与生产中的相同,并且生产中的每台机器都是相同的。 没有更多的追踪未知的依赖关系的变化,所有的变化,在每一行,都可以在源代码pipe理中查看。 总之,问题是这样的:为什么一个gitignore(即不是版本控制) node_modules但是对Composer的vendor/目录来说不是相同的?

使用git子模块有什么好处

目前试图找出使用什么样的包pipe理。 例如,我目前正在与nodejs一个JavaScript项目。 我已经设置了一个git子模块,并且正在试图找出使用哪种方法。 将存储库克隆到当前的存储库? cd ./somedir && git clone some_repo 使用git submodule与npm ? "scripts": { "install": "bower install && git submodule init && git submodule update" } 为什么不直接添加与npm package.json dependencies的回购? 喜欢: { "foo" : "git+ssh://user@hostname:project.git#commit-ish", "bar" : "git+ssh://user@hostname/project.git#commit-ish" } 这些是我一直在思考的可能的方式,我对更好的东西是开放的,并希望在这些问题上有远见。 更新 我预见到的一个问题是,例如说node版本在子模块被导入/克隆/需要的地方不同。 一个项目可能使用节点4.2.4,另一个可能在0.12.4,0.10.4或5.6.0。 目前为止,我可以看到的这种情况不能通过设置分支或版本标签来解决,还是可以解决?

nvm vs nave vs n | 包处理比较

当涉及到版本pipe理时,Node.js有时会令人困惑… 我正在尝试安排各种项目,因为我正在使用ruby项目。 例如: 随着ruby,我可以创build文件,如.rvmrc和填充像rvm –create use 1.9.3@my-app 这个东西创build和使用所有的gem专门configurationgemset。 它允许为任何types的项目提供各种选项,并在其中轻松切换。 所以ruby在一个地方做到这一点。 我想为node.js项目做到这一点。 节点工作不同。 我想知道有关的细节,特别是每个节点版本pipe理工具。 重点是要知道哪个版本pipe理工具为哪个目标… 为什么有这么多。 更准确地说:我希望npm install <package-name>select节点版本。 而在切换到其他版本后,这个安装的软件包将会丢失,或者在安装之前(或者某个版本)安装不同的版本。 就像gemset正在工作。

如何在npm中升级全局包的依赖关系

我已经安装了全球pouchdb-server ,我得到了有关graceful-fs消息: $ npm install -g pouchdb-server npm WARN deprecated minimatch@0.2.14: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue npm WARN deprecated graceful-fs@1.2.3: graceful-fs v3.0.0 and before will fail on node releases >= v7.0. Please update to graceful-fs@^4.0.0 as soon as possible. Use 'npm ls graceful-fs' to find it in […]

podio api:获取单个字段或应用程序的最新修订date

上下文:我正在构build一个Node应用程序来通过Podio API备份我们的Podio应用程序的计算字段; 他们被保存为平面文件和版本控制与Git。 我们希望能够在本地编辑文本文件,提交并推回修改的文件。 我一直在检查对象的键返回,但无法find一种方式来确定应用程序的最新修订date(而不是项目)。 我在轮询应用程序(/ app / {app_id} /)时遇到了“current_revision”,但无法弄清楚如何使用应用程序的修订号。 我也注意到了(非常有希望的)措辞“这个方法总是会返回应用程序定义的最新版本”。 在页面上https://developers.podio.com/doc/applications/get-app-22349,但我找不到任何其他提及这个…我可以通过一些应用程序的修订元信息来获得date? 理想情况下,我想将本地文件(fs.stat)的最后修改date与应用程序(或应用程序字段)的最后修订date进行比较。 任何深刻的见解, 谢谢!