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 хранит данные аутентификации пользователя?:

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

(для Windows шаги аналогичны; - в %APPDATA%\Subversion\).

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


Это очень просто. Вы должны просто выполнить

svn up --username newUserName

вот и все.


Если ваш протокол 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 для изменения имени пользователя во всех подпапках. Помните:

  1. изменить <NEW_USERNAME> к новому имени пользователя.
  2. изменить <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

надеюсь, вы найдете его полезным!