- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在阅读关于版本控制主题的所有问题,但我认为我没有找到一个看起来像我自己的场景。
场景是:
我们有一个中型/大型 Web 应用程序,它有(至少应该有)一个部署到所有客户端的核心。当我们向客户演示应用程序时,几乎所有客户都要求更改布局,或列表中的数据,或数据输入表单中的字段等......几乎所有这些更改都需要更改剩余的“层”的应用程序。
在我们目前的情况下,我们使用 CVS(与 tortoiseCVS)并且我们不使用分支,我们使用标签来区分应用程序的代码更改(是的,我知道这很糟糕)。当我们想要向特定客户发布版本时,这会带来很多问题,以及 checkin 更改等。准备发布总是需要大约 1-2 天的工作,有时它仍然会中断。
有时,来自客户端的请求也会包含在核心中以分发给所有客户端。
所以我的问题是:分支是隔离对应用程序的定制客户端版本的更改的最佳方式吗?每当新客户要求定制时,我们应该分支吗?还是我们应该将其视为一个完全不同的项目,具有不同的存储库?
所有不同的版本都必须维护,而且我听说分支是“临时的”,我怀疑分支是否是最好的解决方案。
感谢您的答复。
安东尼奥·迪亚斯
最佳答案
我不知道您为什么认为分支是临时的-只要您希望它们存在,它们就会存在。
您的应用程序听起来好像可以从重组中受益,以实现更多模块化功能,但与此同时,您可以将主要功能开发为主干,每个客户版本都成为它自己的分支。
然后可以根据需要将对核心代码的修改合并到每个分支中。客户特定的更改可以在该分支上单独进行,也可以在以后合并回主干。
为每个客户单独的存储库听起来完全是错误的做法,因为这会导致存储库之间的公共(public)代码重复。
关于cvs - 版本控制 "best practice",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1390119/
我有义务在这个特定项目中使用 CVS,所以即使我真的想切换到其他东西,比如 Git,我也不能。 所以,我真正的问题是这样的:我们有一个约定,每次发布版本时,我们都会在 CVS 中创建一个新分支(我们也
我在 Windows XP 系统上,我从命令行执行此命令: cvs -d :pserver:CharlesAnderson@ServerName/RepositoryName login -p 生成
在线阅读文档和教程后,我正在努力掌握 CVS 中的分支。让我举一个例子来说明我的开发流程有时是如何工作的: 我将对某些内容进行一些更改(假设修复一些不会令人惊讶地变成更大项目/事件的错误)。现在,我不
任何人都可以帮助我使用用于 CVS 存储库的默认端口号。 问候, PK 最佳答案 grep cvs /etc/services说 2401,TCP 和 UDP。当然,通过 SSH 使用它会改为使用端口
我不小心将一个文件作为二进制文件提交到 CVS(粘性选项 -kb),现在我想删除它。是否可以? 我找到了一种使用 cvs admin -kv 将选项更改为其他选项的方法,但是有没有办法将其完全删除?
使用 cvs remove 删除目录后和 cvs commit ,是否有一种简单的方法可以撤消更改 - 在我的工作副本和存储库中恢复目录?到目前为止,我只能找到一些建议,如果我还没有完成提交,或者它
有没有办法在 CVS 命令行上列出与标签关联的所有文件? 最佳答案 关于你能得到的最接近的是: cvs -q log -R -N -S -rTAGNAME 这适用于本地副本,它不会从服务器中提取。 编
我一直在寻找一种“正确”的方法来从 CVS 历史记录中完全删除一个文件,但找不到。我不在乎它是否仍然出现在日志中,或者与该文件相关的早期修订的特定 checkout 是否显示错误。重要的是所有其他文件
我正在尝试将更改提交到 CVS 存储库,但出现以下错误: RCS file: /opt/CZarmen/CVS_REPOSITORY/Z_user/lib/python/StudioCustom.py
当做 cvs update ,您会得到一个很好的存储库状态摘要,例如: M src/file1.txt M src/file2.txt C src/file3.txt A src/file4.txt
我已经从 CVS 分支中删除了一个 checkin 的文件,即: cvs remove -f file.txt cvs commit 如何恢复文件? 最佳答案 我相信: cvs add file.tx
我想知道如何轻松获取 CVS 模块中的最后更改。 最佳答案 我想也许你可以使用历史命令。尝试这样的事情: cvs history -c -D 2012-04-01 -a 上面的示例显示了自指定日期以来
我有一个名为“Gem36”的分支,但我想从现有分支创建另一个名为“RM_Gem36”的分支。我怎样才能在 CVS 中做到这一点? 是否有其他方法可以从现有分支创建新分支“RM_Gem36”而不检查“G
我们最近在测试版代码的主分支之外创建了一个分支。 现在我想检查过去一周分支中所有文件的更改情况。如何从 CVS 中获取该信息。 这个命令是什么? 最佳答案 从命令行: cvs log -r BRANC
我想我真的在寻求一种帮助来帮助那些忘记的人,Cruise Control 会将提交的详细信息发送给每个人,因此人们热衷于添加有意义的评论,但有时会忘记。 最佳答案 不过,您还需要有人监控人们添加的评论
有一个遗留的 CVS 存储库,其中包含大量目录、子目录和路径。还有大量分支和标签不一定覆盖所有路径和文件 - 通常是子集。我如何找出哪个分支/标签覆盖了哪些文件和路径? CVS 日志已提供每个文件的标
对于我正在使用 CVS 实现二分的脚本,我想弄清楚当前结帐的“时间戳”是什么。换句话说,如果我位于分支/标签上,我想知道提交到该分支/标签的最后一个时间戳。如果我在头上,我想知道头上的最后一个时间戳。
我已从 CVS 存储库中 check out 了一个文件并对其进行了更改。 cvs up 命令表示文件已修改M。 我需要删除我的更改。什么 cvs 命令可以为我做到这一点? 最佳答案 您使用 cvs
在什么情况下这会安全或不安全?我有一个分支有四个更改(没有文件添加或删除)。删除它可以安全吗? 编辑:想要删除它的原因是它命名错误并且会导致困惑。 最佳答案 人们登陆这里寻找“如何删除 cvs 中的分
是否有一个命令可以返回 CVS 存储库中包含的模块名称列表? 作为 CVS 的新手,我想应该有类似的东西 cvs -d /usr/local/cvs listmodules 我应该用什么替换 list
我是一名优秀的程序员,十分优秀!