SVN изменить имя пользователя
Я нашел много примеров того, как изменить имя пользователя для определенных версий и так далее.
но то, что мне нужно, это: Я сделал проверку с учетными данными аутентификации товарища по работе и должен изменить его на мои учетные данные для будущих коммитов.
Я не могу просто проверить свои учетные данные из-за многих изменений, которые уже были сделаны...
кто-нибудь знаком с этим?
11 ответов
вы можете изменить пользователя с
-
Subversion 1.6 и более ранние версии:
svn switch --relocate protocol://currentUser@server/path protocol://newUser@server/path
-
Subversion 1.7 и более поздние версии:
svn relocate protocol://currentUser@server/path protocol://newUser@server/path
чтобы узнать, что protocol://currentUser@server/path
is, run
svn info
в вашей рабочей копии.
самый простой способ сделать это-просто использовать параметр --username при следующем оформлении заказа или фиксации. Например:
svn commit --username newUser
или
svn co --username newUser
Он будет кэшироваться и будет использоваться в качестве имени пользователя по умолчанию для будущего команды.
Смотрите также: в Subversion могу ли я быть пользователем, отличным от моего имени входа?
у меня была точно такая же проблема и нашли решение в где клиент SVN хранит данные аутентификации пользователя?:
-
cd
до~/.subversion/auth/
. - Do
fgrep -l <yourworkmatesusernameORtheserverurl> */*
. - удалить найденный файл.
- следующая операция в репозитории снова запросит у вас информацию об имени пользователя/пароле.
(для Windows шаги аналогичны; - в %APPDATA%\Subversion\
).
Примечание. что это будет работать только для схем доступа SVN, где имя пользователя является частью входа в систему сервера, поэтому он не используется для репозиториев, доступных с помощью file://
.
Если ваш протокол http и вы используете Subversion 1.7, вы можете переключить пользователя в любое время, просто используя опцию global --username в любой команде.
когда метод Инго не сработал для меня, это было то, что я нашел, что сработало.
на Tortoise SVN --> Settings --> Saved Data
.
есть возможность очистить данные аутентификации, нажмите на кнопку Очистить, и это позволит вам выбрать, какое соединение вы хотели очистить userid/pwd для.
после этого, какие-либо проверки или уточнения его повторное введение userId и пароль.
кроме того, для тех, кто слишком поздно понял, что они совершили с неправильными учетными данными, решением (после факта) является изменение автора svn этой ревизии: см. этот вопрос
в основном синтаксис:
svn propset --revprop -r (revision_number) svn:author (new username)
для Win10 вы должны удалить эту папку и закрыть/открыть IDE
C:\Users\User\AppData\Roaming\Subversion\auth
, также в моих проектах нет ".subversion "только папки".svn"
Я считаю, что вы можете создать свою собственную ветвь (используя свои собственные учетные данные) из того же ствола, что и ветвь вашего напарника, слиться с ветвью вашего напарника на вашу рабочую копию, а затем слиться с вашей ветвью. Все будущие обязательства должны быть отмечены как исходящие от вас.
вы можете попросить своего коллегу создать патч, который свернет все изменения, которые были сделаны в один файл, который вы можете применить к своему собственному чеку. Это обновит все ваши файлы соответствующим образом, а затем вы можете отменить изменения на его стороне и проверить свои.
на основе решение Инго Кегеля Я создал" маленький " скрипт bash для изменения имени пользователя во всех подпапках. Помните:
- изменить
<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
надеюсь, вы найдете его полезным!