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



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



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



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



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

816   11  

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 запустите

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 шаги аналогичны; the - в %APPDATA%\Subversion\).

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

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

svn up --username newUserName

вот и все.

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

когда метод Инго не работал для меня, это было то, что я нашел, что работает.

на Tortoise SVN --> Settings --> Saved Data.

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

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

кроме того, для тех, кто слишком поздно понял, что они совершили с неправильными учетными данными, решение (после факта) состоит в том, чтобы изменить автора 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

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

Comments

    Ничего не найдено.