SVN和修订号

SVN和修订号,svn,version-control,cvs,Svn,Version Control,Cvs,假设我有3个文件foo.txt、bar.txt和moo.txt,都在修订版1中 假设我提交foo.txt和bar.txt十次。所以他们是在revison 1.10。因为在SVN中只有一个版本,所以版本1.10中也不需要moo.txt。现在如果我看到moo.txt的历史记录,我会看到从1到10的提交历史记录吗 我问这个问题的原因是我告诉我的朋友,与SVN相比,CVS是多么糟糕。他是CVS的忠实粉丝。所以他告诉我,因为CVS版本号是文件特定的,所以他很容易将单个文件恢复到某种状态(因为单个文件的历史

假设我有3个文件foo.txt、bar.txt和moo.txt,都在修订版1中

假设我提交foo.txt和bar.txt十次。所以他们是在revison 1.10。因为在SVN中只有一个版本,所以版本1.10中也不需要moo.txt。现在如果我看到moo.txt的历史记录,我会看到从1到10的提交历史记录吗


我问这个问题的原因是我告诉我的朋友,与SVN相比,CVS是多么糟糕。他是CVS的忠实粉丝。所以他告诉我,因为CVS版本号是文件特定的,所以他很容易将单个文件恢复到某种状态(因为单个文件的历史记录不包含对项目其他部分所做的提交)。由于我总是将整个项目更新为以前的版本(而不是单个文件),所以我从未遇到过这种情况。所以,我想知道SVN是如何处理这个问题的?

这很容易测试。如果查看单个文件的历史记录,它将仅包括它所参与的修订。如果未修改,则不会显示日志条目。您可以轻松还原单个文件或一组文件上的特定修订。

这很容易测试。如果查看单个文件的历史记录,它将仅包括它所参与的修订。如果未修改,则不会显示日志条目。您可以轻松还原单个文件或文件组上的特定修订。

SVN使用存储库范围的修订号,该修订号随着每次提交而递增。查看单个文件的日志时,您将只看到该文件的版本,但版本编号会有间隙)。

SVN使用存储库范围的版本号,该版本号随每次提交而递增。当您查看单个文件的日志时,您将只看到该文件的修订,但版本编号会有间隙)。

您可以将其视为moo.txt确实有特定于文件的修订,只是它们有间隙,例如,moo.txt的修订是1、10、11、18等


事实上,这并不比1、2、3、4、5更难处理,但它还有一个额外的优点,即对整个存储库有意义。

你可以把它想象成moo.txt确实有特定于文件的修订,只是它们之间有差距,例如,moo.txt的修订是1、10、11、18等


实际上,这并不比1、2、3、4、5更难处理,但它还有一个额外的优点,即对整个存储库有意义。

SVN历史记录可以按文件或目录查看,因此您将看到与您要查找的过滤器匹配的任何文件的历史记录。如果您只查看moo.txt的历史记录,那么您只会看到它的更改(在您的示例中可能是3-12)

还值得指出的是,SVN允许对多个文件进行原子提交,因此您可能在版本2的一次更改中同时提交了foo.txt和moo.txt。在这种情况下,您还可以在moo.txt的更改历史中看到这一点


实际上,我认为正确的答案是安装SVN并自己测试它。然后,您将更好地了解更改历史记录的工作原理。

SVN历史记录可以按文件或目录查看,因此您将看到与您要查找的筛选器匹配的任何文件的历史记录。如果您只查看moo.txt的历史记录,那么您只会看到它的更改(在您的示例中可能是3-12)

还值得指出的是,SVN允许对多个文件进行原子提交,因此您可能在版本2的一次更改中同时提交了foo.txt和moo.txt。在这种情况下,您还可以在moo.txt的更改历史中看到这一点


实际上,我认为正确的答案是安装SVN并自己测试它。然后,您将更好地了解更改历史记录的工作原理。

查看文件的历史记录时,您将只看到包含该文件的提交的注释和更改,但修订号不一定是连续的

但您仍然可以将单个文件恢复为任何特定的修订号,而不会影响其他文件

例如

两个文件:
foo.txt和bar.txt

1:签入foo.txt
2:签入foo.txt和bar.txt
3:签入foo.txt
4:签入bar.txt
5:签入foo.txt
6:checkin bar.txt

如果您查看酒吧的历史,您将看到:

6:
4:
2:

您仍然可以将bar.txt恢复到修订版2,而不影响foo.txt

如果您查看foo的历史,您将看到:

5:
3:
2:
1:

如果查看整个目录的历史记录,您将看到所有提交


拥有存储库范围的版本号只意味着您可以根据修订号来判断更改的顺序。它不会影响您查看历史记录或回滚文件的能力。

查看文件的历史记录时,您只会看到包含该文件的提交的注释和更改,但修订号不一定是连续的

但您仍然可以将单个文件恢复为任何特定的修订号,而不会影响其他文件

例如

两个文件:
foo.txt和bar.txt

1:签入foo.txt
2:签入foo.txt和bar.txt
3:签入foo.txt
4:签入bar.txt
5:签入foo.txt
6:checkin bar.txt

如果您查看酒吧的历史,您将看到:

6:
4:
2:

您仍然可以将bar.txt恢复到修订版2,而不影响foo.txt

如果您查看foo的历史,您将看到:

5:
3:
2:
1:

如果查看整个目录的历史记录,您将看到所有提交

拥有存储库范围的版本号只意味着您可以根据修订号来判断更改的顺序。这不会影响你的能力