Как уже было сказано в «Правки», правка представляет собой «фотографию» хранилища в конкретный момент времени. Однако то, что делает Subversion — или любую другую систему управления версиями — по настоящему полезной заключается не в том, что она хранит все версии файлов и директорий. Полезность заключается в том, что вы реально можете что-то делать с этими старыми версиями! А для того, чтобы совершать подобные путешествия во времени, нужен механизм идентификации этих фотографий.
Номера правок в Subversion довольно-таки простая штука — обычные монотонно увеличивающиеся целые числа. При создании хранилища Subversion, оно начинает свое существование с правки 0 и каждая последующая фиксация увеличивает номер правки на единицу. Subversion не прячет эти номера — они являются неотъемлемой частью истории версионированной информации. К примеру, после выполнения фиксации клиент Subversion информирует вас о новом номере правки:
$ svn commit --message "Corrected number of cheese slices." Sending sandwich.txt Transmitting file data . Committed revision 3.
В будущем, в любой момент времени, если вам нужно будет сослаться на эту правку сделать это можно обратившись к ней как к «3». Некоторые причины, по которым может возникнуть такая необходимость, будут приведены в этой главе позже.
Клиент для командной строки svn предлагает на
выбор две опции для указания правок, которые вы хотите
использовать. Более общей из них является --revision
(-r
) которая принимает в качестве параметра как
одиночный указатель правки (-r
) так и пару правок, разделенную
двоеточием (REV
-r
).
Второй вариант используется указания диапазона
правок, что в свою очередь полезно для команд, сравнивающих
два снимка или обрабатывающих включительно все правки между двумя
указанными пределами.REV1
:REV2
В Subversion 1.4 была введена вторая опция для указания диапазона
правок --change
(-c
). Эта опция
является просто сокращением для указания диапазона правок, границами
которого являются последовательные целые числа. Другими словами,
-c
является тем же самым,
что и REV
-r
.
Кроме того, так же можно просто указать реверсивный диапазон поместив
дефис перед номером правки, REV
-1:REV
-c
-
.REV