SVN изменить имя пользователя

Я нашел много примеров того, как изменить имя пользователя для конкретных изменений и т.д.

Но мне нужно это: Я проверил чек с учетными данными для проверки подлинности, и мне нужно изменить его на мои учетные данные для будущих коммитов.

Я не могу просто проверить с моими учетными данными из-за многих уже выполненных изменений...

Кто-нибудь знаком с этим?

Ответ 1

Вы можете изменить пользователя с помощью

Чтобы узнать, что такое protocol://[email protected]/path, запустите

svn info

в вашей рабочей копии.

Ответ 2

Самый простой способ сделать это - просто использовать опцию --username при следующем контроле или фиксации. Например:

svn commit --username newUser

или

svn co --username newUser

Затем он будет кэшироваться и будет использоваться в качестве имени пользователя по умолчанию для будущих команд.

См. также: В Subversion я могу быть пользователем, отличным от моего имени пользователя?

Ответ 3

У меня была та же самая проблема и нашла решение в Где хранит данные аутентификации пользователя SVN?:

  • cd до ~/.subversion/auth/.
  • Сделайте fgrep -l <yourworkmatesusernameORtheserverurl> */*.
  • Удалить найденный файл.
  • Следующая операция в репозитории спросит вас снова для информации о имени пользователя и пароле.

(Для Windows этапы аналогичны, каталог auth находится в %APPDATA%\Subversion\).

Обратите внимание, что это будет работать только для схем доступа SVN, где имя пользователя является частью входа в сервер, поэтому его нельзя использовать для доступа к репозиториям с помощью file://.

Ответ 4

Команда, которая может быть выполнена:

svn up --username newUsername

отлично работает;)

Постскриптум Просто подсказка: опцию "--username" можно выполнить для любой команды "svn", а не только для обновления.

Ответ 5

Если ваш протокол http и вы используете Subversion 1.7, вы можете переключить пользователя в любое время, просто используя глобальную опцию - имя пользователя для любой команды.

Когда метод Ingo не работал у меня, это то, что я нашел, что сработало.

Ответ 6

Перейдите к Tortoise SVN --> Settings --> Saved Data.

Существует возможность очистить данные аутентификации, нажать кнопку очистки, и это позволит вам выбрать, какое соединение вы хотите очистить для пользователя userid/pwd.

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

Ответ 7

Кроме того, для тех, кто слишком поздно осознал, что они совершили неправильные учетные данные, решение (после факта) заключается в изменении автора svn этой ревизии: см. этот вопрос

В основном синтаксис:

svn propset --revprop -r (revision_number) svn:author (new username)

Ответ 8

для Win10 вы должны удалить эту папку и закрыть/открыть свою IDE

C:\Users\User\AppData\Roaming\Subversion\Auth

также в моих проектах нет папок ".subversion", только ".svn"

Ответ 9

Я считаю, что вы можете создать свою собственную ветку (используя свои собственные учетные данные) из той же магистрали, что и ваша ветвь workmate, объединиться из своей ветки workmate в свою рабочую копию и затем слить из своей ветки. Все будущие фиксации должны быть отмечены как исходящие от вас.

Ответ 10

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

Ответ 11

Основываясь на Ingo Kegel solution, я создал "маленький" bash script, чтобы изменить имя пользователя во всех подпапках. Помните:

  • Измените <NEW_USERNAME> на новое имя пользователя.
  • Измените <OLD_USERNAME> на текущее имя пользователя (если у вас нет установленного имени пользователя, просто удалите <OLD_USERNAME>@).

В приведенном ниже коде команда svn только распечатана (не выполнена). Чтобы выполнить команду svn, просто удалите echo и пробельные символы перед ним (чуть выше popd).

for d in */ ; \
do echo $d ; pushd $d ; \
url=$(svn info | grep "URL: svn") ; \
url=$(echo ${url#"URL: "}) ; \
newurl=$(echo $url | sed "s/svn+ssh:\/\/<OLD_USERNAME>@/svn+ssh:\/\/<NEW_USERNAME>@/") ; \
echo "Old url: "$url ; echo "New url: "$newurl ; \
echo svn relocate $url $newurl ; \
popd ; \
done

Надеюсь, вы сочтете это полезным!