Почему SVN так по-разному относится к файлу и каталогу? - PullRequest
0 голосов
/ 10 апреля 2011

Вы можете сделать два вида изменений в вашей рабочей копии: изменения файла и изменения дерева.Вам не нужно сообщать Subversion о том, что вы намереваетесь изменить файл; Subversion автоматически определяет, какие файлы были изменены, и, кроме того, для изменений дерева вы можете попросить Subversion «пометить» файлы и каталоги для запланированного удаления, добавления,копирование или перемещение.

Почему svn не относится к каталогу так же, как к файлу?

И после тестирования я считаю весьма практичным рассматривать изменение каталога так же, как файлизменение с момента последнего изменения временной метки также можно отслеживать:

[ ~]# mkdir svntest
[ ~]# ll |grep svn
drwxr-xr-x  2 root root      4096 2011-04-10 07:41 svntest
[ ~]# touch svntest/demo.txt
[ ~]# ll |grep svn
drwxr-xr-x  2 root root      4096 2011-04-10 07:42 svntest

Ответы [ 2 ]

0 голосов
/ 11 апреля 2011

Лучшее оправдание, которое я могу найти для того, чтобы не отмечать автоматически все новые файлы и каталоги для добавления, - это то, что обычно компилируют ваш код в каталог, содержащий вашу рабочую копию. Если бы svn работал таким образом, хранилище в конечном итоге было бы заполнено кучей мусора (выводом компилятора).

0 голосов
/ 10 апреля 2011

Файлы имеют версии "все или ничего", а каталоги - по элементам. Если бы к ним относились одинаково, было бы два разных варианта:

  • Обрабатывайте файлы так же, как каталоги: это означает, что каждая строка в файле может быть индивидуальной, и вы можете выбрать, какие строки вы хотите версировать. Это не имеет особого смысла.

  • Обрабатывать каталоги как файлы: это означает, что каждый файл, добавляемый в каталог, автоматически добавляется в ваше дерево (даже объектные файлы, двоичные файлы и другие временные файлы), что делает невозможным создание дерева каталогов, отличного от багажник. Это также не кажется слишком полезным. Кроме того, единственный способ обработки переименований без немедленной фиксации - это «запланировать» это.

...