резервное копирование ветви - PullRequest
0 голосов
/ 03 марта 2011

Я собираюсь создать ветку для работы с моим кодом, так как ствол запутан невообразимым образом (но это не проблема).Как я могу периодически делать резервную копию создаваемой мной ветки.Он будет расположен на сервере моей компании, и я не был уверен, что периодическое извлечение ветки в новую папку эквивалентно «резервному копированию моей ветки»?

Отличается ли это чем то, чтобы просто пойти в репо и скопировать папку на мой рабочий стол?Содержат ли файлы .svn все, что мне нужно для сохранения истории веток и возможности вернуться к предыдущим ревизиям?

Спасибо!

Обновление **

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

Ответы [ 5 ]

1 голос
/ 03 марта 2011

Таким образом, Спакет Чобо :

Обновление **

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


В Subversion все, что вы делаете, обратимо. Даже если вы удалите ветку, вы можете получить ее обратно, просто скопировав ее из ревизии до того, как она будет удалена.

Например, допустим, ваша ветвь была удалена обратно в ревизии 100: мы скопируем ветку обратно, используя @99

$ svn cp -r99 svn://svn/branches/my_branch@99 svn://svn/my_branch

А теперь он вернулся!

Если вы действительно хотите защитить свои ветви, вы можете использовать ловушки предварительной фиксации, которые не позволяют людям изменять папки и файлы. У меня есть один, я использую здесь .

1 голос
/ 03 марта 2011

Резервное копирование ветки не требуется, Subversion - это система контроля версий. Когда происходят изменения, вы знаете, кто это сделал, когда они это сделали, что они изменили, и вы даже можете отменить их изменения. Это то, что делает система контроля версий.

0 голосов
/ 03 марта 2011

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

svn checkout -r 911 svn://url/to/file/or/dir/tobe.checked/out to/this/location/on/my/machine

см .: http://svnbook.red -bean.com / ru / 1.5 / svn.ref.svn.c.checkout.html

0 голосов
/ 03 марта 2011

Содержат ли файлы .svn все, что мне нужно для сохранения истории веток и возможности вернуться к предыдущим ревизиям?

Нет.Папки .SVN не хранят историю.Вся история находится в хранилище на сервере, и это то, что вы должны сделать резервную копию.

0 голосов
/ 03 марта 2011

Вы можете думать о своем svn-сервере так:

Каждый раз, когда вы вносите изменения в состояние сервера, он создает снимок этого состояния, который идентифицируется номером ревизии.

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

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

Итак, ваша резервная копия состоит из этого

Открытие документа (давайтеназовите его backup.txt).

делает SVN INFO для хранилища, чтобы получить текущий номер ревизии

Записываете «Резервное копирование», и есть ваш журнал, который говорит: «Я сделал резервную копию на этомdate. Чтобы получить это резервное состояние, я просто проверяю ревизию в журнале. "

По сути, то, что вы запрашиваете, не только встроено в Subversion, но и действительно является цельюподрывная .:)

...