Subversion поддерживает историю проекта на сервере.Эта история должна быть неизменной, то, что произошло в прошлом, останется на сервере.Таким образом, «возвращение» хранилища на самом деле не уничтожает прошлое, а заменяет «текущие» копии более старой копией файлов.После того, как вы вернетесь, вы должны будете зафиксировать изменение, чтобы двигаться вперед.
Это означает, что если вы «фиксируете» более старые файлы, то информация о svn вины будет принадлежать тому, кто его принял.Если вы хотите, чтобы эта информация отличалась, вам необходимо:
- Создать среду, в которой вы можете представить как правильное лицо.
- Изменить прошлый коммит, чтобы установить информациюкак вам хотелось бы.
Обратите внимание, что фактический человек, создавший старую ревизию файлов, не создал их в текущем контексте, поэтому он не будет тем, кто нарушит сборкуесли вы решите «вернуть» файлы в состояние, в котором они были записаны несколько дней / недель / месяцев назад.На самом деле, вы будете тем, кто сломал сборку, и, следовательно, тем, кто виноват, и будет правильным обвинением.Чтобы сделать № 1 у вас есть несколько вариантов.Самый простой - настроить группу учетных записей пользователей на сервере SVN, доступном через SSH.Так как вы контролируете учетные записи, вы можете ssh для любого конкретного пользователя.Поскольку вы собираетесь извлекать и обновлять без знания пароля svn пользователя, вам необходимо использовать URL-адреса файлов, которые обходят проверку паролей HTTP / HTTPS / SVN + SSH.Поскольку у вас есть достаточные разрешения для выполнения всего этого, вы сможете добавлять таких пользователей в группу, получающую доступ к фактическим SVN-репозиториям.
Чтобы выполнить # 2, вам необходимо ознакомиться с внутренней архитектурой хранения SVN.свойства журнала;но, честно говоря, я не уверен, что это вполне достижимо.Я подозреваю, что это начнется с более глубокого осмотра
svn propedit -r N --revprop svn:author authorName URL