Можно ли задним числом добавить историю, которая была бы там, если бы вместо cp был выполнен svn cp? - PullRequest
2 голосов
/ 02 апреля 2011

У меня есть проект с одним каталогом, который изначально (несколько сотен коммитов назад) дословно скопирован из другого каталога, но svn cp не использовался, поэтому в истории есть разъединение. Возможно ли соединить два каталога в начальной точке копирования сейчас или уже слишком поздно?

Ответы [ 2 ]

3 голосов
/ 05 мая 2011

Позвольте мне угадать, о чем вы говорите:

  • Каталог foo находится в Subversion
  • В ревизии # 100 кто-то скопировал foo в bar
  • Затем они добавили bar в хранилище, сделали коммит и создали ревизию # 101.
  • Теперь Subversion находится на ревизии # 2302.

Что вы хотитеЧтобы сделать это, нужно как-то вернуться в историю к ревизии № 100, повторить копию и добавить с истинным значением svn copy.Таким образом, вы можете увидеть историю бара, который был скопирован из foo.

Может быть способ сделать svnadmin dump из хранилища, а затем svnadmin load.

Вам нужно создать дамп ревизий с 1 по 100 и еще один дамп из 102 в голову.Вы загружаете в ревизии от 1 до 100 в хранилище.Затем вы делаете svn copy и фиксируете ревизию 101. Наконец, вы загружаете ревизии 102, чтобы перейти в хранилище.

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

1 голос
/ 05 мая 2011

Переместите свой неверсионный каталог в сторону, затем svn cp из более старой версии исходного каталога в новый. Вы можете использовать @<revision-number> после имени исходного каталога в команде svn cp, чтобы указать ревизию. Затем скопируйте свои изменения поверх теперь контролируемой версией копии и зафиксируйте их.

Вот надуманный пример:

$ cd working-copy
$ ls -R
.:
copy-of-original  original

./copy-of-original:
bar  foo

./original:
bar  foo
$ svn info original
Path: original
URL: file:///home/gardnerm/repo/original
Repository Root: file:///home/gardnerm/repo
Repository UUID: 6124f37b-b9bf-4d8a-906d-c4015c6f74ad
Revision: 2
Node Kind: directory
Schedule: normal
Last Changed Author: gardnerm
Last Changed Rev: 2
Last Changed Date: 2011-05-04 19:48:00 -0400 (Wed, 04 May 2011)
$ svn info copy-of-original
copy-of-original:  (Not a versioned resource)

svn: A problem occurred; see other errors for details
$ mv copy-of-original backup-copy
$ svn cp original@1 copy-of-original   ## this is a copy from a previous revision
A    copy-of-original/foo
A    copy-of-original/bar
Updated to revision 1.
A         copy-of-original
$ svn commit -m 'copying from original r1'
Adding         copy-of-original

Committed revision 3.
$ cp -r backup-copy/* copy-of-original  ## bringing up to date
$ svn commit -m 'updating copy with latest changes'
Sending        copy-of-original/bar
Sending        copy-of-original/foo
Transmitting file data ..
Committed revision 4.
$ rm -r backup-copy
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...