Как уже было сказано в «Правки», правка представляет собой «снимок» хранилища в конкретный момент времени. Однако по-настоящему полезной 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