ArrayList first = new ArrayList ();
ArrayList copy = (ArrayList) first.clone ();
Потребовалось много поисков, но в конце концов я нашел perl-скрипт, который работает с файлом дампа SVN.
Я попробовал его сегодня утром на дампе моего репозитория, и он работал безупречно.
да, есть:
svn propset --revprop -r revision_number svn:author new_username
Однако svn не позволяет изменять свойства ревизии по умолчанию. Для этого вам необходимо настроить скрипт перехвата перед изменением revprop . В Windows достаточно поместить bat-файл в папку хуков вашего репозитория, который просто содержит одну строку:
exit 0
Если это настроено, вы сможете написать сценарий для своих нужд.
РЕДАКТИРОВАТЬ: Я не проверял это, но я думаю, что это должно помочь в PowerShell:
([xml] ( svn log --xml )).log.logentry
| ? {$_.author -eq "Mike"}
| foreach {svn propset --revprop -r $_.revision svn:author msmith}
В Гром Внизу , истории о USS Barb во Второй мировой войне, на борт появляется новый офицер. Капитан спрашивает его, как его зовут. «Майк», - отвечает он. «Нет, у нас уже есть Майк», - говорит капитан. «Мы назовем вас Робертом. В бою, когда я отдаю приказы, не может быть путаницы в том, с кем я разговариваю».
Я имею в виду, что есть прецедент, когда ваш новый Майк выбирал другое имя.
Стандартный ответ SVN для изменения чего-либо в истории - это сделать текстовый дамп базы данных, выполнить поиск-замену по нему и воссоздать из него базу данных.
Но я особо не смотрел на внутреннее устройство SVN с момента его выхода 0.x, так что, возможно, я отключился ...
Вы можете использовать svndumptool :
svnadmin dump path / to / my / repo> repo.dump
svndumptool transform-revprop svn: author originalregexp newvalue repo.dump newrepo.dump
TortoiseSVN отлично поддерживает эту функцию: в диалоговом окне журнала ревизий можно фильтровать по автору (даже с помощью регулярных выражений), выбирать ревизии из отфильтрованного списка по желанию (обычно все как в этом вопросе) и выберите «Редактировать автора» из контекстного меню.
Предварительное условие наличия ловушки pre-revprop-change на месте, как указано в jeroenhs ] ответ , конечно же, по-прежнему применяется.
Обработка довольно медленная, но в зависимости от потребностей она может быть намного быстрее и / или удобнее, чем необходимость выгрузки всего репозитория и обработать эти потенциально огромные файлы дампа с помощью скриптов.