为什么svn commit不更改未受影响文件的版本号?
假设我的repo中有两个文件,为什么svn commit不更改未受影响文件的版本号?,svn,Svn,假设我的repo中有两个文件,A.txt和B.txt,它们当前都处于修订版X。如果我修改A.txt,然后svn提交,那么文件A.txt将在我的工作副本中处于修订版X+1,而B.txt仍处于修订版X 因为修订号应该是目录树的快照,所以在我看来,B.txt也应该是修订版X+1。事实上,如果我随后进行svn更新,那么我的工作副本中B.txt的修订号将是X+1。那么,如果我们知道,只要存在混合修订,在未更改的文件中,修订X和X+1之间就没有差异,那么在svn的工作副本中允许混合修订号的原因是什么呢?当我
A.txt
和B.txt
,它们当前都处于修订版X。如果我修改A.txt
,然后svn提交
,那么文件A.txt
将在我的工作副本中处于修订版X+1,而B.txt
仍处于修订版X
因为修订号应该是目录树的快照,所以在我看来,
B.txt
也应该是修订版X+1。事实上,如果我随后进行svn更新
,那么我的工作副本中B.txt
的修订号将是X+1。那么,如果我们知道,只要存在混合修订,在未更改的文件中,修订X和X+1之间就没有差异,那么在svn
的工作副本中允许混合修订号的原因是什么呢?当我正要提交这个问题时,我想到了答案。假设我签出了修订版X,并对A.txt
进行了更改。假设同时,另一个用户进行更改,并将其作为修订版X+1提交给回购协议。如果其他用户更改了A.txt
,则在不更新工作版本的情况下,我将无法提交;但是,如果另一个用户更改了B.txt
,但没有对其进行更改而只留下A.txt
,则我可以提交更改而不进行更新
当我svn commit
时,我的文件A.txt
将处于修订版X+2,但我的工作版本中的B.txt
仍处于修订版X,因为我从未更新它以接收其他用户的更改