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


1

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

说我有一个包含一些文件的回购。更改文件后,我提交了这样的更改:

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

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

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

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

Answers:


5

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

  • 在源代码树中创建一个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复制功能Doc

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.