2013-01-11 112 views
0

我目前有一个v1 API,并已更新并为v2创建了新脚本。该API由其他开发人员使用,并由一堆脚本组成。在迁移和添加v2之前,我想确保我有成功的版本控制策略。API版本控制,同时保持git历史记录

目前,在使用API​​之前调用了一个bash脚本,您可以使用该脚本提供版本#或默认为您提供最新版本。最初,我打算为每个不同的版本设置不同的子文件夹,但对于在修订版和脚本之间不会更改的脚本来添加内容,git历史记录将无法正确保存,原始文件仍将保留在v1子目录中并不会'混帐mv'ed。这显然不是最好的方式,但我目前无法想到更好的方法。

任何建议都会有所帮助,但一个限制是我们不能拥有一个具有不同分支的git子模块。只要脚本可以访问,就没有其他限制(例如,用于安装的bash文件可以被删除)。谢谢!

编辑:我们也有“API”目录之上的脚本,它们是调用该API的同一个仓库的一部分(我们是我们自己的API的消费者)。使用任何版本的API时,这些文件的更改都需要显示,并且不能仅在最新版本中看到(与回购中的标记相关)。

回答

2

我认为您想在您的git存储库中使用标记。对于你的API的每个版本,使用git tag vn,你不需要维护你的文件的早期版本。只需使用git checkout vn即可访问某个版本的所有文件。

如果您使用远程存储库,则需要使用标记--tags将标记发送到远程存储库,即git push --tags

+0

有一件事我忘了提及(我会添加它)是有其他脚本生活在API子目录之上(实际调用API),如果我们标记API的特定版本,这些脚本不会有最新的更新。 – xshoppyx

+0

为什么你需要维护你的API的旧版本?你不能只维护最后的版本,如果你需要回到以前的版本,使用git来获得早期版本的文件? –

+0

因为我们必须为使用该版本的其他人支持他们。没有足够的资源(或真正的理由)迫使所有消费者更新到v2。 – xshoppyx