如何使用 VCS 解决方案(例如 SVN 或 git)来标记特定文件的版本?

如何使用 VCS 解决方案(例如 SVN 或 git)来标记特定文件的版本?

因此我开始使用版本控制系统 (VCS) 来跟踪我不断增长的代码堆,并尝试使用 SVN 和 git。最基本的命令非常相似,所以我将仅使用 SVN 作为示例。

假设我有一个包含一些文件的仓库。更改文件后,我像这样提交更改:

svn commit -m "altered the regex to parse properly"

这将提交我的更改并添加提交消息。但是,如果我刚刚修改了 3 个不同的脚本,我该如何为每个文件添加个性化的提交消息?

同样,作为版本控制系统,我希望真正跟踪脚本版本号。假设我从版本 1.0.0 开始,如何在提交时将更改的脚本标记为 v1.0.1?

所以基本上,如果有人能告诉我如何在提交时跟踪每个文件的日志消息和版本更改,我将非常感激。谢谢!

答案1

如果你想保留正在运行的变更日志按文件,则您需要:

  • 在源代码树中创建一个 ChangeLog 纯文本文件,并在其中输入每个文件所需的任何信息(日期、时间、提交 ID、摘要等)

  • 每次提交时只提交一个文件,这样您将能够在版本控制文件中看到提交历史记录,其中列出了每个文件的单独更改。但这可能会导致代码状态不一致,这意味着如果您更改了两个相互依赖的文件,而只有一个文件更改导致错误,那么您的代码中就会出现损坏的提交。

VCS 通常不支持每个文件提交日志,同时仍包含多个文件。但是,您可以在多文件提交中在每个文件更改的描述之间添加一个新行。如下所示:

Summary: Various bug fixes and updates for Flummox 1.5.2.

file1.c: Updated Flummox API for Flummox 1.5.2.
file2.c: Fix a string formatting buffer overflow.
file3.c: Use new Flummox Advanced Regex engine.

大多数人会在一次提交中提交每个逻辑上孤立的更改,不管它影响 1 个文件还是 1000 个文件。

答案2

@allquixotic 错过了关于你的问题的第二部分,即有关版本号,因此这里是对该部分的回答。

提交后如何将更改的脚本标记为 v1.0.1

您实际上并没有将脚本标记为 v.1.0.1,您可能会使用 v.1.0.1 标签为该提交设置一个标签。

在 git 中,这可能很简单,例如git tag v1.0.1 <commithash>。SVN 中的标签略有不同,因为你使用了 svn copy 功能文件

相关内容