我们在几个不同的客户上手动安装/更新了几个Web应用程序。为了跟踪需要更新的文件,我们在Git存储库上使用标记来标记每个客户的应用程序版本和当前版本。
在我们更新时,相关的客户标记将被删除并在适当的提交时重新创建,以将其标记为所述客户的当前版本。
最近我们收到了更多的客户,这个删除和创建标签的过程非常繁琐,而且耗时耗力。
您建议采用更好的策略来跟踪每个客户当前的系统版本?
注意:如果它们完全相关,我们也会使用BitBucket和Jira。
答案 0 :(得分:0)
请勿使用标记来跟踪客户版本,然后仅将其用于标记发布版本。在Jira中规划发布并使用semantic versioning,它会在您进行自动更新甚至手动时帮助您。 同时检查Git Flow模型,这将有助于您思考如何跟踪功能和错误。当您转向自动化构建,代码审查和其他敏捷工程方法时,这也有所帮助。分支的其他模型在https://www.atlassian.com/git/tutorials/comparing-workflows
中有解释在开发中的版本标准化之后,与客户端的交付和更新是一个结果,您可以使用各种过程来实现这一点。
如果您的软件是PHP或Ruby等动态语言软件,并且不需要构建过程或迁移,那么您可以手动提取代码并查看客户使用的当前主要版本的最新稳定版本。
我还建议使用一些库来管理数据库迁移和版本,因为如果您的应用程序使用数据库(用户数据经过精心设计且版本控制系统不单独处理),这是一个至关重要的事情。如果您在Java上,可以使用FlywayDB或在您的环境中搜索替代方案。
其他很酷的东西是docker,对你的需求是一种过度杀戮,但是构建具有所有系统依赖关系的容器(如库,特定文件等)非常棒,没有虚拟化开销和完全隔离,它可以用于许多事情以及交付软件。我提到docker只是为了cusiosity和经验丰富的linux工程。
我希望有所帮助。