对 Git 提交 ID 施加部分排序

发布于 2024-08-21 19:39:44 字数 242 浏览 10 评论 0原文

我正在将工作场所的基础设施转换为使用 git 而不是 svn。整体迁移进展顺利,但我们有一个我开发的工具来进行 SQL 模式迁移。

为了处理各个架构更改依赖性,迁移脚本使用 subversion 关键字替换将最后更改的修订号放入架构中。对于 git,我们不能使用相同的想法,因为修订历史是非线性的(并且我们完全打算利用分支功能)。

因此,如何从 git 中获取按拓扑排序的提交 ID 列表?除此之外,有人对如何处理这个问题有更好的想法吗?

I'm converting the infrastructure at my workplace to use git instead of svn. The overall migration is going well, but we have a tool that I developed to do our SQL schema migrations.

In order to deal with individual schema change dependencies, the migrations script used subversion keyword replacement to put the last-changed revision number in the schema. With git, we can't use the same idea, since revision history is non-linear (and we're fully intending on utilizing the branching features).

Therefore, how do I get a topologically sorted list of commit ids out of git? Barring that, anyone have a better idea for how to handle this problem?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

(り薆情海 2024-08-28 19:39:44
git rev-list old-revision..new-revision

这显示了最新的优先。如果您想要最旧的优先,请添加 --reverse

git rev-list old-revision..new-revision

That shows newest-first. If you want oldest-first, add --reverse

流年已逝 2024-08-28 19:39:44

如果您希望有一种方法来跟踪文件来自源代码存储库中的位置,您可能需要研究标记您的工作并找到某种方法来使用文件来源的标签来标记文件。其中一些取决于您的实际部署过程,但我的简短答案是用基于标签的机制替换 svn 关键字。 (实际上,这可能是你一直应该在 svn 中做的事情。)

我听说过这里提到“污迹过滤器”,但我自己没有使用过它们,所以我无法推测它们如何适合在这里。

If you want to have a way to track where a file came from in your source code repository, you may want to look into tagging your work and finding some way to mark the file with the tag it came from. Some of this depends on your actual deployment process, but my short answer would be to replace svn keywords with a tag-based mechanism. (It may have been what you should have been doing in svn all along, actually.)

I've heard "smudge filters" mentioned around here, but I haven't used them myself, so I can't speculate how they might fit in here.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文