SVN: почему неизмененные файлы в ветке имеют ревизии магистрали?

#svn #branch #revision

#svn #ветка #ревизия

Вопрос:

AFAIK, ветка SVN создает копию всех файлов и присваивает им номер редакции.

Однако, когда я переключаюсь на ветку, номер редакции неизмененных файлов соответствует редакции в магистрали.

Например:

Предположим, у меня в магистрали:

 foo.txt  2  trunk
  

Когда я создаю ветку:

 foo.txt  100 branch  copy from trunk@2
  

Но когда я выполняю проверку ветки, я вижу:

 foo.txt  2  trunk
  

Почему в ветке ревизия foo.txt не равно 100?

Ответ №1:

Subversion имеет номер редакции не по элементу, а для всего файлового дерева. И если вы создаете копию в Subversion, это просто ссылка на редакцию, которая является базовой для вашей копии (так называемая дешевая копия в Subversion). Пока вы ничего не меняете в файле, файл будет ссылаться на свое последнее изменение, и это было сделано в магистрали.

Таким образом, номер редакции немного вводит в заблуждение, но верен. И да, это отличается от некоторых других существующих систем контроля версий (особенно CVS).

Ответ №2:

Последняя редакция изменения (для объекта) и последняя редакция фиксации — это разные вещи (последнее изменение все еще существует).

Последнее изменение служит просто информационной точкой, не более того