SVN и номера ревизий - PullRequest
       8

SVN и номера ревизий

0 голосов
/ 10 июня 2009

Скажем, у меня есть 3 файла: foo.txt, bar.txt и moo.txt, все в редакции 1.

Скажите, что я фиксирую foo.txt и bar.txt десять раз. Так что они на ревизии 1.10. Поскольку в SVN есть одна ревизия, moo.txt также не должен быть в ревизии 1.10. Теперь, если я увижу историю moo.txt, увижу ли я историю коммитов от 1 до 10?

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

Ответы [ 5 ]

2 голосов
/ 10 июня 2009

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

Но вы все равно можете вернуть один файл к любому конкретному номеру ревизии, не затрагивая другие файлы.

* 1005 Е.Г. *

два файла:
foo.txt и bar.txt

1: checkin foo.txt
2: регистрация foo.txt & bar.txt
3: checkin foo.txt
4: checkin bar.txt
5: checkin foo.txt
6: checkin bar.txt

Если вы посмотрите на историю бара, вы увидите:

6
4:
2:

И вы все равно сможете вернуть bar.txt обратно в ревизию 2, не влияя на foo.txt

Если вы посмотрите историю Foo, вы увидите:

5
3:
2:
1:

Если вы посмотрите историю всего каталога, вы увидите все коммиты.

Наличие широкого номера версии репозитория просто означает, что вы можете определить порядок, в котором вещи были изменены, по номерам ревизий. Это не влияет на вашу способность просматривать истории или откатывать файлы.

1 голос
/ 10 июня 2009

Историю SVN можно просматривать для каждого файла или для каждого каталога, поэтому вы увидите историю всех файлов, которые соответствуют фильтру, который вы ищете. Если вы просматриваете только историю moo.txt, вы увидите только ее изменения (в вашем примере это, вероятно, 3-12).

Также стоит отметить, что SVN допускает атомарную фиксацию более чем одного файла, так что вы могли бы зафиксировать foo.txt и moo.txt вместе в одном изменении в версии 2. В этом случае вы также увидите это в истории изменений moo.txt.

Действительно, я думаю, что правильный ответ - просто установить SVN и протестировать его для себя. Тогда вы лучше поймете, как работает история изменений.

0 голосов
/ 10 июня 2009

SVN использует номер ревизии всего хранилища, который увеличивается с каждым коммитом. При просмотре журнала одного файла вы увидите только ревизию этого файла, но в нумерации версий будут пробелы).

0 голосов
/ 10 июня 2009

Вы можете думать об этом, как будто у moo.txt есть специфичные для файла ревизии, просто они имеют пробелы, например, ревизии moo.txt равны 1, 10, 11, 18 и т. Д.

В действительности с этим не сложнее иметь дело, чем если бы это было 1, 2, 3, 4, 5, но у него есть дополнительное преимущество, означающее что-то значащее для всего хранилища.

0 голосов
/ 10 июня 2009

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

...